OneTool MCP

🧿 One MCP for developers - No tool tax, no context rot. 100+ tools including Brave, Gemini, Context7, Version Checker, Excel, File Ops, Database, Chrome DevTools.


The Problem

Each MCP server consumes 3K-30K tokens per request. Connect 5 servers and you've burned 55K tokens before the conversation starts. Connect 10+ and you're at 100K tokens.

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:

__ot brave.search(query="react docs 2026")

Configure one MCP server. Use unlimited tools.

"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%"

— Anthropic Engineering

96% fewer tokens. 24× lower cost. No context rot.

📖 Read the full story


See It In Action

DemoDescription
Compare the SearchSide-by-side token comparison
Build a Wikipedia ToolCreate a custom tool in seconds

Install

Requires uv:

uv tool install onetool-mcp
onetool init

Add to Claude Code:

claude mcp add onetool onetool

Or manually add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "onetool": {
      "command": "onetool"
    }
  }
}

That's it. All 100+ tools work out of the box.

Verify: onetool init validate

📖 Full installation guide


Features

FeatureDescription
96% Token Savings~2K tokens no matter how many tools you add
100+ Built-in ToolsWeb search, databases, file ops, diagrams, conversions
Explicit ExecutionSee exactly what runs - __ot brave.search(q="AI")
MCP Server ProxyWrap existing MCP servers without the tool tax
Scaffold ToolsBuild new tools as part of the conversation
Smart ToolsDelegate to cheaper LLMs (10× savings)
Single YAML ConfigGlobal configuration, per-pack settings, includes
Security LayersAST validation, path boundaries, output sanitisation

Tools

15 packs, 100+ tools ready to use:

PackToolsDescription
bravesearch, newsWeb and news search
context7resolve, get_docsLibrary documentation
convertpdf_to_md, docx_to_md, pptx_to_mdDocument conversion
dbquery, schema, tablesDatabase operations
diagramcreateMermaid diagrams
excelread, write, queryExcel files
fileread, write, list, searchFile operations
groundsearchGoogle Grounding
llmtransform, transform_fileLLM-powered transforms
othelp, tools, statsIntrospection
packagenpm, pypi, cargoPackage versions
ripgrepsearch, countFast code search
scaffoldtoolGenerate new tools
webfetch, fetch_batchWeb fetching

📖 Complete tools reference — full summary table with all 100+ tools


MCP Server Proxy

Wrap any existing MCP server and call it explicitly - without the tool tax:

# .onetool/onetool.yaml
mcp_servers:
  chrome-devtools:
    command: npx
    args: ["-y", "@anthropic-ai/chrome-devtools-mcp@latest"]
  github:
    command: npx
    args: ["-y", "@anthropic-ai/github-mcp-server@latest"]
__ot mcp.call(server="github", tool="get_file_contents", arguments={"path": "README.md"})

📖 Configuration guide


Extending

Drop a Python file, get a pack. No registration, no config:

# .onetool/tools/wiki.py
pack = "wiki"

def summary(*, title: str) -> str:
    """Get Wikipedia article summary."""
    import httpx
    url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{title}"
    return httpx.get(url).json().get("extract", "Not found")
__ot wiki.summary(title="Python_(programming_language)")

📖 Creating tools guide


Documentation


References


License

GPLv3 - Will transition to MIT at v2.0.


Support

If you find OneTool useful:

Ko-fi

Related Servers