Skip to main content
Glama

ToolRoute

Routing layer for AI agents. One call returns the best MCP server and LLM for any task — scored on 132 real benchmark executions.

MIT


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_model is always an object, not a bare string — the inner slug is the canonical model identifier.


Related MCP server: Playwright MCP Server

How it works

Every task falls into one of three approaches:

Approach

When

Returns

direct_llm

Task needs only an LLM (code, writing, analysis)

Best model + cost estimate

mcp_server

Task needs an external tool (search, email, calendar)

Best tool + best model

multi_tool

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 × Trust

Every 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

/api/route

POST

Route a task to best MCP server + LLM (unified)

/api/route/model

POST

Route to best LLM model only (no MCP server)

/api/mcp

POST (JSON-RPC)

MCP server — 16 tools

/api/mcp

GET (SSE)

SSE transport for MCP clients

/api/report

POST

Report MCP server outcome (lightweight)

/api/contributions

POST

Advanced MCP skill telemetry (requires skill_id or skill_slug in payload)

/api/report/model

POST

Report LLM model outcome — use this for model telemetry, not /api/contributions

/api/verify/model

POST

Verify model output quality

/api/skills

GET

Search MCP server catalog

/api/agents/register

POST

Register agent identity

/api/agents/preferences

POST

Set routing preferences (Strategy D Phase 2 — allow_china, regulated_industries)

/api/health

GET

Service health check (DB + uptime)

/api/metrics

GET

Public aggregate platform metrics (no auth)

Full reference at toolroute.io/api-docs


SDK

npm install @toolroute/sdk
import { 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 dev

Requires: 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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

Latest Blog Posts

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