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
- Initialize handshake — a real JSON-RPC
initializeexchange (JSON and SSE response modes both supported), including session handling (Mcp-Session-Id) and protocol version negotiation. - Tool inventory —
tools/listis walked with pagination;resources/listandprompts/listare counted when the server advertises those capabilities. - Phase timings — DNS, TCP, TLS, initialize and tools/list are timed separately, so a serverless cold start looks different from a slow network path.
- Clean teardown — the session is explicitly terminated, as the spec asks of well-behaved clients.
Checks are read-only discovery — tools/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
- Create a monitor with type MCP Server and set the target to your
endpoint URL, e.g.
https://mcp.example.com/mcp. - For protected servers, add a bearer token (stored encrypted) or custom headers under Settings → Advanced Options.
- 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
| Rule | Default | Fires when |
|---|---|---|
| Availability Check | on | Handshake or tool listing fails (3 confirmations) |
| Tool Inventory Changed | on | Any tool added / removed / modified |
| No Tools Exposed | on | The server initializes but exposes zero tools |
| Slow Handshake | off | initialize exceeds your latency threshold |
| Protocol Version Mismatch | off | Negotiated 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.