ypollak2/llm-router
This server is an intelligent LLM routing system that classifies prompts and directs them to the cheapest capable model, saving 35–80% on AI costs while maintaining quality. Key capabilities include:
Smart Routing & Classification
llm_route,llm_auto,llm_stream,llm_classify— classify prompt complexity and route to optimal LLMs (budget/balanced/premium tiers) with budget-pressure awarenessllm_reroute,llm_approve_route— override or approve pending high-cost routing decisionsllm_select_agent— pick the best CLI agent (Claude Code, Codex, Gemini CLI) for session-level routing
Task-Specific LLM Tools
llm_query,llm_code,llm_analyze,llm_generate,llm_research,llm_edit— route prompts tailored to general queries, coding, analysis, creative generation, web-grounded research, or code editing
Media Generation
llm_image,llm_video,llm_audio— generate images (DALL-E, Flux, Stable Diffusion), video (Runway, Kling, Veo), or speech (ElevenLabs, OpenAI TTS)
Multi-Step Orchestration
llm_orchestrate,llm_pipeline_templates— decompose complex tasks into multi-LLM pipelines (research reports, competitive analysis, etc.)
Cost, Budget & Usage Monitoring
llm_usage,llm_savings,llm_gain,llm_session_spend,llm_budget,llm_quota_status— real-time cost tracking, savings dashboards, quota balances, and anomaly warnings across Claude, Codex, Gemini, and external APIsllm_check_usage,llm_update_usage,llm_refresh_claude_usage— manage Claude subscription usage
Quality & Performance Analytics
llm_quality_report,llm_quality_guard,llm_benchmark,llm_model_eval,llm_model_usage,llm_model_export— routing accuracy metrics, model quality scores, degradation alerts, and exportable tracking datallm_rate— rate routing decisions to improve future routing
Health, Providers & Configuration
llm_health,llm_hook_health,llm_providers,llm_setup— check provider/hook health and configure API keys (Ollama, OpenAI, Anthropic, Google, DeepSeek, Mistral, Groq, Perplexity, and more)llm_set_profile,llm_policy— switch routing profiles and view active policies
Filesystem Operations
llm_fs_find,llm_fs_rename,llm_fs_edit_many,llm_fs_analyze_context— use cheap models to find files, generate rename commands, perform bulk edits, and analyze workspace context
Team & Collaboration
llm_team_report,llm_team_push,llm_digest,llm_dashboard— team savings reports, Slack/Discord/Telegram webhooks, spend spike detection, and a local web dashboardllm_share_profile,llm_import_profile— share or import learned routing profiles with the community
Session & Cache Management
llm_save_session— summarize and persist session context for cross-session awarenessllm_cache_stats,llm_cache_clear— manage the prompt classification cache
Agoragentic Marketplace
agoragentic_task,agoragentic_browse,agoragentic_wallet,agoragentic_status— execute tasks, browse services, and manage USDC wallet on the Agoragentic capability marketplace
Integration for audio generation and text-to-speech capabilities.
Provides access to Gemini 2.5 Pro and 2.5 Flash models with a free tier (1M tokens/day), optimized for generation tasks and long-context processing.
Enables routing to locally-hosted models for zero-cost, privacy-preserving, offline inference as the first tier in fallback chains.
Provides access to GPT-4o, GPT-4o-mini, and o3 models for code generation, analysis, and reasoning tasks.
Integration for research and current events using Sonar and Sonar Pro search-augmented models to get factual, up-to-date information.
pip install llm-routing # PyPI name is llm-routing; the CLI command is llm-routerWhy People Install This
AI coding tools send too many prompts to premium models by default.
That means:
You waste paid tokens on simple questions
You burn through Claude, Gemini, or OpenAI quota faster than necessary
You stop working when one provider is rate-limited or down
llm-router sits between your coding tool and your model providers. It classifies each prompt, tries the cheapest capable model first, and falls back automatically when needed.
You keep the same workflow. The router changes the model choice underneath.
Related MCP server: MCP AI Router
Ranked #8 on RouterArena
llm-router was independently benchmarked and ranked #8 on RouterArena — a community leaderboard that evaluates model routers on routing accuracy, latency, cost efficiency, and fallback reliability.
Quick Start
1. Install
pip install llm-routing
llm-router installPackage name:
llm-routingon PyPI. CLI command:llm-router.
2. Add providers (optional)
export OPENAI_API_KEY="sk-..." # GPT-4o, o3
export GEMINI_API_KEY="AIza..." # Gemini Flash/Pro (free tier available)
export OLLAMA_BASE_URL="http://localhost:11434" # Local models (free)
export OPENROUTER_API_KEY="sk-or-v1-…" # 343 OpenRouter models (qwen, deepseek, grok, …)Works with zero API keys on Claude Code Pro/Max subscriptions — routing uses MCP tools that call external models only when beneficial. Add OPENROUTER_API_KEY to unlock the open-weight workhorse pool used by the cost_aggressive policy.
3. Verify
llm-router health # Check provider connectivityIf you already use Claude Code, Codex, or Gemini CLI, keep your existing workflow and let llm-router choose models underneath it.
Example Routing
Prompt | Routed to |
"What does this Python error mean?" | Ollama / Gemini Flash / Codex |
"Refactor this endpoint" | GPT-4o / Gemini Pro |
"Design a distributed tracing strategy" | o3 / Claude Opus |
The exact chain depends on your configured providers, budget profile, and routing policy.
Works With
Tool | Mode | Savings (this host) |
Claude Code | Full auto-routing via hooks | 60–80% |
Codex CLI | Full auto-routing via hooks | 60–80% |
Gemini CLI | Full auto-routing via hooks | 50–70% |
VS Code / Cursor | Manual MCP tools | 30–50% |
Any MCP client | Manual MCP tools | Varies |
Full auto-routing means hooks intercept prompts and route automatically with no workflow change.
Manual MCP tools means routing is available on demand through tools such as
llm_query.
llm-router install # Claude Code (default)
llm-router install --host codex # Codex CLI
llm-router install --host gemini-cli # Gemini CLI
llm-router install --host vscode # VS Code
llm-router install --host cursor # CursorSee guide/HOST_SUPPORT_MATRIX.md for full details on each host.
Protect your Claude Code 5-hour quota
enforce: smart + mode: zero_claude makes prompts either complete externally or stop
before native Claude runs — see
guide/GETTING_STARTED.md.
How It Works
User prompt
│
▼
┌──────────────────────┐
│ Complexity Classifier │ ← Heuristic (free, instant) or Ollama/Flash ($0.0001)
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Free-First Router │ ← Tries cheapest model first, walks up the chain
│ │
│ Ollama (free) │
│ → Codex (prepaid) │
│ → Gemini Flash │
│ → GPT-4o / Claude │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Guards (parallel) │ ← Circuit breaker, budget pressure, quality check
└──────────┬───────────┘
│
▼
Response + cost logged to local SQLiteClassification is free for many tasks (regex heuristics catch ~70%) or near-free for ambiguous prompts when using local Ollama or Gemini Flash.
Features
Beyond "send cheap prompts to cheap models":
Secrets never leave your machine. A prompt containing an API key, token or private key routes to local models only — fail-closed, so it cannot reach an external provider.
Cost-inverted subscription routing. Free/local first for simple and moderate prompts, your one paid seat first for complex ones, and the seat demoted when its quota is strained. Opt in with
LLM_ROUTER_SUBSCRIPTION_PROVIDER.Automatic fallback with circuit breakers. A provider that fails or rate-limits is skipped, not retried into the ground.
You can see it working. A status line, terminal title and OS notification show the last model routed, savings and health — for hosts with no native statusline.
Session-end summary. Savings vs baseline, tier mix, per-provider cost, latency p50/p95/p99 and top routes.
Media and pipelines too.
llm_image/llm_video/llm_audio, andllm_orchestratefor multi-step research.
CLI
llm-router install # wire up your host (Claude Code by default)
llm-router health # provider connectivity
llm-router status # savings + quota at a glance
llm-router doctor # diagnose a broken setupFull command reference: guide/GETTING_STARTED.md
Providers
20+ providers, free-first. Ollama (local, free) leads the chain; OpenRouter (343 models behind one key) is the biggest single unlock; Gemini and Groq have usable free tiers. Anthropic works via your existing Claude subscription — no API key needed.
Every provider, its models, cost tier and env var: guide/PROVIDERS.md
Routing Policies
A policy sets how eagerly the router routes away from your premium model —
conservative (10–15% savings) through balanced (the default, 35–45%) to
cost_aggressive (70–85%, needs OPENROUTER_API_KEY).
llm-router policy set cost_aggressiveAll six policies, thresholds and the YAML schema: guide/POLICIES.md
MCP Tools
60 tools across routing, analysis, code, media, budget and diagnostics — exposed to any
MCP host. The default consolidated surface shows 11 front-door tools; set
LLM_ROUTER_SLIM=full for all 60.
Every tool with its signature: guide/TOOLS.md
Savings: How It Works
Savings are calculated by comparing actual spend against a baseline of routing every task to Claude Sonnet/Opus.
Methodology:
Each routed task logs: model used, tokens consumed, estimated cost
A baseline cost is computed as if the same tokens were processed by the most expensive model in the chain
Savings =
(baseline - actual) / baseline
Assumptions and limitations:
Baseline assumes you would have used Opus/Sonnet for everything (worst case)
Token estimates use
len(text) / 4approximation, not exact tokenizer countsCost data comes from LiteLLM's pricing tables (may lag provider price changes)
Savings vary significantly by workload — code-heavy sessions route more to cheap models
The router itself adds small overhead (classification costs ~$0.0001 per ambiguous task)
Observed range: 35–80% savings depending on policy and task mix. The "87%" figure in some docs represents a single-user peak over a specific development period, not a guaranteed outcome.
Trust, Privacy, and Local-First Design
llm-router runs entirely on your machine. There is no hosted proxy, no telemetry, no account required.
What | Where | Details |
Your prompts | Sent to configured providers | Exactly like using those providers directly |
API keys |
| Local files, never transmitted |
Usage logs |
| Unencrypted SQLite (filesystem permissions) |
Classification cache | In-memory | Cleared on process restart |
Hook scripts |
| Local shell scripts, inspectable |
What we do:
Scrub API keys from structured logs
Detect hook deadlocks before installation
Store all data locally in
~/.llm-router/Respect provider rate limits and TOS
What you should know:
Prompts are sent to whichever provider the router selects — review your provider's privacy policy
Usage logs (SQLite) are not encrypted at rest — use full-disk encryption if needed
The router cannot prevent model jailbreaks or prompt injection at the provider level
See SECURITY.md for responsible disclosure policy.
Configuration
Everything is environment variables — no config file required to start:
export OPENROUTER_API_KEY="sk-or-v1-..." # biggest single unlock
export OLLAMA_BASE_URL="http://localhost:11434" # local, free
export LLM_ROUTER_POLICY="cost_aggressive" # routing policy
export LLM_ROUTER_ENFORCE="smart" # off | advise | smart | hardFull reference, config file schema and per-host overrides: guide/GETTING_STARTED.md
Documentation
Full index: guide/README.md
Document | Purpose |
Fastest path to working routing | |
Full setup walkthrough | |
Per-host feature comparison | |
Provider setup and model recommendations | |
| |
All 60 MCP tools with examples | |
Internal design and module structure | |
Common issues and fixes | |
Isolation suite for verifying routing health | |
Model cost/latency/quality table, regenerated by CI | |
Release notes (archive) |
Enterprise
llm-router is built for individual developers and small teams: local cost savings, zero
ops overhead, no hosted anything. If you need team-wide policy enforcement, audit export,
SSO or per-org budgets, that is what Chuzom is for.
Contributing
Contributions welcome. See CONTRIBUTING.md for full guidelines.
git clone https://github.com/ypollak2/llm-router.git
cd llm-router
uv sync --extra dev
uv run pytest tests/ -q # Run tests (1900+)
uv run ruff check src/ tests/ # Lint-|-----------|
| llm-routing | Current PyPI package (pip install llm-routing) |
| llm-router | CLI command and GitHub repo name |
| claude-code-llm-router | Deprecated legacy package (redirects to llm-routing) |
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 Servers
- AlicenseCqualityFmaintenanceAn AI router that connects applications to multiple LLM providers (OpenAI, Anthropic, Google, DeepSeek, Ollama, etc.) with smart model orchestration capabilities, enabling dynamic switching between models for different reasoning tasks.32537MIT
- -licenseNot gradedqualityNot gradedmaintenanceIntelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
- FlicenseNot gradedqualityDmaintenanceAutomatically routes queries to the most suitable AI model based on task type, cost constraints, and performance needs, supporting multiple providers and customizable priorities.
- AlicenseBqualityDmaintenanceRoute prompts intelligently across Claude, Gemini, and GPT-4o, automatically picking the best model for every task while minimizing token cost.57MIT
Related MCP Connectors
Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.
Image, video, audio, face-swap, talking avatars and chat across 300+ AI models, one balance.
Run 100+ AI models — image, video, audio, 3D — through one API with pay-per-use billing.
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/ypollak2/llm-router'
If you have feedback or need assistance with the MCP directory API, please join our Discord server