
mcptoon
io.github.activeing123Published by GitHub account activeing123v0.8.35Updated Nov 8, 2026
MCP tools + agent skills in one zero-dependency CLI: 71,929 -> 581 tokens (-99.2%, measured).
Overview
A zero-dependency local CLI and MCP gateway that manages MCP servers and agent skills across agents while cutting tool-schema token use.
- What you can do
- Discover, import, install, add and remove MCP servers from npm, pip, HTTP or registries, and sync them into many agent configs
- List tools as a compact name index, inspect a schema on demand, and call tools or run code with only stdout entering context
- Search registries and skill indexes, install starter packs, and resolve skills or documentation chapters for a task
- Drive OpenAPI/Swagger and GraphQL endpoints as commands, with OAuth login and saved connections
- List and read MCP resources and prompts, and run doctor/health checks on configured servers
- When to use it
- Useful when many MCP tools or skills are installed and their schemas crowd the context window, or when the same tools must be shared across several agents such as Claude Code, Cursor, Windsurf or VS Code without hand-editing each config.
- Requirements
- Python package installed locally (pip, pipx or a virtualenv; on PEP 668 systems a plain system pip install is refused). Runs as a local stdio process. No API keys declared; remote servers may need tokens supplied through environment variables referenced in headers. Some demo or no-install paths need Node.
Installation
In SourceWeft
- Open mcptoon in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
One Place for All Your Agents' MCP Tools and Skills.
Install 1,000 skills and 1,000 MCP tools locally — and never worry about context flooding.
Tools and skills configured in any single agent just work across Cursor, Claude Code, Codex, and 103+ desktop & terminal agents.
Pioneering on-demand schema retrieval out of the box — no more stuffing context windows, saving 99% context tokens.
Zero dependencies, pure local, offline-first.
If this saves you tokens, please star the repo — it helps other builders discover it.
[PyPI version] [GitHub Stars] [CI Build] [Tests] [Zero Dependencies] [License]
[MCP Spec] [AllMCPs] [MCPVault] [mcpservers.org]
🌐 Official Website · 🧮 30s Token Tax Calculator · 🇨🇳 中文文档 · 📖 Developer Docs
[mcptoon Benchmark: 71,929 to 581 tokens (-99.2%)]
Skeptical of a synthetic 255-tool sample? Here are 7 real public MCP servers (209 tools) measured on a real machine → — 640,606 → 905 tokens (−99.86%). Or run mcptoon bench on your own catalog.
https://github.com/user-attachments/assets/0272d3a8-c74f-428d-8559-fbf804ce0685
Also: OpenAPI / GraphQL passthrough · OAuth · MCP resources & prompts · saved connections · code sandbox — see All commands.
pip install mcptoon && mcptoon quickstart — 565KB, zero dependencies, zero config.
Stays current on its own: it tells you when a newer version is out, and mcptoon upgrade updates in one command.
🔍 Common Pain Points & Solutions at a Glance (Click to expand)
🚀 Quick Start (Choose Your Way)
Is it actually saving you anything? After a fresh install mcptoon can sit in
direct mode — installed but not wired into the agent — and save nothing. See
Which mode is cheapest?, or just run mcptoon mode.
⚡ Core Capabilities at a Glance
Every command, with flags, is in All commands.
Why mcptoon: Solving Context Window Bloat & Multi-Agent Config Fragmentation
mcptoon is a zero-dependency local tool gateway and skill manager for LLM agents. In vanilla MCP architecture, every agent (Claude Code, Cursor, Windsurf, Codex, etc.) must inject the full JSON Schema definitions of all installed tools into its context window, resending them on every single turn.
According to our real-machine benchmark data: mounting just 255 common MCP tools consumes 71,929 tokens in descriptions alone, eating over half of a standard 128K context window before the first user prompt is processed. This not only inflates token costs unnecessarily, but also dilutes the model's attention, causing severe tool confusion and parameter hallucinations. mcptoon compresses these 71,929 tokens down to 581 tokens (−99.2%) using a compact name index, fetching schemas on demand only when a tool is actually called.
How Token Optimization Works: On-Demand Tool Retrieval & Dynamic Schemas
mcptoon keeps those descriptions on disk, not in context, and hands the agent a compact view instead:
- A name index, not full schemas. Picking a tool only needs its name — 255 tools become 581 tokens (−99.2%). The full schema is fetched on demand with
mcptoon inspect, only when a tool is actually called. - Skills the same way. One resident pointer (39 tokens) plus one lookup (791 tokens) replaces loading every
SKILL.mdin full — 1,572,330 → 39 + 791 (−99.99%). - Results too.
--toonre-encodes a tool's result as standard TOON. Measured 5.7% smaller on a mixed result sample, ranging 1.8%-48.6% by result shape — a list of records barely shrinks, a single record halves. Not a flat 34%: seeassets/benchmark_results.json.
Nothing is lost: the full schema and the full skill text stay one command away. Only the context window is spared.
mcptoon is a 565KB, zero-dependency native CLI that manages every MCP tool and agent skill on your computer — and shares them across all your agents with no config written by you.
This isn't just us talking
Those numbers are ours — but "loading every tool schema into context is expensive" is not a claim only we make:
- Anthropic's engineering write-up — tool schemas flooding the context window is a real cost; one example drops from 150,000 tokens to 2,000
- Firecrawl's benchmark — the same task cost 1,365 tokens via CLI vs 44,026 via MCP (32×)
- Scalekit's benchmark — CLI 10–32× cheaper, 100% reliable vs MCP's 72%
- MCP-Zero (arXiv:2506.01056) — on-demand tool retrieval, near-constant cost regardless of tool count
mcptoon is the one you can use today: it covers any agent that can run a shell, and writes a single hookup line into the mainstream GUI clients it knows.
Two ways in
Measure your numbers: pip install mcptoon && mcptoon bench — it reports your own
catalog, not the fixed 255-tool sample below (that sample's method is in
docs/tiktoken-benchmarks.md).
Skills work the same way: 1,572,330 tokens of SKILL.md text → 39 resident + 791 per lookup (−99.99%). Call results shrink a further ~6% with --toon (shape-dependent).
Path 1 · I just use AI tools
You have a desktop AI — Claude, Codex, Cursor, Windsurf, Cline, VS Code Copilot, and 97 more (full list of 103 →). Today, adding a tool or a skill means hand-editing that agent's JSON. mcptoon removes that step:
-
Install once.
quickstartfinds your MCP servers, writes your config, and registers mcptoon in every agent it detects. (Skipquickstartand the first command you run still self-heals: it installs mcptoon's own skill into each agent and builds the skill index, once per machine.) -
Add tools and skills in one place — here, not in each agent.
-
Use them from any agent. Your agent runs
mcptoonlike any other command — no config, no restart. See Works with every AI agent.
Want a head start? Four built-in starter packs — essentials, web-research, code-review, docs — stand up a working toolset in one command:
Path 2 · I build with MCP / agents
mcptoon is a plain CLI with scriptable output, plus an MCP endpoint when you want one.
- Stable output — JSON by default,
--toonfor smaller results (shape-dependent, 5.7% on a mixed sample),--format mcpto export standard MCP JSON. mcptoon serve— stdio or HTTP, connection pooling, per-agent keys, for clients that insist on a proxy.- Zero dependencies — pure Python standard library, so it drops into any environment (CI, containers, air-gapped).
Full reference: DEVELOPERS.md and All commands.
Contents
- Why mcptoon
- How the token saving works
- This isn't just us talking
- Two ways in
- Path 1 · I just use AI tools
- Path 2 · I build with MCP / agents
- 30 seconds up and running
- What it does
- Where the tools come from
- The three bills
- Install
- Works with every AI agent — 103 clients (42 CLI · 61 serve)
- Why a CLI, not a proxy
- Which mode is cheapest?
- All commands
- Trust and safety
- Credits and references
- Contributing
- Troubleshooting & FAQ
- License
30 seconds up and running
quickstart is also what makes mcptoon visible: it writes mcptoon serve into each
agent's config as the reserved server mcptoon, so your agent can see mcptoon itself.
Already synced? Re-register with mcptoon sync --self (plain mcptoon sync only writes
your servers); check the state any time with mcptoon status.
Two ways in — and you don't pick one. mcptoon is a CLI first: a shell-capable agent
runs mcptoon commands, and that is the cheapest path — the schemas never enter context.
quickstart also registers mcptoon's own MCP entry (mcptoon serve) with each agent that
takes one, so a client that can only see MCP servers still reaches your tools. The MCP entry
ships in compact mode: it keeps your upstream tool list out of the model's context and
sends it to mcptoon_manifest → inspect → call instead. mcptoon status shows both ledgers.
And it is fully reversible. The install registers the gateway, and by default
quickstart also takes over — it routes your existing servers through the gateway
and removes their direct entries (without that step your agent sees the same tools
twice, once direct and once through the gateway, which costs more, not less). It
is a listed, confirmed step, and it is undoable: mcptoon restore drops the
gateway entry and puts your servers back exactly where they were. Anything you
added to a config afterwards is left untouched. mcptoon off is the lighter
switch — it removes only the gateway entry and leaves your servers where they are.
Preview either with --dry, and preview the complete removal plan with
mcptoon uninstall --dry (it prints exactly what it will remove first).
Don't want to install yet? Watch it work instead (needs Node):
It boots the official "everything" reference server, calls one tool, and prints the token math on your screen — no API key, none of your servers, nothing written to disk.
What it does
Tools: schema on demand
The full schema is compressed to a name index. When you need one, mcptoon inspect
fetches its real parameters, then call runs it. You pay for a listing, not for every
turn.
Skills: one resident pointer
No more loading the whole catalog. A single pointer line stays resident (39 tokens) and one lookup returns the most relevant skills (791 tokens). Views are links (a junction on Windows, no admin needed), so one edit at the source is live everywhere and there is no second copy to drift.
Install once, share everywhere
Install mcptoon once and every AI on the machine gets all your tools and skills. Add more later and it is live immediately — no agent restart, no per-agent JSON.
Add tools your way
One command per server, from npm / pip / HTTP. Or let mcptoon scan what you already have:
mcptoon discover.
A remote server that needs a token reads it from the environment, so no credential is ever written to disk:
${NAME} is resolved at request time, so the config, the generated handler and every log
keep the template — rotate the variable and the next call uses the new value, with no
reinstall. A missing or empty variable fails loudly, naming it, never as an empty header.
Where tools come from — search across 17,000+ MCP servers with one command
On a new machine the first question isn't "how do I save tokens", it's "which tools do I
even want". The old answer is to hunt GitHub for mcpServers snippets and hand-copy them
into JSON.
mcptoon ships no tools and bundles no catalog. It queries the upstream registries, so you search for exactly what you need:
Results carry a ✓ (registry-verified), a type tag (npm / pypi / hosted / remote)
and a call count. Data comes from two upstreams, queried live and never stored:
Why nothing is bundled: a built-in list would need a release to update and would pull
someone else's source into your supply chain. mcptoon stores only a pointer — the
search writes one line into your own ~/.mcptoon/config.json; third-party source never
lands inside mcptoon.
Then distribute to every agent:
How to read a result: the index mixes official @modelcontextprotocol/* servers with packages individuals publish. A ✓ means the registry verified the entry — your cue to read the source before you hand it credentials.
The skills half: skills search <query> queries the open skills index (skills.sh) — find a skill by what it does, then install it with skills add <git-url>. mcptoon installs the repos you point it at — the catalog is the open ecosystem itself.
Starter packs: if you'd rather not pick tool-by-tool, four built-in packs — essentials, web-research, code-review, docs — each bundle a few tools plus a ready-made prompt. mcptoon install --packs lists them; mcptoon install --pack essentials installs one. The two research packs need no API key.
The three bills, and why you must not mix them
mcptoon saves tokens in three separate places. Comparing the numbers across them is meaningless.
The figures below come from catalogs of three different sizes — a 255-tool synthetic sample (the fixed headline benchmark), a 1,109-tool machine, and whatever your own machine has. Do not compare a percentage from one against a token count from another; each table states which catalog it measures.
There are two ways to read "how much does this save?", and they answer different
questions. The gateway figure — full schemas versus what the agent actually loads
under the default compact exposure — is what installing mcptoon buys, and it is the
honest headline (it scales with catalog size: the more tools you have, the larger it
gets). The slim-schema figure (same tools, terser descriptions) is the smaller,
secondary claim (88.5%), and it is what manifest --slim buys. mcptoon status prints
both, side by side, from one measurement, so the two can never drift apart.
Bill 1 · Tool discovery (manifest): 99.2% smaller by default
mcptoon manifest with no flags is this tier. Want more? --slim (names plus param
types, 8,282 tokens, −88.5%) or --full (the complete schema).
Bill 2 · Call results (call): optional, --toon saves ~6%
This bill comes due after a tool returns. mcptoon call prints JSON by default and
saves nothing by default. Add --toon to shrink the result.
Bill 3 · Skill catalog (skills): 1,572,330 → 39 resident + 791 per lookup
One table, all three, on the machine this README was written on:
The fixed headline benchmark — a synthetic sample of 255 tools across 50 servers,
tiktoken cl100k_base. It is not your catalog; run mcptoon status to see your own
numbers:
Measure your own catalog with mcptoon bench (it reports your tools, not this fixed
sample). The exact three-format table above is reproducible too — no clone needed:
Method and caliber: docs/tiktoken-benchmarks.md.
Install
Linux (Debian/Ubuntu 23.04+, and any distro that follows PEP 668), and Homebrew Python on macOS. A plain
pip installinto the system Python is refused there witherror: externally-managed-environment. That is the distro protecting itself, not a problem with mcptoon. Install it the clean way instead:
pip install --break-system-packages mcptoonalso works, but it writes into the system Python — preferpipxor a venv. On Windows,pip install mcptoonjust works.
Other ways to install
Nix
Packaged by numtide/llm-agents.nix — a bot follows every PyPI release, so the flake is never a version behind by hand:
The plugin and the skill are both surfaced through
sudosubin/agents.nix as
pkgs.agent-plugins.github.activeing123.mcptoon.<plugin-name> and
pkgs.agent-skills.github.activeing123.mcptoon.<skill-name>.
Cross-Agent Support: Works with Cursor, Claude Code, Windsurf & 103+ Clients
mcptoon reaches an agent one of two ways, and every client below falls into one of them.
You don't pick — quickstart registers both, and each host takes whichever it can:
- CLI leg — the agent runs
mcptoonitself. Anything with a shell (a CLI agent, or a coding IDE with a terminal) needs zero config: it runsmcptoon call,mcptoon search,mcptoon skills resolve. Nothing is written into it at all. - serve leg — the client can't run a shell. A chat app or GUI mounts MCP instead, so it
gets one entry:
mcptoon serveas a single MCP server. One line, one place.
The market, covered. 103 clients, taken from awesome-mcp-clients plus vendor docs for the coding agents that postdate it; developer libraries (mcp-agent, mcp-client-go) are excluded because a user does not run them. Evidence is per client — we name what we verified, not what we assumed.
CLI leg — 42 clients, zero config (they run mcptoon themselves):
AdaL · Aider · Amazon Q Developer · auggie · Autohand Code CLI · Claude Code · Claude Code Open · ClaudeMind · Cline · Codex · ContextKit · Continue · Copilot CLI · Copilot-MCP · Crush · Cursor · Dexto · Dolphin-MCP · Enola · Gemini CLI · Goose · JDBCX · Junie · KiloCode · Kiro · McPico · MCPOmni Connect · mistral-vibe · Nerve · Octomind · opencode · OpenHands · PraisonAI · Qwen Code · Roo Code · Slack MCP Client · SwarmClaw · Trae · VS Code GitHub Copilot · Warp · Windsurf · Zed
serve leg — 61 clients, one mcptoon serve entry (no shell, so they mount MCP):
5ire · Agent Bridge · Agent-cli · AgentOne · AIaW · Ano · AnythingLLM · Argo-LocalAI · askit-mcp · AstrBot · BoltAI · BrowseWiz · Canvas MCP Client · CarrotAI · Chainlit · ChatMCP · Cherry Studio · Claude Desktop · console-chat-gpt · DeepChat · DocsGPT · eechat · Enconvo · Fastchat MCP · FLUJO · Glue · HyperChat · kibitz · Klavis AI · LangBot · LibreChat · LobeHub · Lutra · MCP Chatbot · MCP CLI client · MCP Playground · MCP Simple Slackbot · MCP SuperAssistant · MCPCLIHost · MCPHost · Memex · MindPal · NextChat · OpenClaw · oterm · Qordinate · Runbear · SeekChat · Simple AI · Superinterface · Tambo · Taskade · Tester MCP Client · Tiles Notebook · Tome · Vercade · WhatsMCP · Witsy · y-cli · Yume · Zin-MCP-Client
Evidence status — sync --self writes a hookup line into the 12 hosts we have verified
against their own docs; every other host above is reached by the CLI or by mcptoon serve
without a host-specific file, so there is nothing to verify per host.
What mcptoon writes, host by host
mcptoon is a CLI tool — a manager, not a resident proxy or service, and not a client
library. Your agent never talks to your upstream MCP servers directly: it either runs
mcptoon commands, or reaches them through mcptoon's own MCP entry (mcptoon serve).
For the hosts that take a file, this is exactly what lands where:
mcptoon serve is the other direction: run all your configured servers behind one MCP
endpoint, with connection pooling and per-agent keys, for clients that insist on a proxy.
You don't have to choose between the two — the CLI stays the primary way in, and the bridge
is wired alongside it wherever the host can take one.
Why a CLI, not a proxy
MCP's premise is that every capability is a server your agent must be configured to reach — which is why one new tool means editing per-agent JSON in a different format for each, restarting everything, and re-paying the full schema cost in every agent.
A command line is the one interface every agent already has. And the form factor is measurably cheaper on its own, before mcptoon does anything:
- Firecrawl: the same task cost 1,365 tokens via CLI vs 44,026 via MCP — 32×
- Scalekit: CLI 10–32× cheaper, 100% reliable vs MCP's 72%
The proxy form exists too — mcptoon serve puts all configured servers behind one MCP
endpoint — and quickstart wires it alongside the CLI, so you never have to choose. This
section is about the shape mcptoon is built around, not a switch you have to flip.
Which mode is cheapest?
There are three ways mcptoon can hand tools to an agent, and they cost very
differently. Only one is the cheapest, and it is not the state a fresh install
starts in. (The token figures below are from the 255-tool sample; your own catalog
differs — mcptoon mode prints your numbers.)
CLI is cheapest because it is idle at zero. It costs nothing on a turn that
uses no tool, and a few hundred tokens only on the turn it does. serve is a close
second — a small fixed bill every turn. direct is what you pay when mcptoon is
installed but not wired into the agent, and it is where a fresh install sits, which
is why mcptoon can feel invisible until you run mcptoon quickstart.
The "99%" in this README is the definition-side saving — from not loading every schema. CLI and serve both get it; direct does not. Result compression is a separate, much smaller bill (Bill 2 above) and is never the reason to install.
Find out which mode you are in — and what each costs on your catalog — with
mcptoon mode; print a one-line badge with mcptoon statusline.
All commands
Full reference in DEVELOPERS.md.
Format family: four tiers, compact by default
All optional; the default is already the leanest tier.
Why compact by default? Choosing which tool to use only needs names (581 tokens for 255 tools); parameter detail matters at call time and is fetched on demand. Defaulting to full schemas would hand the 99.2% right back.
The rule for agents: use manifest to choose, inspect before you call. Measured on
41 live tools: an agent guessing arguments from names alone lands ~10% valid calls, while
one that runs inspect once for the 2–3 tools a turn actually uses hits 100% — identical
to injecting every schema, at a fraction of the cost.
Trust and safety
It's just a 565KB native CLI — delete it anytime; keep it, and you never have to configure tools or skills for any agent again. mcptoon touches your agent configs, so it is built to be transparent — and easy to walk away from.
Three guards run on every tool result before your agent sees it:
- Reversible.
mcptoon restoreundoes a takeover (drops the gateway and returns your servers);mcptoon offremoves only the gateway entry;mcptoon uninstall --dryprints the full removal plan first. Your servers are never deleted unless you ask. - No telemetry. No analytics, no crash reports, nothing phoned home.
- Local-first. Your tools, skills and files stay on your machine. The only thing that leaves is
install --search, which asks the registries for a catalog listing — it never sends your data. - No stored credentials. API keys pass straight from your config or environment.
- No dependencies. Pure Python standard library — nothing in the supply chain to audit.
CI enforces it with
scripts/check_zero_deps.py. - No daemon. Pure CLI — no resident process, no listening port.
- Formats don't break compatibility. The wire protocol is always standard JSON-RPC;
compact/slim/toon only affect mcptoon's output to the agent. If
--toondecoding ever fails it falls back to JSON, and one--fullrestores the native schema. No lock-in.
Scope, in one line: mcptoon is an index and a config manager — it points you to each tool's own source, which you can review on its own terms.
Credits and references
- TOON standard — v4.1 (MIT), vendored from python-toon and credited in NOTICE
- ToonDeck — a GUI console for mcptoon (pre-alpha): same engine, point and click instead of typing commands
Who builds this: mcptoon is an independent third-party project maintained by @activeing123. It is not affiliated with Anthropic.
Contributing
Three hard rules: zero dependencies (CI-enforced), new behavior ships with tests, Windows is a first-class target. New here? Start with CONTRIBUTING.md and DEVELOPERS.md.
The codebase: 41,196 lines of Python across 56 modules, zero third-party dependencies.
Support
Hitting an error? Troubleshooting & FAQ covers the common ones
(Server 'X' not configured, the skills sync mis-delete gate, unknown
command/option exit codes, why a saving reads 99% not 100%, and a stale skills
count).
mcptoon is a one-person side project and stays free for individuals. If it cut your context bill:
- Sponsor it on GitHub — one-off or monthly.
- Star the repo — that's how other builders find small tools.
Team features are not built yet. One shared server list synced to every teammate's machine; a log of what got hydrated when. No pricing and no waitlist page — mail [email protected] and it moves up the list.
License
Apache 2.0. See LICENSE and NOTICE.
mcptoon is an independent third-party MCP client, not affiliated with Anthropic.
If mcptoon cut your context bill, star it — that's how other builders find small tools.
Source: README.md at commit 7574a78
Tools
0Version history
36- v0.8.35LatestNov 8, 2026
- v0.8.34Oct 30, 2026
- v0.8.33Oct 29, 2026
- v0.8.30Oct 25, 2026
- v0.8.29Oct 25, 2026
- v0.8.28Oct 25, 2026
- v0.8.27Oct 23, 2026
- v0.8.26Oct 22, 2026
- v0.8.25Oct 21, 2026
- v0.8.24Oct 19, 2026
- v0.8.23Oct 19, 2026
- v0.8.22Oct 17, 2026
- v0.8.21Oct 17, 2026
- v0.8.20Oct 13, 2026
- v0.8.19Oct 12, 2026
- v0.8.18Oct 11, 2026
- v0.8.17Oct 11, 2026
- v0.8.16Oct 7, 2026
- v0.8.15Oct 6, 2026
- v0.8.14Oct 5, 2026
- v0.8.13Oct 5, 2026
- v0.8.12Oct 3, 2026
- v0.8.11Oct 2, 2026
- v0.8.8Oct 2, 2026
- v0.8.7Oct 2, 2026
- v0.8.5Sep 30, 2026
- v0.8.4Sep 29, 2026
- v0.8.3Sep 28, 2026
- v0.8.2Sep 27, 2026
- v0.8.1Sep 25, 2026
- v0.7.23Sep 24, 2026
- v0.7.20Sep 20, 2026
- v0.7.19Sep 18, 2026
- v0.7.18Sep 18, 2026
- v0.7.16Sep 17, 2026
- v0.7.14Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts