Skip to main content

🧿 One MCP, unlimited tools.

Reason this release was yanked:

RC

Project description

OneTool

🧿 One MCP, unlimited tools

PyPI License Python GitHub stars

Works with Claude Code · Cursor · Windsurf · 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 and project scopes, per-pack settings
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
code search, search_batch, status Semantic code 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


Contributing

Contribution guidelines


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.0rc2.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.0rc2-py3-none-any.whl (321.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0rc2.tar.gz
  • Upload date:
  • Size: 3.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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.0rc2.tar.gz
Algorithm Hash digest
SHA256 ad5638e2837f3b2d75992bd72df4af374a34a9f103d1f1d11a10fa7d5e2da926
MD5 a30513510c6d1d308691e134c60d1042
BLAKE2b-256 451d8079219bbb3c20de42b50c1f76732cc04d8b5c83ea27f21cc56c1ad1ceba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0rc2-py3-none-any.whl
  • Upload date:
  • Size: 321.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 d1e3c88ec045ca31272bfd59ebc22e99b5acf2fbc844301fcc485ae73f348515
MD5 1515fa3a6473a0ba0df0dcef493cdcd3
BLAKE2b-256 2d6c03a808c2a14f47ef03eecb85928662922b4bafb5a493f6ac5ea1cf877e9e

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