Skip to main content

One MCP, unlimited tools.

Reason this release was yanked:

RC

Project description

OneTool

One tool to rule them all, one tool to find them, one tool to bring them all, and in the development bind them.

PyPI License Python

v1.0.0 Pre-Release - API stable, actively tested.

OneTool is a local-first MCP server that exposes a single run tool for code execution, giving your AI assistant access to unlimited capabilities through one interface.

The Problem

Connect 5 MCP servers and you've burned 55K tokens before the conversation starts. Connect 10+ and you're at 100K tokens. Your AI gets worse as you add more tools - that's not a bug, it's how context windows work.

The Solution

98.7% fewer tokens. Same accuracy. 10x lower cost.

Instead of loading 50 separate tool schemas, you write Python directly:

__ot brave.search(query="AI trends 2026")

No JSON schema parsing. No tool selection loops. No hoping the model guesses correctly. You write explicit code to call APIs - deterministic, visible, no hidden magic.

Based on Anthropic's research, which found token usage dropped from 150,000 to 2,000 when presenting tools as code APIs.

Core Capabilities

  • 30-second setup - Install with uv or pip
  • Drop-in extensibility - Add a Python file, get a new pack
  • AST security - All code validated before execution
  • Benchmark harness - Test LLM + MCP combinations with bench

Batteries Included with 100+ Tools

See Tool Reference for the complete list of packs and tools.

Installation

uv tool install onetool-mcp

Or with pip: pip install onetool-mcp

With optional dependencies (for convert, excel, code search):

uv tool install onetool-mcp \
  --with pymupdf --with python-docx --with python-pptx \
  --with openpyxl --with Pillow --with duckdb --with openai

Add to Claude Code (~/.claude/settings.json):

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

Extending

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

# tools/mytool.py
pack = "mytool"

def search(*, query: str) -> str:
    """Search for something."""
    return f"Results for: {query}"

Why this approach

LLMs write Python instead of parsing JSON schemas. You see what's being called. 2K tokens instead of 150K. Adding your own packs is just dropping in a file.

Documentation

References

Licensing

GPLv3 - Will transition to MIT at v2.0. Contribute via PRs to help us get there.

Support

If you use or like this project, please consider buying me a coffee:

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0b1.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onetool_mcp-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 3eddff81cf0927bcf640b55da08d341d41bbde8bac6f481add41c297eff02077
MD5 6c5ff0ab8a7ec99f93262434811049ae
BLAKE2b-256 a0a1ae9af522e8e132719bec1a844e0a7e3538cf364b44e8c9212e9d9e1e420c

See more details on using hashes here.

Provenance

The following attestation bundles were made for onetool_mcp-1.0.0b1.tar.gz:

Publisher: publish.yml on beycom/onetool-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: onetool_mcp-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 314.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onetool_mcp-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 53defec6cc53d3baec3a460ccdbc6ade28a87a2a8b0debba159c4cdc3f57f74d
MD5 1ddbd9a09b98fb6f30146baa3be767d6
BLAKE2b-256 53925b1526b845b4043455e518442b504270d310bb11b58d7e592d33bee0cac0

See more details on using hashes here.

Provenance

The following attestation bundles were made for onetool_mcp-1.0.0b1-py3-none-any.whl:

Publisher: publish.yml on beycom/onetool-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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