ToolRoute

Camada de roteamento inteligente para agentes de IA — recomenda o melhor servidor MCP e LLM para qualquer tarefa, avaliado em mais de 132 execuções reais de benchmark.

Documentação

ToolRoute

Camada de roteamento para agentes de IA. Uma única chamada retorna o melhor servidor MCP e LLM para qualquer tarefa — avaliado em 132 execuções reais de benchmark.

MIT


Início rápido

Adicione a qualquer cliente MCP (Claude Code, Cursor, Windsurf, Cline):

{
  "mcpServers": {
    "toolroute": {
      "url": "https://toolroute.io/api/mcp"
    }
  }
}

Ou 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 é sempre um objeto, não uma string simples — o slug interno é o identificador canônico do modelo.


Como funciona

Cada tarefa se enquadra em uma de três abordagens:

AbordagemQuandoRetorno
direct_llmA tarefa precisa apenas de um LLM (código, escrita, análise)Melhor modelo + estimativa de custo
mcp_serverA tarefa precisa de uma ferramenta externa (busca, e-mail, calendário)Melhor ferramenta + melhor modelo
multi_toolTarefa composta ("enviar Slack E atualizar Jira E e-mail")Cadeia de orquestração ordenada

O roteamento usa um classificador LLM (~$0,00001/chamada) para entender a tarefa e, em seguida, classifica os candidatos em uma pontuação de 5 dimensões:

Value Score = 0.35 × Output Quality
            + 0.25 × Reliability
            + 0.15 × Efficiency
            + 0.15 × Cost
            + 0.10 × Trust

Cada resultado relatado atualiza as pontuações. O roteamento fica mais preciso conforme mais agentes o utilizam.


Resultados de benchmark

132 execuções cegas A/B em código, escrita, análise, saída estruturada e tradução.

ToolRouteGPT-4o fixo
Vitórias de qualidade60
Empates99
Derrotas0—
Custo médio$0,001–0,01$0,03–0,10

API

EndpointMétodoDescrição
/api/routePOSTRoteia uma tarefa para o melhor servidor MCP + LLM (unificado)
/api/route/modelPOSTRoteia apenas para o melhor modelo LLM (sem servidor MCP)
/api/mcpPOST (JSON-RPC)Servidor MCP — 16 ferramentas
/api/mcpGET (SSE)Transporte SSE para clientes MCP
/api/reportPOSTRelata o resultado do servidor MCP (leve)
/api/contributionsPOSTTelemetria avançada de habilidades MCP (requer skill_id ou skill_slug no payload)
/api/report/modelPOSTRelata o resultado do modelo LLM — use isto para telemetria de modelo, não /api/contributions
/api/verify/modelPOSTVerifica a qualidade da saída do modelo
/api/skillsGETPesquisa no catálogo de servidores MCP
/api/agents/registerPOSTRegistra a identidade do agente
/api/agents/preferencesPOSTDefine preferências de roteamento (Estratégia D Fase 2 — allow_china, regulated_industries)
/api/healthGETVerificação de saúde do serviço (DB + uptime)
/api/metricsGETMétricas públicas agregadas da plataforma (sem autenticação)

Referência completa em 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 })

Auto-hospedagem

git clone https://github.com/grossiweb/ToolRoute.git
cd ToolRoute
cp .env.local.example .env.local
npm install
npm run dev

Requer: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY


Como o roteamento funciona

O ToolRoute classifica cada tarefa usando um classificador LLM (Gemini Flash Lite, ~$0,00001/chamada) com fallback por palavras-chave. O nível resultante mapeia para um modelo específico via src/lib/routing/tiers.ts. Dados de preços e capacidades em tempo real vêm da tabela models. Veja docs/architecture.md para o panorama completo.


Stack

Next.js 14 (App Router) · Supabase (Postgres) · Vercel

Licença

MIT