Skip to main content
Claude Code is the right place to start. It’s the most permissive of the clients, it accepts a static bearer token, and when something is wrong it says so in the transcript instead of failing silently.

Add the connector

Then, with the URL it printed:
That’s it. claude mcp add confirms with an Added … line.
--transport http is the streamable HTTP transport, which is what HeyMCP serves. You may see it called streamable-http in MCP specs and in server documentation; Claude Code accepts that name as an alias in JSON config.

With a bearer token

If you shared with --bearer:
Claude Code is the only client of the seven where this is a one-liner, which is another reason to prove your setup here first.

Choosing where the config is saved

--scope (short form -s) controls whether the server is recorded for this project or for you globally. A tunnel URL is usually a per-project thing, so the default is normally what you want.

Check it connected

You want ✔ Connected next to heymcp. The other statuses are informative: Inside a session, /mcp opens a panel showing each server, its tool count, and its detail view.

Try it

Ask Claude to use one of your tools, then watch the row appear in your HeyMCP inspector. You’ll see the arguments it actually sent — which is regularly the surprising part.

It’s not showing up

Claude Code prints the status code and the server’s error text. Match it against the edge error codes — a 503 means your tunnel isn’t running, a 404 means the URL is wrong or the path isn’t shared.
Check the handshake report — most often a tool has no description, so Claude has nothing to go on but the name. tool/no-description
Either you shared with --bearer and didn’t pass --header, or your own server is requiring auth. The HeyMCP inspector will show you whether the request reached your machine at all.
The request never reached the edge. Check the URL for a typo, and confirm heymcp share is still running.

Remove it