Skip to main content
Gives your local MCP server a public HTTPS URL, runs the handshake probe against it, and then stays in the foreground streaming a live ticker of everything that happens. Ctrl-C closes the tunnel.

Target

A port, a host, or a URL. See specifying a target for every accepted shape. A bare hostname defaults to http. Herd and Valet secured sites are served over HTTPS, so write the scheme for those: heymcp share https://myapp.test.

Options

default:"/mcp"
The MCP route on the local server, if it is not /mcp.
Currently needs --all-paths alongside it, or the URL it advertises will answer -32003. See URLs and paths.
Ask for a specific slug instead of your reserved one. Pro.
3–63 characters, lowercase letters, digits and hyphens, no leading or trailing hyphen, no --, and not one of the reserved names.
Serve on a verified custom domain. Pro.
The domain must already be verified — see Custom domains.
default:"none"
Require a static bearer token at the edge, and strip it before forwarding. Also reads HEYMCP_BEARER.
Claude.ai cannot send a bearer token and will fail silently. See Authentication.
Forward every path, not just /mcp* and /.well-known/*.This makes your whole local server publicly reachable. See What is exposed.

Reading the ticker

Each row is one exchange: time, kind, subject, outcome, latency.
The kinds are INIT, LIST, CALL, NOTIF, RPC, ERROR, HTTP, OPAQUE and DROP, with a on the response half. A replayed call is tagged REPLAY. Housekeeping frames are filtered out of the ticker so they don’t drown the interesting ones. The latency is measured at the edge, so it includes the round trip to your machine — the number an agent actually experiences. For anything more than a glance, open the inspector link. The terminal ticker is a heartbeat; the timeline is where you can expand payloads and replay calls.

Reconnects

If your network drops, the CLI backs off and retries — quietly for the first 30 seconds, so a blink doesn’t spam your terminal. Reconnecting within 15 minutes resumes the same session rather than starting a new one. Your URL doesn’t change either way.

Scripting

Emits machine-readable output. Combined with the exit codes, this is enough to wire a tunnel into a larger script.

Common problems

Hobby allows 3 at once, Pro allows 10. heymcp sessions shows what’s live.
Pick another, or drop --slug and use your reserved one.
Both are Pro features. Check with heymcp whoami.
The tunnel is still up and usable. The report is telling you what will break with real clients — see the checks reference.
The target is wrong or nothing is listening. curl the same address to confirm, then check the port.