openai/tunnel-mcp
Create, connect, list, and inspect MCP tunnel runtimes through the local tunnel-client plugin. Use when Codex needs to manage secure MCP tunnels with aliases and native tunnel-client runtime processes.
npx skills add https://github.com/openai/tunnel-client --skill tunnel-mcp
Use scripts/tunnel_mcp from this plugin when a user asks Codex to manage MCP
tunnels through tunnel-client. The plugin entrypoint is a thin router onto
the public native tunnel-client runtimes ... and
tunnel-client admin-profiles ... command trees.
When the tunnel-mcp MCP app tools are available, use them first instead of
manual shell routing:
install_or_select_tunnel_clientcreate_tunnel_runtimeconnect_stdio_mcplist_runtime_aliasesruntime_statusstop_runtimeThe app tools are an operator surface over native tunnel-client; they
orchestrate tunnel-client runtimes ..., normalize structured output, and keep
tunnel protocol/runtime behavior in the Go binary.
Before acting, consult only the smallest relevant reference under references/:
references/binary.md: how to find or obtain a public-safe tunnel-client binaryreferences/setup-and-install.md: install, export, reset, binary-vs-bundle setupreferences/profiles-state-and-keys.md: profiles, state dirs, admin/runtime key splitreferences/runtime-flows.md: create, connect, list, status, stop, rm, attach by tunnel idreferences/troubleshooting.md: /healthz, /readyz, /ui, status, logs, stale aliasestunnel-client admin tunnels for remote tunnel CRUD. Do not call rawtunnel-service HTTP endpoints from this plugin.
tunnel-client runtimes ... andtunnel-client admin-profiles ....
scripts/tunnel_mcp self-check for plugin/binary/router compatibility;it must report secret reference presence without printing secret values.
tunnel-client run --profile <name> only when the userintentionally wants a foreground daemon attached to the current terminal;
do not translate profile files into flags in the plugin layer.
tunnel-client runtimes connect ...; do not use nohup or disown as the
tunnel-client supervision path.
runtimes connect, run tunnel-client runtimes status <alias> beforereporting success. Only report success when status shows the managed runtime
running with health reported; use --json when Codex needs explicit
process_running, healthy, and ready fields.
plugin must work with the selected tunnel-client binary alone.
PATH binary candidates as diagnostics unless selected through--tunnel-client-bin, TUNNEL_CLIENT_BIN, or .tunnel-client-bin.
handling, cleanup classification, and local process management are owned by
native tunnel-client; consult the relevant reference before explaining those
details.
admin-profiles; runtime attach/connect uses --runtime-api-key env:NAME or
file:/path. Do not pass literal keys.
sk- stylesecret material into plugin state or generated configs.
control_plane_poll_health separately from /healthz and /readyz;local readiness can be green while control-plane polling fails through a dead
proxy.
Take openai/tunnel-mcp from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.