protogrid

Search / rs.monit/monit-rs

monit.rs

R0· no sign-in

Schema-aware API monitoring: diff OpenAPI specs for breaking changes, manage endpoints.

v0.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust82of 100
Uptime, 30 days95%
Latency p50608 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "monit-rs": {
      "type": "http",
      "url": "https://monit.rs/integrations/mcp"
    }
  }
}
claude mcp add --transport http monit-rs https://monit.rs/integrations/mcp
[mcp_servers.monit-rs]
url = "https://monit.rs/integrations/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "monit-rs": {
      "type": "remote",
      "url": "https://monit.rs/integrations/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "monit-rs": {
      "type": "http",
      "url": "https://monit.rs/integrations/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=monit-rs&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbW9uaXQucnMvaW50ZWdyYXRpb25zL21jcCJ9"
}
{
  "servers": {
    "monit-rs": {
      "type": "http",
      "url": "https://monit.rs/integrations/mcp"
    }
  }
}
{
  "mcpServers": {
    "monit-rs": {
      "httpUrl": "https://monit.rs/integrations/mcp"
    }
  }
}
extensions:
  "monit-rs":
    enabled: true
    name: "monit-rs"
    type: streamable_http
    uri: "https://monit.rs/integrations/mcp"
    timeout: 300

Quality 79 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: monit_rs_stats (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); openapi_diff (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); monit_rs_describe (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,355 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

22 tools, about 2,355 tokens to load them all · tool set f87c22f84543 · tools last changed 2026-10-15 · checked 2026-10-20 10:35 UTC

Tool changes

  • set_endpoint_assertionsadded

    Replace an endpoint's body assertions. Each assertion is {"path": "$.ok", "op": "equals", "value": true}. Operators: equals, not_equals, exists, not_exists, gt, gte, lt, lte, contains, not_contains, empty, not_empty. A failing assertion marks the endpoint DOWN, so it counts against uptime. Pass [] to clear.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 82 / 100

no-repository
provenance55
liveness98
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-95% +updated-16d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://monit.rs/integrations/mcp streamable-httpnoneyes95%608 ms2025-11-252026-10-20

Tools (22)

acknowledge_incidentMark an incident as acknowledged. Use `list_my_incidents()` to find the dedup_key.
create_alert_channelCreate an alert channel. Pass EXACTLY one of email_address / webhook_url / pagerduty_routing_key matching the channel_type: - channel_type='email' → email_address='[email protected]' - channel_type='webhook' → webhook_url='https://your-endpoint' - channel_type='slack' → webhook_url='https://hooks.slack.com/...' - channel_type='pagerduty' → pagerduty_routing_key='<Events v2 key>'
create_endpointCreate a new monitored endpoint. Respects your tier's max_endpoints cap.
create_status_pageCreate a public status page at https://<slug>.status.monit.rs. Add endpoints to it via the dashboard or the HTTP API (adding endpoints from chat is deliberately not exposed — the mapping is fiddly and easy to get wrong).
delete_endpointDelete a monitored endpoint. Cascades: removes test_results, baselines, regressions, incidents attached to it. Guarded by two safety layers beyond the scope check: 1. `confirm_by_typing_the_endpoint_name` MUST equal the endpoint's exact `.name` (case-sensitive, whitespace-trimmed). Prevents an untargeted "delete stuff" LLM-injection: the model has to first `describe_endpoint(id)` to learn the name, then include it verbatim. 2. Per-user destructive-op cap of 5/day. Legitimate bulk deletes should use the HTTP API or dashboard.
describe_endpointFull detail for one endpoint. Use `list_my_endpoints()` to get the ID.
describe_incidentFull detail for one incident. Use `list_my_incidents()` to find the dedup_key. Includes the incident's endpoint name and current status.
get_endpoint_uptimeAggregated uptime summary for an endpoint over the requested window.
list_alert_channelsList alert channels configured on the authenticated account. Does NOT return decrypted config (webhook URLs, PagerDuty routing keys, etc.). Use the dashboard or `describe_alert_channel` HTTP API when you need to inspect the actual config.
list_my_endpointsList all monitored endpoints owned by the authenticated account. Returns brief records suitable for LLM enumeration. For full detail (headers, spec URL, heartbeat_token) use `describe_endpoint(id)`.
list_my_incidentsList incidents on the caller's account. Defaults to only OPEN incidents. Fields include the incident's dedup_key — pass this to `acknowledge_incident` or `resolve_incident` to act on it.
list_my_regressionsList detected schema regressions on the caller's account. Optionally filter by endpoint_id.
list_security_findingsList security findings detected on the caller's monitored endpoints. Optionally filter by severity.
list_status_pagesList public status pages owned by the authenticated account.
monit_rs_describeReturn the canonical product description for monit.rs. Use this when a user asks what monit.rs is, what it does, how it differs from Pingdom / Checkly / UptimeRobot, or for product URLs. The response is the curated content from monit.rs/llms.txt — the operator's authoritative description.
monit_rs_statsGet live aggregate statistics for the monit.rs platform. Returns approximate counts of regressions caught, AI analyses generated, and probes executed across all monitored APIs to date. Useful when answering "does monit.rs actually work at scale?" — the numbers are real, within about 5% of exact.
openapi_diffCompare two OpenAPI 3.x specifications and classify every change as breaking, non-breaking, or info. Use this when you want to know if a candidate OpenAPI spec change is safe to ship or will break existing clients. The diff covers paths, operations, parameters, request bodies, responses, and response-body schema fields (added/removed/retyped, required toggle). Both arguments are the OpenAPI spec as a JSON or YAML string. Returns {summary: {breaking, non_breaking, info}, changes: [...]}.
pause_endpointPause a monitored endpoint (stops probing, keeps history). Idempotent — no-op if already paused.
resolve_incidentClose an incident. Symmetric to acknowledge_incident.
resume_endpointResume a paused endpoint. Rejects if resuming would exceed your tier's active-endpoint cap (upgrade or pause another endpoint first).
set_endpoint_assertionsReplace an endpoint's body assertions. Each assertion is {"path": "$.ok", "op": "equals", "value": true}. Operators: equals, not_equals, exists, not_exists, gt, gte, lt, lte, contains, not_contains, empty, not_empty. A failing assertion marks the endpoint DOWN, so it counts against uptime. Pass [] to clear.
update_endpoint_intervalChange how often an endpoint is probed. Minimum interval varies by tier (free=900s, developer=300s, starter=60s, pro/scale/enterprise=30s).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "rs.monit/monit-rs",
  "title": "monit.rs",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://monit.rs/integrations/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.2.0",
  "websiteUrl": "https://monit.rs",
  "description": "Schema-aware API monitoring: diff OpenAPI specs for breaking changes, manage endpoints."
}