pipehero
Docs menu

Expose your own MCP server

Building a Streamable HTTP MCP server on localhost and need a cloud-only client (Claude.ai, ChatGPT) to reach it? Same tunnel, pointed the other way:

pipehero start myserver --port 3000
# → https://myserver.t.pipehero.app forwards to your local MCP server

Add the resulting URL as a custom connector in the client. Full walkthrough: MCP server tunnel.

Known limitations, right now: SSE doesn't pass through the tunnel yet — regular request/response calls work, but a streamed response still isn't delivered incrementally. The optional server-push listen stream fails fast with a 405 instead of hanging, once the tunnel has --long-requests on (on a tunnel without it, it still sits idle and times out — not specific to MCP; true of any SSE endpoint tunneled through Pipehero today). There's also a 30-second request timeout by default — opt a tunnel into 120 seconds instead, for tool calls that legitimately run long:
pipehero start myserver --port 3000 --long-requests

Or toggle it from the dashboard when creating the tunnel. Either way it's a per-tunnel setting: set once, remembered for every future pipehero start.

A note on data: MCP request and response bodies passing through a tunnel are stored the same way webhook bodies are — plaintext at rest, retained per your plan. MCP tool-call parameters can carry more than a typical webhook payload (file contents, prompts, tokens), so keep that in mind for what you tunnel.

Once it's reachable, the next question is usually rollout — the same server working the same way on a teammate's machine, across whichever client they use (Claude Code, Cursor, VS Code, and others), without walking each person through setup by hand. Kitbase handles that: declarative kitbase.yaml profiles, per-client adapters, and secrets that resolve locally against a vault instead of living in a shared file.