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.0.tar.gz (3.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.0-py3-none-any.whl (344.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 3.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.0.tar.gz
Algorithm Hash digest
SHA256 bbf2a7f3e1d11cfe30502bcb80b63e7e95807353624812cfa2cd564ca8ffa347
MD5 c54fcc07f49353225428130963c3d94f
BLAKE2b-256 2e08eacc7daa8fbe77fb39b12c3634db0e1bd211aece922b7045f5011234eacf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 344.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff9ea738bbd9ea6e3e04492055aa510b5a42b3135c0e1ac29a554b40d711364a
MD5 0943572a8380f71ff7dba8f189a53b07
BLAKE2b-256 99bbf0bc374e366933d80f0fc59be9edf6442bd24a83be76fdd624098f5e382b

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