
OneTool MCP
io.github.beycomPublished by GitHub account beycomv2.2.2Updated Oct 24, 2026
One MCP for devs incl Brave,Google,Tavily,Context7,AWS,Excalidraw,DB,GitHub,DevTools,Playwright
Overview
One local MCP server that exposes 250+ developer tools as a Python API, plus a proxy for other MCP servers.
- What you can do
- OneTool bundles 28 packs of tools that an assistant calls as Python code rather than as individual tool definitions, covering web search, library docs, file operations, SQL databases, document conversion, diagrams, image vision, persistent memory, and RAG knowledge bases. It also proxies existing MCP servers so they can be called as namespaces, and offers runtime control to enable, disable, or restart them. Large outputs can be stored as handles, and secrets are age-encrypted with the key in the OS keychain.
- When to use it
- Worth considering when an assistant needs many developer tools at once and the token cost of loading each server's definitions is a problem, or when you want search, files, databases, diagrams, and memory behind a single MCP entry. Also useful if you already run several MCP servers and want to keep them without their per-request tool overhead.
- Requirements
- Runs locally as a stdio process on the user's machine; desktop only, no web executable. Installed via a bootstrap script or with uv (uv tool install 'onetool-mcp[all]'), then initialised with onetool init. No authentication, environment variables, or headers are declared in the manifest, but individual packs such as search providers and proxied servers need their own API keys or tokens configured in onetool.yaml.
Installation
In SourceWeft
- Open OneTool MCP 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 MCP for developers - no tool tax, no context rot.
250+ tools your agent calls as Python code: search, docs, files, databases, diagrams, vision, memory - plus a proxy for every MCP server you already use.
[PyPI] [License] [Python] [GitHub stars]
Works with Claude Code, Cursor, Codex - any MCP client
The Problem
Every MCP server re-sends its tool definitions on every request: 3K-30K tokens each. Connect 5 servers and you've burned 55K tokens before the conversation starts. Connect 10+ and you're at 100K.
The math is brutal: Claude Opus 4.5 at $5/M input tokens, 20 days × 10 conversations × 10 messages × 3K tokens = $30/month per MCP server - even if you never use the tools.
And then there's context rot - your AI literally gets dumber as you add more tools (Chroma Research, 2025).
The Solution
OneTool is one MCP server that exposes tools as a Python API. Instead of reading tool definitions, your agent writes code:
Configure one MCP server. Use unlimited tools - ~2K tokens no matter how many you add.
"Agents scale better by writing code to call tools instead. This reduces the token usage from 150,000 tokens to 2,000 tokens...a cost saving of 98.7%"
97% fewer tokens. 30× lower cost. No context rot. (Measured - 47,660 → 1,131 input tokens against 18 MCP servers.)
Code Is the Interface
Because tools are Python functions, your agent does things tool-call JSON can't: batch, chain, loop, compose.
Three packs, one request. Intermediate results flow between tools as variables - the page body never touches your context window, and the summarising runs on a cheap model instead of your expensive coding agent.
Every call is explicit and reviewable - __onetool brave.search(query="...") shows you exactly what runs. No tool-selection guessing.
And the runtime is built for how agents actually type:
mem.search(q="auth")works - any unambiguous parameter prefix resolves (q=→query=)wb.draw(...)works - packs have short aliases (wb,ctx,img)github.listRepositories()works on proxied servers - snake/camel/Pascal all resolve- A typo'd tool gets a did-you-mean, a disconnected server names the command that fixes it
- Oversized results come back as a searchable handle instead of flooding the window
Install
Bootstrap (installs uv if missing, installs OneTool, initialises config, prints MCP config):
Or install manually with uv:
Then print ready-to-paste MCP client config with resolved absolute paths and add it
to your client (claude-code, claude-desktop, cursor, or vscode):
That's it. All 250+ tools work out of the box.
Verify: onetool init validate --config ~/.onetool/onetool.yaml
Install the ot-ref skill into your agent with vercel-labs/skills - it teaches the call conventions and ships a greppable index of every tool signature:
What's Inside
Tools
28 packs, 253 tools ready to use (console in beta):
📖 Complete tools reference — every signature, generated from source
MCP Server Proxy
Keep the MCP servers you already use. Wrap them in YAML and call them explicitly - as Python namespaces, without their tool tax:
Proxied servers can be enabled, disabled, and restarted mid-conversation with ot_servers - no client restart.
Secrets You Can Commit
onetool init walks you through encrypted secrets: values in secrets.yaml are age-encrypted, the private key lives in your OS keychain, and decryption happens transparently at load.
Use from the CLI
Works as an MCP server and as a direct CLI bridge into the same running process - loaded config, secrets, and proxy connections stay warm. Useful for agent harnesses, scripts, and automation:
Extending
Drop a Python file, get a pack. No registration, no config:
Documentation
- Quickstart - 30 seconds to first tool call
- Installation - All platforms
- Configuration - YAML schema
- Tools Reference - All 253 tools
- Security - The layered security model
- Extending - Build your own
- Dev Docs - Internal developer documentation
- Specifications - OpenSpec specifications index
References
- Code Execution with MCP - Anthropic Engineering
- Context Rot - Chroma Research
Telemetry
OneTool sends anonymous startup pings (event type, version, OS). No personal data. Opt out: export DO_NOT_TRACK=1 or set telemetry.enabled: false in onetool.yaml. Details
Issues
Check for existing issues first:
- Browse the tracker: github.com/beycom/onetool-mcp/issues
- Search with GitHub syntax:
is:issue repo:beycom/onetool-mcp <keyword>
Raise a new issue: github.com/beycom/onetool-mcp/issues/new
Support
If you find OneTool useful:
License
GPLv3
Source: README.md at commit 0445d6a
Tools
0Version history
1- v2.2.2LatestSep 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