WatchFor
Monitors

MCP servers

Protocol-level monitoring for Model Context Protocol servers — handshake, tool inventory and drift detection.

An MCP monitor checks a Model Context Protocol server the way a real AI agent does: it performs the full JSON-RPC initialize handshake over Streamable HTTP, negotiates the protocol version, discovers capabilities and walks the complete tool inventory.

That matters because an MCP server can answer HTTP 200 and still be broken for every agent connected to it — a failed handshake behind a misconfigured proxy, an empty tool list after a bad deploy, or auth silently rejecting every session. A plain uptime check can't see any of that.

What each check does

  1. Initialize handshake — a real JSON-RPC initialize exchange (JSON and SSE response modes both supported), including session handling (Mcp-Session-Id) and protocol version negotiation.
  2. Tool inventorytools/list is walked with pagination; resources/list and prompts/list are counted when the server advertises those capabilities.
  3. Phase timings — DNS, TCP, TLS, initialize and tools/list are timed separately, so a serverless cold start looks different from a slow network path.
  4. Clean teardown — the session is explicitly terminated, as the spec asks of well-behaved clients.

Checks are read-only discoverytools/call is never issued, so monitoring can't trigger tool side effects.

Tool drift detection

On every check the entire inventory — tool names, descriptions and input schemas — is hashed into a fingerprint. When it changes, the monitor records exactly which tools were added, removed or changed, and the Tool Inventory Changed alert rule (enabled by default) fires with that diff.

Why descriptions matter: they're delivered verbatim into an agent's context — they are instructions. A description that quietly changes after you've connected is the MCP rug-pull pattern, and it's precisely what drift detection catches. The full change history lives on the monitor's detail page under Inventory changes.

Setup

  1. Create a monitor with type MCP Server and set the target to your endpoint URL, e.g. https://mcp.example.com/mcp.
  2. For protected servers, add a bearer token (stored encrypted) or custom headers under Settings → Advanced Options.
  3. To watch the protocol version, enable the Protocol Version Mismatch alert on the Alerting tab and enter the version to pin right on the alert — it fires when a deploy negotiates anything else.

Supported transport: Streamable HTTP (the standard for remote MCP servers). stdio servers are local-process-only by design — monitor their host service or a heartbeat instead.

Alert rules

RuleDefaultFires when
Availability CheckonHandshake or tool listing fails (3 confirmations)
Tool Inventory ChangedonAny tool added / removed / modified
No Tools ExposedonThe server initializes but exposes zero tools
Slow Handshakeoffinitialize exceeds your latency threshold
Protocol Version MismatchoffNegotiated version differs from the pinned one

Quick one-off check

Not monitoring yet? The free MCP Server Checker runs the same protocol-level check once, from a region near you — no account needed.

On this page