ToolRoute
ToolRoute
Routing layer for AI agents. One call returns the best MCP server and LLM for any task — scored on 132 real benchmark executions.
Quick start
Add to any MCP client (Claude Code, Cursor, Windsurf, Cline):
{
"mcpServers": {
"toolroute": {
"url": "https://toolroute.io/api/mcp"
}
}
}Or via HTTP:
curl -X POST https://toolroute.io/api/route \
-H "Content-Type: application/json" \
-d '{"task": "search the web for recent AI papers"}'{
"approach": "mcp_server",
"recommended_skill": "exa-mcp-server",
"recommended_skill_name": "Exa MCP Server",
"recommended_model": {
"slug": "claude-haiku-4-5-20251001",
"display_name": "Claude Haiku 4.5",
"provider": "anthropic",
"tier": "cheap_chat",
"provider_model_id": "anthropic/claude-haiku-4-5-20251001",
"input_cost_per_mtok": 1.00,
"output_cost_per_mtok": 5.00
},
"confidence": 0.91,
"alternatives": ["brave-search-mcp", "tavily-mcp"],
"fallback": "brave-search-mcp"
}
recommended_modelis always an object, not a bare string — the innerslugis the canonical model identifier.
How it works
Every task falls into one of three approaches:
Approach | When | Returns |
| Task needs only an LLM (code, writing, analysis) | Best model + cost estimate |
| Task needs an external tool (search, email, calendar) | Best tool + best model |
| Compound task ("send Slack AND update Jira AND email") | Ordered orchestration chain |
Routing uses an LLM classifier (~$0.00001/call) for task understanding, then ranks candidates on a 5-dimension score:
Value Score = 0.35 × Output Quality
+ 0.25 × Reliability
+ 0.15 × Efficiency
+ 0.15 × Cost
+ 0.10 × TrustEvery reported outcome updates the scores. The routing gets more accurate as more agents use it.
Benchmark results
132 blind A/B executions across code, writing, analysis, structured output, and translation.
ToolRoute | Fixed GPT-4o | |
Quality wins | 6 | 0 |
Ties | 9 | 9 |
Losses | 0 | — |
Avg cost | $0.001–0.01 | $0.03–0.10 |
API
Endpoint | Method | Description |
| POST | Route a task to best MCP server + LLM (unified) |
| POST | Route to best LLM model only (no MCP server) |
| POST (JSON-RPC) | MCP server — 16 tools |
| GET (SSE) | SSE transport for MCP clients |
| POST | Report MCP server outcome (lightweight) |
| POST | Advanced MCP skill telemetry (requires |
| POST | Report LLM model outcome — use this for model telemetry, not |
| POST | Verify model output quality |
| GET | Search MCP server catalog |
| POST | Register agent identity |
| POST | Set routing preferences (Strategy D Phase 2 — |
| GET | Service health check (DB + uptime) |
| GET | Public aggregate platform metrics (no auth) |
Full reference at toolroute.io/api-docs
SDK
npm install @toolroute/sdkimport { ToolRoute } from '@toolroute/sdk'
const tr = new ToolRoute()
const rec = await tr.route({ task: 'parse this CSV and summarize it' })
// execute with rec.recommended_model ...
await tr.report({ skill: rec.recommended_skill, outcome: 'success', latency_ms: 1400 })Self-hosting
git clone https://github.com/grossiweb/ToolRoute.git
cd ToolRoute
cp .env.local.example .env.local
npm install
npm run devRequires: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY
How routing works
ToolRoute classifies each task using an LLM classifier (Gemini Flash Lite,
~$0.00001/call) with a keyword fallback. The resulting tier maps to a specific
model via src/lib/routing/tiers.ts. Live pricing and capability data come
from the models table. See docs/architecture.md
for the full picture.
Stack
Next.js 14 (App Router) · Supabase (Postgres) · Vercel
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/grossiweb/ToolRoute'
If you have feedback or need assistance with the MCP directory API, please join our Discord server