Skip to main content
Claude, ChatGPT and Grok can’t reach your laptop. So the server you’re building can’t be tested against the thing that will actually use it. One command fixes that:
Your MCP server now has a stable public HTTPS URL that agent clients can connect to, and every frame they exchange with it shows up in a live timeline you can read.

Why not just a tunnel?

A generic tunnel moves bytes. It has no idea what MCP is, so it can tell you that five POST requests happened and nothing else. HeyMCP speaks the protocol:

A URL that stops moving

Your account gets a permanent subdomain. Add the connector once and it keeps working tomorrow — no re-pasting a fresh URL into six clients every morning.

Broken before anyone connects

HeyMCP performs the MCP handshake itself the moment your tunnel opens, then lints your tool schemas against what real clients actually accept. You find out before Claude quietly refuses to connect.

Every frame in plain English

Not a request log. Tried place_order · hmm, that broke — a timeline of what the agent attempted, what your server said, and how long it took.

The failures this is for

MCP client failures are mostly silent. A connector that never appears. A tool that’s never called. A schema rejected with no message anywhere. Some real examples HeyMCP catches for you:
  • Your MCP route answers with text/plain. Claude.ai fails silently — no error in the UI, no clue in your logs. transport/content-type
  • A date parameter has no format, so Claude sends "7pm" and your parser throws a 500. schema/no-format
  • Two tools differ only by capitalisation, so one of them can never be called. tools/name-collision

Get going

Quickstart

Install, sign in, share a server, connect a client. About two minutes.

Connect a client

Step-by-step for Claude Code, Claude.ai, ChatGPT, Grok, Cursor, VS Code and Gemini.

How it works

What connects to what, and why nothing is buffered.

Checks reference

Every rule the handshake probe runs, what it means, and how to fix it.