Free tier, not a trial
Claude, ChatGPT and Grok can't reach your laptop, so you can't test the server you're building against the thing that'll actually use it. One command fixes that — and reads every call back to you in plain English.
macOS and Linux, Intel and ARM. Verifies its own checksum, and puts itself on your PATH.
Install the HeyMCP CLI with `curl -fsSL https://heymcp.dev/install.sh | sh`, then run `heymcp login` (it opens a browser once), then `heymcp share <the port my MCP server runs on>`. Tell me the https URL it prints.
Paste it into Claude Code, Cursor, or whatever you build with.
Used ngrok or stripe listen before? It's that, except it understands MCP.
They're talking! Every message shows up below.
3 tools
38 ms
place_order — hmm, that broke
120 ms
quantity is a string; the handler wants an int
place_order — worked
62 ms
Every one of these takes a custom MCP server — and none of them can reach your laptop
- Claude
- ChatGPT
- Grok
- Gemini
The same five requests
Your logs saw five POST requests.
HeyMCP saw an agent break your schema.
Your logs see
- 14:02:28 POST /mcp 200
- 14:02:29 POST /mcp 200
- 14:02:31 POST /mcp 200
- 14:02:33 POST /mcp 200
- 14:02:34 POST /mcp 200
HeyMCP sees
- 14:02:28 Claude plugged in
-
14:02:29
Found
3 tools38 ms -
14:02:31
Tried
place_order— hmm, that broke 120 ms -
14:02:33
quantityis a string; the handler wants an int -
14:02:34
Replayed
place_order— worked 62 ms
Same eight seconds. Same bytes. One of them tells you quantity is a string.
Then open the one that broke
Not a packet dump. What the agent tried, what came back, and — when something breaks — a sentence telling you what to change.
place_order
hmm, that broke
place_order with 2 arguments,
and your server came back with a problem.
quantity is declared as a string in your
schema, but the handler expects an integer. Agents send exactly what the schema says.
120 ms · 1.4 KB · rpc 7 · Claude · 2:31 pm
place_order
REPLAY
worked · 62 ms
Peek at the JSON
{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "place_order", "arguments": { "sku": "TSHIRT-BLK-L", "quantity": "2" } } }
{ "jsonrpc": "2.0", "id": 7, "error": { "code": -32602, "message": "quantity: expected integer, got string" } }
Request & headers
POST /mcp HTTP/1.1 host: myapp.t.heymcp.dev user-agent: claude-user/1.0 content-type: application/json accept: application/json, text/event-stream mcp-session-id: 8f2c1ae4-97bd-4c60-b1de-2a5f0c7e11d9
That's the real thing, with sample data — open the panels, hit Try it again. On your own server it's your own traffic, and you don't have to go back to the agent to ask it nicely.
Two minutes, three steps
No config file, no account setup beyond a GitHub login, nothing to deploy.
Install it
One static binary, checksum-verified. macOS and Linux, Intel and ARM.
curl -fsSL https://heymcp.dev/install.sh | sh
Share your server
You get a public HTTPS URL, and a handshake check before anyone connects.
heymcp share localhost:8000
Hand the URL to an agent
Claude and ChatGPT take it in connector settings. Local clients take it in their MCP config. Either way, the timeline fills.
Settings → Connectors → Add
Three things a plain URL won't give you
A URL that stops moving
Agents remember the endpoint you gave them. Your slug is reserved to your account, so restarting doesn't quietly break every client that already has it saved — and on Pro you can point your own domain at it.
Broken before anyone connects
HeyMCP runs the handshake itself the moment you share, then lints your tool schemas. Most MCP bugs surface as an agent silently declining to use a tool — this catches them while you're still in the terminal.
Every frame in plain English
"Claude called place_order and your server came back with a problem" beats scrolling raw JSON-RPC. The JSON is still one click away, and so is replaying the call.
Free while you're building
The free tier isn't a trial. Upgrade when history and a domain of your own start to matter.
Hobby
$0/mo
- 3 servers shared at once
- 5,000 events a month
- 24-hour history
- Handshake probe, schema lint and replay
Pro
$12/mo
- 10 servers shared at once
- Unlimited events
- 7-day history
- 3 custom domains, and a slug you choose
Plug something in
Install the CLI, run one command, and hand the URL to an agent.