ToolRoute
Capa de enrutamiento inteligente para agentes de IA: recomienda el mejor servidor MCP y LLM para cualquier tarea, evaluado en más de 132 ejecuciones de referencia reales.
Documentación
ToolRoute
Capa de enrutamiento para agentes de IA. Una sola llamada devuelve el mejor servidor MCP y LLM para cualquier tarea, evaluados en 132 ejecuciones de referencia reales.
Inicio rápido
Añádelo a cualquier cliente MCP (Claude Code, Cursor, Windsurf, Cline):
{
"mcpServers": {
"toolroute": {
"url": "https://toolroute.io/api/mcp"
}
}
}
O mediante 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_modeles siempre un objeto, no una cadena simple — elsluginterno es el identificador canónico del modelo.
Cómo funciona
Cada tarea se clasifica en uno de tres enfoques:
| Enfoque | Cuándo | Devuelve |
|---|---|---|
direct_llm | La tarea solo necesita un LLM (código, escritura, análisis) | Mejor modelo + estimación de coste |
mcp_server | La tarea necesita una herramienta externa (búsqueda, correo, calendario) | Mejor herramienta + mejor modelo |
multi_tool | Tarea compuesta ("enviar Slack Y actualizar Jira Y correo") | Cadena de orquestación ordenada |
El enrutamiento utiliza un clasificador LLM (~$0.00001/llamada) para comprender la tarea y luego clasifica los candidatos según una puntuación de 5 dimensiones:
Value Score = 0.35 × Output Quality
+ 0.25 × Reliability
+ 0.15 × Efficiency
+ 0.15 × Cost
+ 0.10 × Trust
Cada resultado notificado actualiza las puntuaciones. El enrutamiento se vuelve más preciso a medida que más agentes lo utilizan.
Resultados de referencia
132 ejecuciones A/B ciegas en código, escritura, análisis, salida estructurada y traducción.
| ToolRoute | GPT-4o fijo | |
|---|---|---|
| Victorias en calidad | 6 | 0 |
| Empates | 9 | 9 |
| Derrotas | 0 | — |
| Coste medio | $0.001–0.01 | $0.03–0.10 |
API
| Endpoint | Método | Descripción |
|---|---|---|
/api/route | POST | Enruta una tarea al mejor servidor MCP + LLM (unificado) |
/api/route/model | POST | Enruta solo al mejor modelo LLM (sin servidor MCP) |
/api/mcp | POST (JSON-RPC) | Servidor MCP — 16 herramientas |
/api/mcp | GET (SSE) | Transporte SSE para clientes MCP |
/api/report | POST | Notifica el resultado del servidor MCP (ligero) |
/api/contributions | POST | Telemetría avanzada de habilidades MCP (requiere skill_id o skill_slug en el payload) |
/api/report/model | POST | Notifica el resultado del modelo LLM — usa esto para telemetría de modelos, no /api/contributions |
/api/verify/model | POST | Verifica la calidad de la salida del modelo |
/api/skills | GET | Busca en el catálogo de servidores MCP |
/api/agents/register | POST | Registra la identidad del agente |
/api/agents/preferences | POST | Establece preferencias de enrutamiento (Estrategia D Fase 2 — allow_china, regulated_industries) |
/api/health | GET | Verificación de salud del servicio (BD + tiempo de actividad) |
/api/metrics | GET | Métricas públicas agregadas de la plataforma (sin autenticación) |
Referencia completa en 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 })
Autoalojamiento
git clone https://github.com/grossiweb/ToolRoute.git
cd ToolRoute
cp .env.local.example .env.local
npm install
npm run dev
Requiere: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY
Cómo funciona el enrutamiento
ToolRoute clasifica cada tarea usando un clasificador LLM (Gemini Flash Lite,
~$0.00001/llamada) con un respaldo por palabras clave. El nivel resultante se asigna a un
modelo específico mediante src/lib/routing/tiers.ts. Los datos de precios y capacidades en tiempo real provienen
de la tabla models. Consulta docs/architecture.md
para obtener la visión completa.
Stack
Next.js 14 (App Router) · Supabase (Postgres) · Vercel
Licencia
MIT