The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Tunnel Client
Customer-run client for Secure MCP Tunnel: connect private or localhost MCP servers to ChatGPT, Codex, the Responses API, and AgentKit without exposing them to the public internet.
Install
brew install openai/tools/tunnel-clientInstall command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →Secure MCP Tunnel client
tunnel-client is the customer-run agent behind Secure MCP Tunnel. It connects
a private or localhost MCP (Model Context Protocol) server to ChatGPT, Codex,
the Responses API, and AgentKit through an OpenAI-hosted MCP tunnel endpoint,
while keeping the MCP server off the public internet.
Use it when:
- You have an MCP server on a laptop, VM, Kubernetes cluster, or private network and need an OpenAI-hosted product to reach it.
- Security will not approve a new inbound firewall rule or public endpoint for the MCP server.
- You want an operator-visible daemon with
/healthz,/readyz,/metrics, and/uibefore a connector or API call depends on it.
If you searched for "secure MCP tunnel", "MCP tunnel ChatGPT", "connect local
MCP server to ChatGPT", "connect local MCP server to Codex", "localhost to
ChatGPT", or "Codex local MCP", start with tunnel-client help quickstart,
then read the onboarding guide below.
Start Here
- Need the shortest working path from localhost or a private MCP server to
ChatGPT or Codex? Start with
docs/onboarding.md. - Need the customer-shareable network and trust-boundary story? Read
docs/architecture.md. - Need roles, groups, tunnel IDs, or API keys? Read
docs/permissions.md. - Need Docker, Kubernetes, or VM deployment guidance? Read
docs/deployment/overview.md. - Need to debug readiness, connector discovery, or OAuth? Read
docs/troubleshooting.md. - Building a compatible client in another language? Read
docs/protocol.mdand usedocs/openapi.json. Optional client features use the commonX-Tunnel-Client-Capabilitiesheader. - Upgrading for server-directed polling placement? Read the routing correction and activation notes. Supporting clients work with existing services immediately; corrections are enabled separately after client release. No configuration change is needed.
- Using MCP timing or distributed tracing? Read the
timing release and rollback guidance.
Trace forwarding is disabled by default; opt in with
--mcp.forward-trace-contextto carry W3C trace context in MCPparams._metaover stdio and Streamable HTTP. - Using a namespaced tunnel ID? Preserve the full ID returned by the service. The client accepts legacy IDs and aliases with a four-character namespace; see tunnel identifiers.
- Embedding an MCP server directly in a Go process? Use the Go SDK with
the MCP SDK's in-memory transport; see
examples/go-sdk-inmemory.
Try the embedded demo
With a runtime API key and tunnel ID, run the built-in server_info, echo,
and uppercase tools without a separate MCP server:
export CONTROL_PLANE_API_KEY="sk-..."
export CONTROL_PLANE_TUNNEL_ID="tunnel_0123456789abcdef0123456789abcdef"
tunnel-client run --embedded-stateless-mcp-stub --health.listen-addr 127.0.0.1:0
Similar plugs
Reverse engineer anything with agents, from app behavior down to native binaries.
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype…
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io