Skip to main content

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

Project description

OneTool

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

PyPI License Python GitHub stars

Works with Claude Code or any MCP client


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

Demo Description
Compare the Search Side-by-side token comparison
Build a Wikipedia Tool Create 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

Feature Description
96% Token Savings ~2K tokens no matter how many tools you add
100+ Built-in Tools Web search, databases, file ops, diagrams, conversions
Explicit Execution See exactly what runs - __ot brave.search(q="AI")
MCP Server Proxy Wrap existing MCP servers without the tool tax
Scaffold Tools Build new tools as part of the conversation
Smart Tools Delegate to cheaper LLMs (10× savings)
Single YAML Config Global configuration, per-pack settings, includes
Security Layers AST validation, path boundaries, output sanitisation

Tools

15 packs, 100+ tools ready to use:

Pack Tools Description
brave search, news Web and news search
context7 resolve, get_docs Library documentation
convert pdf_to_md, docx_to_md, pptx_to_md Document conversion
db query, schema, tables Database operations
diagram create Mermaid diagrams
excel read, write, query Excel files
file read, write, list, search File operations
ground search Google Grounding
llm transform, transform_file LLM-powered transforms
ot help, tools, stats Introspection
package npm, pypi, cargo Package versions
ripgrep search, count Fast code search
scaffold tool Generate new tools
web fetch, fetch_batch Web 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onetool_mcp-1.0.1.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onetool_mcp-1.0.1-py3-none-any.whl (350.8 kB view details)

Uploaded Python 3

File details

Details for the file onetool_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: onetool_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for onetool_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 745c9f8c2609f48db7fc9819e45dc6bea06ca46f29a145410095e9745fedc985
MD5 0ba70c3aca0c72549240009daf2ee2dc
BLAKE2b-256 c04cb6a208a3407feef1f83d1cb7188f9b7dfc1ca595168341313e5d38a96c83

See more details on using hashes here.

File details

Details for the file onetool_mcp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: onetool_mcp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 350.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for onetool_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6a62aebe8f6ab5f4b35c5ae40bab842da630827a976c10fd4f625a5dd564c58
MD5 0b851a183a1b1566c60099ae59543b30
BLAKE2b-256 8afef08a99db62ca689f67f13ba58b4e4cd0c934da30435b54d542f3254f931b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page