# Secure MCP Tunnel client

The customer-run client for OpenAI's Secure MCP Tunnel, connecting a private or localhost MCP server to ChatGPT, Codex, the Responses API and AgentKit through an OpenAI-hosted tunnel endpoint, without exposing the server to the public internet.

tunnel-client is meant for an MCP server that lives on a laptop, a VM, a Kubernetes cluster or a private network that needs to be reached by an OpenAI-hosted product, when a new inbound firewall rule or a public endpoint is not an option. It runs as an operator-visible daemon with `/healthz`, `/readyz`, `/metrics` and a `/ui` endpoint before a connector or API call depends on it.

A runtime API key and tunnel ID let it run a built-in `server_info`, `echo` and `uppercase` demo without a separate MCP server, using stateless MCP handling. Client capability negotiation is exposed through a common `X-Tunnel-Client-Capabilities` header, and a Go SDK with an in-memory transport lets an MCP server be embedded directly in a Go process.

It is written in Go, and its documentation covers its architecture and trust boundary, permission roles and tunnel IDs, Docker, Kubernetes and VM deployment, and building a compatible client in another language against its published protocol and OpenAPI spec.

Website: https://github.com/openai/tunnel-client
