by tsouth89
Local-first MCP gateway. One port for every tool and every AI client: lazy discovery (~90% token savings), tool integrity + quarantine, secrets in the OS keychain.
# Add to your Claude Code skills
git clone https://github.com/tsouth89/toolporttoolport is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by tsouth89. Local-first MCP gateway. One port for every tool and every AI client: lazy discovery (~90% token savings), tool integrity + quarantine, secrets in the OS keychain. It has 50 GitHub stars.
toolport's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/tsouth89/toolport" and add it to your Claude Code skills directory (see the Installation section above).
toolport is primarily written in Rust. It is open-source under tsouth89 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh toolport against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Every tool. One port. One local gateway for all your MCP servers, shared by every AI client, with far fewer tokens.
Toolport is a local MCP (Model Context Protocol) gateway. You set up and authenticate each server once, and every AI client (Claude, Cursor, Codex, and the rest) points at Toolport and shares them, so you stop configuring the same servers separately in each app.
It also fixes what those servers cost your agent. Every MCP server you connect dumps all of its tools into context on every single request, and it adds up fast: just 3 servers (62 tools) cost ~24,000 tokens of definitions before you've asked anything. Toolport advertises 3 meta-tools the agent searches on demand instead, so it pays ~660 tokens.
Measured on a frontier model: up to 91% fewer total tokens at the same task success (graded for correct answers, not just completion), plus 97% less tool-definition overhead on every request, rising to 99.6% on a real 415-tool catalog (see BENCHMARK.md). That holds whether you run one AI tool or five, on cloud models (where tokens are your bill) or local ones (where tool defs eat your context window).
![]() |
![]() |
![]() |
| Fewer tokens — lazy discovery keeps context flat no matter how many servers you connect | One config, every client — set up a server once, every AI tool shares it | Supply-chain security — rug-pull and tool-poisoning detection on the path |
Every MCP server you connect dumps its full tool list into your agent's context on every request, and most AI clients also want their own separate configuration. So you pay a token tax on every call and reconfigure the same servers in every app. Toolport fixes both.
toolport_status, toolport_search_tools, toolport_call_tool) instead of the full
catalog, and the agent searches and calls on demand, so context stays flat no matter
how many servers you connect. Benchmarked, graded for correct answers: up to 91% fewer
total tokens at the same task success, 97% less tool-definition overhead per request,
99.6% at a real 415-tool catalog (BENCHMARK.md). Ask toolport_status
for what it has saved you so far.toolport_search_tools ranks by relevance
across every server, and no tool is ever hidden, any server's full set is one call
away. Optional semantic re-ranking (a local or hosted embeddings endpoint) surfaces
paraphrased needs like "charge a card"; off by default, pure lexical otherwise.toolport_enable_server / toolport_disable_server), reflected in
the app live. Off by default, and the destructive-tool switch always stays yours.Toolport has two pieces:
conduit-gateway) that each AI client launches over
stdio. It reads Toolport's registry, connects to the enabled downstream servers
(stdio or remote HTTP/SSE), and routes tool calls to the right one. Tool names
are namespaced per server (stripe__list_charges) so they never collide.AI client (Cursor / Claude / Codex / Antigravity / ...)
│ stdio MCP
▼
conduit-gateway ──reads──► registry.json + OS keychain
│ routes tools/calls
▼
downstream MCP servers (Stripe, Supabase, GitHub, ...)
The registry is the shared source of truth; the gateway watches it and rebuilds live, so toggles and new credentials take effect without restarting the client. If a connected server changes its own tool set mid-session, Toolport picks that up and refreshes too.
Toolport auto-detects these 20 AI clients, installs the gateway into each with one click, and can import a client's existing servers. It writes the config file shown below for you, so you never have to edit these by hand.
| Client | Config file | Format |
|---|---|---|
| Claude Desktop | <config>/Claude/claude_desktop_config.json |
JSON (mcpServers) |
| Claude Code | ~/.claude.json |
JSON (mcpServers) |
| Cursor | ~/.cursor/mcp.json |
JSON (mcpServers) |
| VS Code | <config>/Code/User/mcp.json |
JSON (servers) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
JSON (mcpServers) |
| Codex | ~/.codex/config.toml |
TOML (mcp_servers) |
| Continue | ~/.continue/config.yaml |
YAML (mcpServers) |
| Antigravity | ~/.gemini/config/mcp_config.json |
JSON (mcpServers) |
| Gemini CLI | ~/.gemini/settings.json |
JSON (mcpServers) |
| Cline | <config>/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
JSON (mcpServers) |
| Roo Code | <config>/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json |
JSON (mcpServers) |
| Warp | ~/.warp/.mcp.json |
JSON (mcpServers) |
| Amazon Q | ~/.aws/amazonq/mcp.json |
JSON (mcpServers) |
| Kiro | ~/.kiro/settings/mcp.json |
JSON (mcpServers) |
| Zed | ~/.config/zed/settings.json |
JSON (context_servers) |
| LM Studio | ~/.lmstudio/mcp.json |
JSON (mcpServers) |
| Jan | <data>/Jan/data/mcp_config.json |
JSON (mcpServers) |
| BoltAI | ~/.boltai/mcp.json |
JSON (mcpServers) |
| Goose | ~/.config/goose/config.yaml |
YAML (extensions) |
| Hermes | ~/.hermes/config.yaml |
YAML (mcp_servers) |
<config> is your OS application-config dir (%APPDATA% on Windows, ~/Library/Application Support on macOS, ~/.config on Linux); <data> is the data dir (~/.local/share on Linux, the same as <config> elsewhere). Zed and Goose paths vary slightly by OS; Toolport resolves the right one automatically.
Use this when Codex has already created its ~/.codex/ directory.