HeyMCP Start free

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.

$ curl -fsSL https://heymcp.dev/install.sh | sh

macOS and Linux, Intel and ARM. Verifies its own checksum, and puts itself on your PATH.

Used ngrok or stripe listen before? It's that, except it understands MCP.

Claude ChatGPT Grok Gemini myapp

They're talking! Every message shows up below.

Claude plugged in
Found 3 tools 38 ms
Tried place_order — hmm, that broke 120 ms
quantity is a string; the handler wants an int
Replayed 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

  1. 14:02:28 POST /mcp 200
  2. 14:02:29 POST /mcp 200
  3. 14:02:31 POST /mcp 200
  4. 14:02:33 POST /mcp 200
  5. 14:02:34 POST /mcp 200

HeyMCP sees

  1. 14:02:28 Claude plugged in
  2. 14:02:29 Found 3 tools 38 ms
  3. 14:02:31 Tried place_order — hmm, that broke 120 ms
  4. 14:02:33 quantity is a string; the handler wants an int
  5. 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.

Tried place_order hmm, that broke
Claude called place_order with 2 arguments, and your server came back with a problem.
Easy fix — 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

Peek at the JSON
Request
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "place_order",
    "arguments": { "sku": "TSHIRT-BLK-L", "quantity": "2" }
  }
}
Response
{
  "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.

01

Install it

One static binary, checksum-verified. macOS and Linux, Intel and ARM.

curl -fsSL https://heymcp.dev/install.sh | sh

02

Share your server

You get a public HTTPS URL, and a handshake check before anyone connects.

heymcp share localhost:8000

03

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
Start free

Pro

$12/mo

  • 10 servers shared at once
  • Unlimited events
  • 7-day history
  • 3 custom domains, and a slug you choose
Upgrade to Pro

Leave an address and we'll say when HeyMCP does something new. One click to stop.

Plug something in

Install the CLI, run one command, and hand the URL to an agent.

$ curl -fsSL https://heymcp.dev/install.sh | sh
Start free with GitHub