model-router
Model Router — Enrutamiento Multi-LLM con Conciencia de Costos y Cadena de Reemplazo Gratis-Primero
Enruta cada tarea al mejor modelo automáticamente: proveedores gratuitos primero, proveedores de pago como respaldo.
🎯 ¿Por qué Model Router?
La mayoría del código de integración de LLM codifica un único modelo o usa un único proveedor de API. Esto significa:
❌ Costoso: cada solicitud (incluso las triviales) va a un modelo frontera de pago
❌ Frágil: una interrupción del proveedor = fallo total
❌ Inflexible: no hay forma de igualar la capacidad del modelo con la dificultad de la tarea
Model Router resuelve los tres problemas con un diseño simple y de pocas dependencias:
✅ Clasificación de Dificultad de Tareas: 5 niveles (
vision/long/complex/medium/simple) mediante heurísticas de palabras clave + longitud de contenido (costo cero, sin involucrar LLM)✅ Cadena de Reemplazo Gratis-Primero: cada nivel de ruta define una cadena de candidatos ordenada — los proveedores gratuitos (Zhipu, SiliconFlow, modelos gratuitos de OpenRouter) se intentan primero; ante cualquier fallo, el siguiente candidato (finalmente DeepSeek/Qwen/GLM/Kimi de pago) se prueba automáticamente
✅ Cero Dependencias de Terceros: la biblioteca central solo necesita
requests; el servidor MCP es stdlib puro (JSON-RPC 2.0 sobre stdio)✅ Múltiples Interfaces: API de Python · CLI · servidor MCP (cualquier cliente MCP: Claude, Qoder, Cursor…) · Demonio de vigilancia de archivos
🏗 Arquitectura
┌─────────────────────────────────────────────┐
│ router_core.py │
│ │
task_desc ──▶│ classify_task() → 5 difficulty levels │
content ──▶│ _get_candidates() → ordered provider chain│
image ──────▶│ route_and_call() → free-first, fallback │
│ │
└──────────────┬──────────────────────────────┘
│
┌────────────────┼───────────────────┐
▼ ▼ ▼
auto_router.py mcp_server.py Python API
(CLI + daemon) (MCP tools) (import router_core)Niveles de Enrutamiento
Nivel | Disparador | Modelos Típicos |
| imagen/captura de pantalla/OCR | Qwen-VL, GLM-4V |
| contenido > 2000 caracteres, documentos completos | Modelos de contexto 128K |
| análisis/código/datos/estadísticas/razonamiento | DeepSeek, Qwen3-32B |
| escritura/traducción/pulido | GLM, Qwen |
| chat diario / consultas rápidas | modelos gratuitos pequeños |
Semántica de reemplazo: los candidatos se prueban en orden; la respuesta informa tier (free/paid), attempts, fallback_used y errores por proveedor errors para total observabilidad.
🚀 Inicio Rápido
# 1. Install (only requests is required)
pip install requests
# 2. Configure
cp config.example.json config.json
# → fill in your API keys
# 3. CLI — analyze only (zero cost, no model call)
python router_core.py analyze "分析这份气象数据"
# 4. CLI — route and call
python router_core.py call "翻译以下段落" --content "Hello world" --system "你是专业翻译"
# 5. Python API
from router_core import route_and_call, analyze_task
result = analyze_task("写一份论文摘要", content_len=300)
print(result["primary"]) # first candidate
print(result["candidates"]) # full fallback chain
text = route_and_call("总结要点", "long text...")["content"]🖥 Servidor MCP (para cualquier cliente MCP)
python mcp_server.pyHerramienta | Descripción |
| Enrutamiento + llamada automática (gratis primero, reemplazo en fallo) |
| Analizar dificultad + devolver cadena de candidatos (costo cero) |
| Listar todos los proveedores, modelos y cadenas configurados |
Regístralo en tu cliente MCP (por ejemplo, Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"model-router": {
"command": "python",
"args": ["/path/to/model-router/mcp_server.py"],
"env": {"PYTHONIOENCODING": "utf-8"}
}
}
}⏱ Demonio Activado por Tarea (modo vigilancia de archivos)
# One-shot
python auto_router.py "任务描述" -c "内容" --image photo.png
# Daemon: drop task files into inbox/, results appear in outbox/
python auto_router.py --watch --dir ./tasks🔧 Configuración
Estructura de config.json (consulta config.example.json):
providers: endpoints compatibles con OpenAI con
tier(free/paid) y opcionalmenteenabled: falserouting: cadenas de
candidatesordenadas por nivel — gratis primero, pago como red de seguridadlevels: descripciones legibles por humanos por nivel
Agrega o elimina proveedores libremente: el enrutador es completamente basado en datos.
📄 Licencia
MIT — gratuita para uso personal y comercial. Consulta LICENSE.
Inspirado en la optimización de costos del mundo real: ~90% de las tareas cotidianas pueden ser atendidas por modelos de nivel gratuito, mientras que las tareas difíciles aún obtienen calidad de modelo frontera mediante reemplazo automático.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Agent Cost Allocator MCP — multi-tenant LLM cost attribution for chargeback billing. Companion to
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
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/yaowanxiang/model-router'
If you have feedback or need assistance with the MCP directory API, please join our Discord server