Target
A port, a host, or a URL. See specifying a target for every accepted shape. A bare hostname defaults tohttp. 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.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.default:"none"
Require a static bearer token at the edge, and strip it before forwarding.
Also reads
HEYMCP_BEARER.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.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
Common problems
Too many tunnels open
Too many tunnels open
Hobby allows 3 at once, Pro allows 10.
heymcp sessions shows what’s live.That slug is taken, or reserved
That slug is taken, or reserved
Pick another, or drop
--slug and use your reserved one.--slug or --domain refused
--slug or --domain refused
Both are Pro features. Check with
heymcp whoami.The handshake reports failures
The handshake reports failures
The tunnel is still up and usable. The report is telling you what will break
with real clients — see the checks reference.
Could not reach the local server
Could not reach the local server
The target is wrong or nothing is listening.
curl the same address to
confirm, then check the port.