model-router
Model Router — Многомодельная маршрутизация с учётом стоимости и цепочкой отката с бесплатными моделями в приоритете
Автоматически направляйте каждую задачу к лучшей модели — сначала бесплатные провайдеры, платные как запасной вариант.
🎯 Зачем нужен Model Router?
Большинство кода интеграции LLM жёстко задаёт одну модель или использует одного API-провайдера. Это означает:
❌ Дорого: каждый запрос (даже тривиальный) идёт к платной передовой модели
❌ Ненадёжно: сбой одного провайдера = полный отказ
❌ Негибко: нет возможности сопоставить возможности модели со сложностью задачи
Model Router решает все три проблемы с помощью простого дизайна с минимальными зависимостями:
✅ Классификация сложности задач: 5 уровней (
vision/long/complex/medium/simple) через эвристики по ключевым словам и длине контента (бесплатно, без участия LLM)✅ Цепочка отката с бесплатными в приоритете: каждый уровень маршрута определяет упорядоченную цепочку кандидатов — сначала пробуются бесплатные провайдеры (Zhipu, SiliconFlow, OpenRouter free models); при любом сбое автоматически пробуется следующий кандидат (в конечном итоге платные DeepSeek/Qwen/GLM/Kimi)
✅ Нулевые сторонние зависимости: основной библиотеке нужен только
requests; MCP-сервер использует чистую stdlib (JSON-RPC 2.0 через stdio)✅ Несколько интерфейсов: Python API · CLI · MCP-сервер (любой MCP-клиент: Claude, Qoder, Cursor…) · Демон отслеживания файлов
🏗 Архитектура
┌─────────────────────────────────────────────┐
│ 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)Уровни маршрутизации
Уровень | Триггер | Типичные модели |
| изображение/скриншот/OCR | Qwen-VL, GLM-4V |
| содержимое > 2000 символов, полные документы | 128K-context models |
| анализ/код/данные/статистика/рассуждения | DeepSeek, Qwen3-32B |
| написание/перевод/шлифовка | GLM, Qwen |
| ежедневный чат / быстрые запросы | маленькие бесплатные модели |
Семантика отката: кандидаты пробуются по порядку; ответ сообщает tier (free/paid), attempts, fallback_used и ошибки по провайдерам errors для полной наблюдаемости.
🚀 Быстрый старт
# 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"]🖥 MCP-сервер (для любого MCP-клиента)
python mcp_server.pyИнструмент | Описание |
| Автоматическая маршрутизация + вызов (сначала бесплатные, откат при сбое) |
| Анализ сложности + возврат цепочки кандидатов (бесплатно) |
| Список всех настроенных провайдеров, моделей и цепочек |
Зарегистрируйте в вашем MCP-клиенте (например, Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"model-router": {
"command": "python",
"args": ["/path/to/model-router/mcp_server.py"],
"env": {"PYTHONIOENCODING": "utf-8"}
}
}
}⏱ Демон, запускаемый по задаче (режим отслеживания файлов)
# 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🔧 Конфигурация
Структура config.json (см. config.example.json):
providers: конечные точки, совместимые с OpenAI, с
tier(free/paid) и опциональнымenabled: falserouting: упорядоченные цепочки
candidatesдля каждого уровня — сначала бесплатные, платные как страховкаlevels: человекочитаемые описания для каждого уровня
Добавляйте или удаляйте провайдеров свободно — маршрутизатор полностью управляется данными.
📄 Лицензия
MIT — бесплатно для личного и коммерческого использования. См. LICENSE.
Вдохновлено реальной оптимизацией затрат: ~90% повседневных задач могут быть обслужены моделями бесплатного уровня, в то время как сложные задачи получают качество передовых моделей через автоматический откат.
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