HeyMCP Sign in with GitHub

Your MCP server, where agents can reach it

One command gives your local server a stable public HTTPS URL. Then, unlike a tunnel, HeyMCP speaks MCP — it completes the handshake before any agent arrives, lints your schemas for the failures that produce no error message at all, and reads every frame back to you in plain English.

$ heymcp share localhost:8000

stripe listen, for AI agents.

Get started — it's free

Free forever tier · sign in with GitHub · no card

Works with any MCP client — and names the ones it knows on sight

Anything that speaks the Model Context Protocol can connect. HeyMCP is not affiliated with, or endorsed by, any of these projects.

The inspector

Watch an agent use your server

Not a packet dump. A timeline of what the agent tried, what came back, and — when something breaks — a sentence telling you why.

C Claude myapp

They're talking! Every message shows up below.

Activity Handshake · 4 All
Claude plugged in hello!
Found 3 tools looked around · 38 ms
Tried place_order hmm, that broke
Claude called place_order with 2 arguments, and your server came back with a problem.
Easy fixquantity 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 & headers ▸ Try it again
Replaying place_order REPLAY worked · 62 ms

Fix the schema, hit Try it again, and see the same call succeed — without going back to the agent to ask it nicely.

A URL that stops moving

Agents remember the endpoint you gave them. Your slug is reserved to your account, so restarting the tunnel doesn't quietly break every client that already has it saved.

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 when you want it.

"Can't I just use a tunnel?"

You can, and it will forward bytes perfectly. It just has no idea what those bytes mean — which is exactly the part that's hard about MCP.

A generic tunnel

  • A public URL, and a request log of opaque POSTs to /mcp
  • A new random hostname every restart
  • Silence when an agent gives up on a malformed schema
  • Raw JSON, if you pipe it somewhere and squint

HeyMCP

  • A public URL, and a timeline of handshakes, tool calls and results
  • A slug reserved to your account — or your own domain
  • A handshake probe and schema lint that runs before any agent arrives
  • Plain-English explanations, an "Easy fix" when there is one, and one-click replay

Pricing

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 tunnels at once
  • 5,000 events a month
  • 24-hour history
  • Handshake probe, schema lint and replay
Start free

Pro

\$12/mo

  • 10 tunnels at once
  • Unlimited events
  • 7-day history
  • Your own domain, and a slug you choose
Get started

Plug something in

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

$ brew install heymcp
Get started — it's free