Options
default:"/mcp"
The MCP route on the local server, if it is not
/mcp.Unlike share, there’s no path policy involved here — the probe
goes straight to the address you name, so --path works alone.In CI
This is the main reasonprobe exists separately from share. The
exit codes make it a gate:
--json for a machine-readable report you can post to a PR.
What it checks
The full handshake —initialize, notifications/initialized, tools/list —
then all eleven rules. See the checks reference for each one.
Worth knowing: probe talks directly to your local server, while the probe that
runs on heymcp share goes through the edge and hits the same routing and path
policy a real agent does. If probe is clean but the tunnel’s handshake isn’t,
the difference is in the tunnel configuration — usually the
path policy.
Common problems
Unreachable, but the server is definitely running
Unreachable, but the server is definitely running
Check the path. If your MCP route isn’t
/mcp, pass --path.transport/accept-sse, and you didn't expect it
transport/accept-sse, and you didn't expect it
Your server rejects
Accept: text/event-stream. The probe names it and then
retries without SSE, so you still get the rest of the report — but every
real client asks for streaming, so this blocks all of them.A protocol version warning against a server you know is fine
A protocol version warning against a server you know is fine
If your server is newer than your CLI, update the CLI —
curl -fsSL https://heymcp.dev/install.sh | sh. The check knows a fixed
list of revisions, and an out-of-date list produces a false alarm about
somebody else’s code.