by btsouth
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/btsouth/toolportLast scanned: 9/4/2026
{
"issues": [
{
"file": "README.md",
"line": 333,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://toolport.app/install.sh | bash\"",
"severity": "low"
},
{
"file": "packaging/agent-plugin/toolport/skills/toolport/SKILL.md",
"line": 16,
"type": "prompt-injection",
"message": "Possible concealment directive: \"do\n not tell the user\"",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-09-04T08:36:16.688Z",
"npmAuditRan": false,
"pipAuditRan": true,
"promptInjectionRan": true
}toolport is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by btsouth. 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 201 GitHub stars.
Yes. toolport passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/btsouth/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 btsouth 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!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
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, VS Code, 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 (63 tools) cost ~19,000 tokens of definitions before you've asked anything. Toolport advertises a handful of compact meta-tools the agent searches on demand instead, so it pays ~450 tokens (98% less, measured).
Measured on a frontier model: up to 91% fewer total tokens at the same task success (graded for correct answers, not just completion), plus 98% less tool-definition overhead on every request, rising to 99.5% 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 |
That's the whole setup. Every client now shares the same servers, and new servers you add propagate to all of them. There's a 60-second demo on the website if you want to watch it first.
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,
toolport_fetch_result) instead of the full catalog, and the agent searches and
calls on demand, so context stays flat no matter how many servers you connect.
(A few more appear only when you turn the matching feature on: toolport_confirm
with approvals, enable/disable with agent control, toolport_run_script with code mode,
and your saved routines.) Benchmarked, graded for correct answers: up to 91% fewer
total tokens at the same task success, 98% less tool-definition overhead per request,
99.5% 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.AGENTS.md, GEMINI.md,
.goosehints, and a toolport-rules.md in the rules directory of clients that
read one) instead of you editing each by hand. Keep several named sets and switch
between them. Your own content is never overwritten: Toolport either owns its own
file or owns a marked block and leaves every other byte alone, and turning a client
off removes what it wrote. Each client is off until you turn it on, and a preview
shows the exact bytes first. See docs/agent-rules.md.rm -rf, never force-push, ask before any push, never read .env - in Claude Code's
own rule syntax, and Toolport writes it into every Claude Code profile's
settings.json, where Claude Code refuses or asks before a matching native tool call
on every call, whatever any hook says. Off and empty by default; only what Toolport
added is ever removed. See docs/agent-permissions.md.toolport_enable_server / toolport_disable_server), reflected in
the app live. Off by default, and the destructive-tool switch always stays yours.