Skip to main content

ToolSearch: Semantic Discovery Middleware for MCP 🦞

Stop Bloating Your Agent's Context. Start Scaling Your Toolsets.

ToolSearch is an open-source, local-first middleware for the Model Context Protocol (MCP). It solves the "Too Many Tools" problem by semantically filtering your tool registry, prompts, and skills on-the-fly, ensuring your LLM stays focused, accurate, and cost-efficient.


🚀 Part 1: Quick Start

What is it?

If you have 30+ MCP tools, your agent's context window is saturated with JSON definitions before it even starts thinking. This leads to hallucinations, high token costs, and declining accuracy. ToolSearch sits as a proxy between your client (Claude Code, Cursor) and your servers, serving only the tools relevant to your current task.

Installation

# Clone the repository
gh repo clone codeninja/tool-search
cd tool-search

# Install dependencies and initialize
uv sync
uv run tool-search init

1. Configure Your Sources

Add your MCP servers or OpenAPI specs to ~/.toolsearch/config.toml:

[servers.github]
type = "mcp"
command = "npx"
args = ["@modelcontextprotocol/server-github"]

[servers.weather-api]
type = "openapi"
url = "https://api.weather.gov/openapi.json"

2. Build the Semantic Index

ToolSearch embeds your tool descriptions locally using all-MiniLM-L6-v2.

uv run tool-search index

3. Connect Your Agent

Point your client to the ToolSearch Proxy. For Claude Desktop:

"mcpServers": {
  "toolsearch": {
    "command": "uv",
    "args": ["--directory", "/path/to/tool-search", "run", "tool-search", "proxy"]
  }
}

4. Use It

Simply tell your agent what you're doing. The agent will call toolsearch_context("debugging kubernetes logs"), and ToolSearch will instantly activate the relevant tools in the agent's registry.


🧠 Part 2: Technical Architecture

ToolSearch operates as a Statistical Filtering Proxy. It doesn't just forward requests; it transforms the environment based on intent.

How it Works:

  1. Ingestion: The Collector harvests tools from native MCP servers, "forges" new tools from OpenAPI/Swagger docs, and indexes local Agent Skills (SKILL.md).
  2. Semantic Index: A local SQLite + hnswlib vector store maintains embeddings for every tool, prompt, and skill.
  3. The Discovery Loop:
    • The Agent sets a context via toolsearch_context.
    • ToolSearch intercepts the next tools/list or prompts/list request.
    • It performs a sub-millisecond k-NN search and returns only the top-k matches.
    • tools/call requests are transparently routed back to the correct upstream server.

Deep Dive: For a full breakdown of the layered architecture, domain models, and state machines, see our Full Technical Specification.


🤝 Part 3: Contributing

We are building the "Garbage Collector for the Context Window," and we want your help!

How to Contribute

  • Create a Bridge: Have a niche API? Add an example to /examples showing how to bridge it.
  • Improve the Forge: Help us refine the OpenAPI-to-MCP transformation logic.
  • New Backends: We want to support more vector stores (Chroma, pgvector) and remote embedding providers.
  • Feedback: Open an issue if you find a tool-selection hallucination we can't solve.

Development Workflow

  1. Fork the repo.
  2. Create a feature branch: feat/issue-number-description.
  3. Run the E2E suite: uv run pytest tests/test_e2e.py.
  4. Submit a PR!

Community

Join Dallas and the team in the OpenClaw Discord to discuss the future of agentic infrastructure.


Built by codeninja and the OpenClaw Agentic Dev Team.

Metadata

Release files for openclaw-toolsearch 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openclaw-toolsearch 0.1.0
File Size Uploaded Provenance
openclaw_toolsearch-0.1.0.tar.gz 13.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for openclaw-toolsearch 0.1.0
File Interpreter ABI Platform
openclaw_toolsearch-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.2 kB

Release files / openclaw_toolsearch-0.1.0.tar.gz

Download URL openclaw_toolsearch-0.1.0.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cad863e8c8d1c788575cbeea7dfd836211d97f7dfc06d0c707b88537ac877987
BLAKE2b-256 checksum
How to use checksums
6ccf6cf37a31d6584674939c3aa23bd17e057cd36198533c084bbe4f6baacd1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / openclaw_toolsearch-0.1.0-py3-none-any.whl

Download URL openclaw_toolsearch-0.1.0-py3-none-any.whl
Size 20.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87173f3436017d103e5377ad9ee7dbe0cebd92013dd7ba1655878a9f234b0c43
BLAKE2b-256 checksum
How to use checksums
c6b951c1af0927e5928e88ee5f512ec113fe05582d2fc0f1d808fb14103de51f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for openclaw-toolsearch 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page