LabscoMCP early access ↗
beycomMCP SERVER

OneTool MCP

One server your agent calls as Python code — search, files, databases, diagrams, memory, plus a proxy for the MCP servers you already run.

by beycom ↗MCP Plumbing: Proxies, Registries & InspectorsCommunity

LABSCO SUMMARY

Unlimited tools without the per-server tool definitions.

Because the tools are functions, the agent can batch, chain and loop them in one request — fetch a page, summarise it on a cheaper model, and write the result to memory — and the intermediate values stay inside the runtime instead of passing through the conversation.

What it is

A single MCP server that exposes its tools as a Python API rather than as individual tool definitions. The agent writes a snippet — __onetool brave.search(query="…") — and the runtime executes it, so intermediate results flow between calls as variables instead of through the conversation.

What you get

  • Search and docs — brave for web, news, image, video and batch search; ground for Google-grounded results with sources; tavily for research and extraction; webfetch for page content with extraction controls
  • Files and data — file operations with path boundaries, excel with 24 tools, db for SQL databases, arch for architecture models exported as editable SVG
  • Context economy — ot_context (aliased ctx) stores large outputs as searchable handles with grep, slice and toc, so a page body never enters your context window; ot_image (img) runs vision on a dedicated cheap model; ot_llm delegates transforms to another model
  • Persistent state — mem with semantic and keyword search plus history and rollback, knowledge bases, localhist for Git-backed project snapshots
  • Visual — diagram renders Mermaid, PlantUML and D2 through Kroki, plus a live whiteboard with a Mermaid-compatible DSL
  • Runtime — ot_servers enables, disables and restarts proxied MCP servers mid-conversation with no client restart; ot_secrets handles encrypted secrets; ot_forge scaffolds new tool packs; ot_timer for named timers
  • Forgiving call conventions: any unambiguous parameter prefix resolves (q= becomes query=), packs have short aliases, snake, camel and Pascal names all resolve on proxied servers, and a typo gets a did-you-mean

Requirements

Python 3.12+. The bootstrap script installs uv if it is missing and prints the client config; manually it is uv tool install 'onetool-mcp[all]' then onetool init --config ~/.onetool, then onetool init mcp-config --client claude-code to print a ready-to-paste entry. Check the result with onetool init validate --config ~/.onetool/onetool.yaml. Security is allowlist-based and everything is blocked by default: the bundled security.yaml is not loaded automatically and must be listed under include:, which onetool init does for you but a hand-written config will not. API keys for the search packs and credentials for any proxied server live in secrets.yaml, passed with --secrets.

Setup effort

Follow the published steps — uv tool install 'onetool-mcp[all]'