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.2.tar.gz (4.9 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.2-py3-none-any.whl (371.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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.2.tar.gz
Algorithm Hash digest
SHA256 43ee1cec5ca796c4f9302b52f54f812b701a37c1f9b16505d070f15269b284f5
MD5 48feacdcbe8e6f2995d95c8d91c57576
BLAKE2b-256 2043fa0db87638d44df7baafbab26c944ac34e0be0225ff6fb6713d0f30040f7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 371.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cf9683a11e9d7a6f2e9274a615522360358f568ccd7bc2ac31ca00d98edea3e6
MD5 4df4b93098c8a64d05448e2f172f9853
BLAKE2b-256 805698ee262a4adba5ccc3f403a02efa9dfd8e8c419da8cffc63f6c5be30d67d

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