openai/tunnel-client is a customer-run program that connects a private or local MCP server to ChatGPT, Codex, the Responses API, or AgentKit through an OpenAI-hosted tunnel. It is for operators who need these OpenAI products to reach an MCP server without exposing that server to the public internet.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add openai/tunnel-client --skill tunnel-mcpgit clone --depth 1 https://github.com/openai/tunnel-clientWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openai/tunnel-client/tunnel-mcp)<a href="https://agentmods.dev/skills/openai/tunnel-client/tunnel-mcp"><img src="https://agentmods.dev/badge/skills/openai/tunnel-client/tunnel-mcp/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openai/tunnel-client/tunnel-mcp"><img src="https://agentmods.dev/badge/skills/openai/tunnel-client/tunnel-mcp.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.00823 |
| Opus 5 | $0.00022 | $0.00411 |
| Sonnet 5 | $0.00009 | $0.00165 |
| Haiku 4.5 | $0.00004 | $0.00082 |
Grade A, and why
tunnel-mcp scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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_runtime
The 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-safetunnel-clientbinaryreferences/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 aliases
Rules
- Use
tunnel-client admin tunnelsfor remote tunnel CRUD. Do not call raw tunnel-service HTTP endpoints from this plugin. - Route operational actions through
tunnel-client runtimes ...andtunnel-client admin-profiles .... - Use
scripts/tunnel_mcp self-checkfor plugin/binary/router compatibility; it must report secret reference presence without printing secret values. - Use native
tunnel-client run --profile <name>only when the user intentionally wants a foreground daemon attached to the current terminal; do not translate profile files into flags in the plugin layer. - For a long-lived local runtime managed by Codex, use
tunnel-client runtimes connect ...; do not usenohupordisownas the tunnel-client supervision path. - After
runtimes connect, runtunnel-client runtimes status <alias>before reporting success. Only report success when status shows the managed runtime running with health reported; use--jsonwhen Codex needs explicitprocess_running,healthy, andreadyfields. - Do not assume a source checkout, build system, helper, or tmux. The installed
plugin must work with the selected
tunnel-clientbinary alone. - Treat ambient
PATHbinary candidates as diagnostics unless selected through--tunnel-client-bin,TUNNEL_CLIENT_BIN, or.tunnel-client-bin. - Tunnel state, admin profiles, generated runtime profiles, stale-alias
handling, cleanup classification, and local process management are owned by
native
tunnel-client; consult the relevant reference before explaining those details. - Keep admin and runtime credentials split: admin CRUD uses
admin-profiles; runtime attach/connect uses--runtime-api-key env:NAMEorfile:/path. Do not pass literal keys. - Never write literal API keys, bearer tokens, cookies, or inline
sk-style secret material into plugin state or generated configs. - Surface
control_plane_poll_healthseparately from/healthzand/readyz; local readiness can be green while control-plane polling fails through a dead proxy.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 69 lines · 43 tokens per session scan A 6b3da5547e6c
tunnel-mcp is a skill published in the GitHub repository openai/tunnel-client (373 stars, last pushed today), licensed Apache-2.0. It adds 43 tokens to every session and 823 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
skillpack-creator
Create a reusable SkillPack from a successful completed task. Use when the user wants to convert a one-off research, coding, analysis, or content workflow into a distributable local SkillPack with skillpack.json, local skills under skills/, starter prompts, start scripts, and an optional zip package.
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
version-check
Recommend which Claude Code version to run, or whether to update. Use when asked which Claude Code version is best/safe, whether to update now, whether a recent release is buggy, or what changed since the installed version.
review-claudemd
Review recent conversations to find improvements for CLAUDE.md files.
gha
Analyze GitHub Actions failures and identify root causes.
handoff
Write or update a handoff document so the next agent with fresh context can continue this work.