Heroku Tool Search Server
FreeNot checkedEnables dynamic tool discovery and loading for Claude using BM25, regex, and semantic search algorithms. It supports managing a catalog of over 10,000 tools wit
About
Enables dynamic tool discovery and loading for Claude using BM25, regex, and semantic search algorithms. It supports managing a catalog of over 10,000 tools with minimal context overhead and provides a REST API for tool management.
README
The Problem: When you give Claude 50+ tools, two things break:
- Context bloat - Tool definitions eat 10-20K tokens, leaving less room for actual work
- Selection accuracy - Claude gets confused and picks wrong tools when there are too many
The Solution: Instead of loading all tools upfront, Claude searches for tools and loads only what it needs.
Without Tool Search: With Tool Search:
┌─────────────────────┐ ┌─────────────────────┐
│ Load 100 tools │ │ Load 1 search tool │
│ (20K tokens) │ │ (200 tokens) │
│ │ │ │
│ Claude picks wrong │ │ Claude searches: │
│ tool 30% of time │ │ "weather" → 2 tools │
│ │ │ │
│ Context nearly full │ │ 95% context free │
└─────────────────────┘ └─────────────────────┘
How It Works
- You register your tools with this server (via REST API)
- Claude gets access to search tools (
tool_search_bm25,tool_search_semantic,tool_search_regex) - When Claude needs a tool, it searches → gets back tool names → uses them
Three search methods:
- BM25 - Keyword matching ("weather" finds
get_weather,get_forecast) - Semantic - Meaning-based ("send a message" finds
send_email) - Regex - Pattern matching (
get_.*finds all getter tools)
Deploy to Heroku
Or manually:
heroku create my-tool-search
heroku buildpacks:set heroku/python
git push heroku main
heroku ai:models:create claude-4-sonnet --as INFERENCE
Register Your Tools
curl -X POST https://your-app.herokuapp.com/tools \
-H "Content-Type: application/json" \
-d '{
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string"}},
"required": ["location"]
}
}'
Test It
export INFERENCE_KEY=$(heroku config:get INFERENCE_KEY -a my-tool-search)
export INFERENCE_URL=$(heroku config:get INFERENCE_URL -a my-tool-search)
curl -s "$INFERENCE_URL/v1/agents/heroku" \
-H "Authorization: Bearer $INFERENCE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-4-sonnet",
"messages": [{"role": "user", "content": "Find tools for checking weather"}],
"tools": [{"type": "mcp", "name": "mcp-tool-search/tool_search_semantic"}]
}'
API Reference
| Endpoint | Description |
|---|---|
POST /tools |
Register a tool |
GET /tools |
List all tools |
DELETE /tools/{name} |
Remove a tool |
GET /health |
Health check |
MCP Tools
| Tool | Use Case |
|---|---|
tool_search_bm25 |
Find tools by keywords |
tool_search_semantic |
Find tools by meaning |
tool_search_regex |
Find tools by pattern |
list_all_tools |
List all registered tools |
Installing Heroku Tool Search Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/dsouza-anush/mcp-tool-searchFAQ
Is Heroku Tool Search Server MCP free?
Yes, Heroku Tool Search Server MCP is free — one-click install via Unyly at no cost.
Does Heroku Tool Search Server need an API key?
No, Heroku Tool Search Server runs without API keys or environment variables.
Is Heroku Tool Search Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Heroku Tool Search Server in Claude Desktop, Claude Code or Cursor?
Open Heroku Tool Search Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Heroku Tool Search Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
