MCP Router
Automatically selects the optimal LLM model for each task in Cursor IDE by analyzing query complexity, task type, and applying customizable routing strategies across 17 different AI models.
README
š MCP Router
Intelligent Model Context Protocol Router for Cursor IDE
Automatically selects the optimal LLM model for each task based on query analysis, complexity, and your preferred strategy.
š System Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā CURSOR IDE ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā User Query ā ā
ā ā "Refactor this authentication system across multiple files" ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā MCP Router Server ā ā
ā ā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā Query Analyzer āāāāā¶ā Model Scorer āāāā¶ā Routing Decision ā ā ā
ā ā ā ā ā ā ā ā ā ā
ā ā ā ⢠Task Type ā ā ⢠Quality Score ā ā ⢠Selected Model ā ā ā
ā ā ā ⢠Complexity ā ā ⢠Cost Score ā ā ⢠Confidence ā ā ā
ā ā ā ⢠Requirements ā ā ⢠Speed Score ā ā ⢠Reasoning ā ā ā
ā ā ā ⢠Token Estimate ā ā ⢠Strategy Weight ā ā ⢠Alternatives ā ā ā
ā ā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā Model Registry (17 Models) ā ā
ā ā ā ā
ā ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā ā ā
ā ā ā FLAGSHIP ā ā REASONING ā ā NATIVE/FAST ā ā BUDGET/LEGACY ā ā ā
ā ā ā ā ā ā ā ā ā ā ā ā
ā ā ā ⢠GPT-5.2 ā ā ⢠o3 ā ā ⢠Composer1 ā ā ⢠GPT-4o-mini ā ā ā
ā ā ā ⢠Claude4.5 ā ā ⢠o3-mini ā ā ⢠Gemini 3 ā ā ⢠Claude Haiku ā ā ā
ā ā ā Opus ā ā ⢠Claude3.7 ā ā Pro/Flash ā ā ⢠DeepSeek V3 ā ā ā
ā ā ā ⢠Claude4.5 ā ā Sonnet ā ā ā ā ⢠DeepSeek R1 ā ā ā
ā ā ā Sonnet ā ā ā ā ā ā ā ā ā
ā ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā Cursor Executes Query ā ā
ā ā (Using its own API keys for selected model) ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Data Flow
āāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāā āāāāāāāāāāāāāā
ā Query āāāāāāā¶ā Analyze āāāāāāā¶ā Score āāāāāāā¶ā Recommend ā
āāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāā āāāāāāāāāāāāāā
ā ā ā
ā¼ ā¼ ā¼
āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā
ā Task Type: ā ā Apply ā ā Model: ā
ā ⢠reasoning ā ā Strategy: ā ā Claude 4.5 ā
ā ⢠code_gen ā ā ⢠balanced ā ā Sonnet ā
ā ⢠edit ā ā ⢠quality ā ā ā
ā Complexity: ā ā ⢠speed ā ā Confidence: ā
ā ⢠medium ā ā ⢠cost ā ā 88.45% ā
āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā
⨠Features
| Feature | Description |
|---|---|
| š¤ Intelligent Routing | Automatically selects the best model based on query analysis |
| š 4 Routing Strategies | balanced / cost / speed / quality |
| š Query Analysis | Detects task type, complexity, and special requirements |
| š° Cost Estimation | Estimates costs before execution |
| ā” 17 Models | Latest 2025 models from OpenAI, Anthropic, Google, Cursor, DeepSeek |
| š§ Cursor Native | Zero API keys needed - Cursor handles execution |
š Supported Models (2025)
Tier 1: Flagship Models (Complex Architecture & Refactoring)
| Model | Provider | Context | Cost (in/out) | Quality |
|---|---|---|---|---|
| GPT-5.2 | OpenAI | 256K | $5.00/$15.00 | 0.99/0.98 |
| Claude 4.5 Opus | Anthropic | 200K | $25.00/$75.00 | 0.99/0.99 |
| Claude 4.5 Sonnet | Anthropic | 200K | $5.00/$25.00 | 0.97/0.98 |
Tier 2: Reasoning Models (Chain of Thought)
| Model | Provider | Context | Cost (in/out) | Quality |
|---|---|---|---|---|
| o3 | OpenAI | 200K | $10.00/$40.00 | 0.99/0.95 |
| o3-mini (High) | OpenAI | 128K | $1.50/$6.00 | 0.95/0.92 |
| Claude 3.7 Sonnet | Anthropic | 200K | $4.00/$20.00 | 0.96/0.96 |
Tier 3: Native & Fast Models
| Model | Provider | Context | Cost (in/out) | Quality |
|---|---|---|---|---|
| Composer 1 | Cursor | 128K | $0.10/$0.30 | 0.88/0.92 |
| Gemini 3 Pro | 2M | $2.00/$8.00 | 0.96/0.94 | |
| Gemini 3 Flash | 1M | $0.10/$0.40 | 0.88/0.90 |
Tier 4: Budget/Legacy Models
| Model | Provider | Context | Quality |
|---|---|---|---|
| GPT-4o / GPT-4o-mini | OpenAI | 128K | 0.95/0.85 |
| Claude 3.5 Sonnet/Haiku | Anthropic | 200K | 0.96/0.88 |
| Gemini 2.0 Pro/Flash | 2M/1M | 0.94/0.85 | |
| DeepSeek V3 | DeepSeek | 128K | 0.92/0.94 |
| DeepSeek R1 | DeepSeek | 128K | 0.96/0.92 |
š Quick Start
1. Install
git clone https://github.com/AI-Castle-Labs/mcp-router.git
cd mcp-router
pip install -r requirements.txt
pip install mcp # MCP SDK for Cursor integration
2. Configure Cursor
Add to ~/.cursor/mcp.json:
{
"version": "1.0",
"mcpServers": {
"mcp-router": {
"command": "python3",
"args": ["/path/to/mcp-router/src/mcp_server.py"],
"env": {}
}
}
}
Note: No API keys needed! Cursor handles all API calls with its own keys.
3. Restart Cursor
The MCP router will appear in your agent tools. Use it with:
@mcp-router get_model_recommendation "your task description"@mcp-router analyze_query "your query"@mcp-router list_models
š» CLI Usage
# Route a query (shows which model would be selected)
python main.py route "Explain how neural networks work"
# Route with strategy
python main.py route "Refactor this codebase" --strategy quality
# List all registered models
python main.py list
# Show routing statistics
python main.py stats
Example Output
============================================================
Routing Decision
============================================================
Query: Refactor this complex authentication system...
Selected Model: Claude 4.5 Sonnet
Model ID: claude-4.5-sonnet
Provider: anthropic
Confidence: 88.45%
Reasoning: Model is optimized for code_edit tasks; Selected for highest quality
Alternatives:
- Composer 1 (composer-1)
- Claude 3.5 Haiku (claude-3-5-haiku-20241022)
- GPT-4o-mini (gpt-4o-mini)
šÆ Routing Strategies
| Strategy | Description | Best For |
|---|---|---|
balanced |
Optimizes for cost, speed, and quality equally | General use |
quality |
Prioritizes highest capability models | Complex tasks, refactoring |
speed |
Prioritizes fastest response time | Quick edits, simple tasks |
cost |
Prioritizes cheapest models | Budget-conscious usage |
š Python API
from src.router import MCPRouter
# Initialize router (loads 17 default models)
router = MCPRouter()
# Route a query
decision = router.route(
"Analyze this codebase architecture",
strategy="quality"
)
print(f"Selected: {decision.selected_model.name}")
print(f"Model ID: {decision.selected_model.model_id}")
print(f"Confidence: {decision.confidence:.1%}")
print(f"Reasoning: {decision.reasoning}")
# Get alternatives
for alt in decision.alternatives[:3]:
print(f" Alternative: {alt.name}")
š Project Structure
mcp-router/
āāā src/
ā āāā router.py # Core routing logic + 17 model definitions
ā āāā mcp_server.py # MCP server for Cursor integration
ā āāā client.py # API client for model execution
ā āāā cursor_wrapper.py # Cursor-specific utilities
āāā config/
ā āāā cursor_mcp_config.json # Template for Cursor config
āāā scripts/
ā āāā setup_cursor.sh # Automated setup script
āāā docs/
ā āāā cursor_integration.md
ā āāā QUICKSTART_CURSOR.md
ā āāā AGENT_SETTINGS.md
āāā main.py # CLI entry point
āāā requirements.txt
āāā README.md
š§ Adding Custom Models
from src.router import MCPRouter, ModelCapabilities, TaskType
router = MCPRouter()
router.register_model(ModelCapabilities(
name="My Custom Model",
provider="custom",
model_id="custom-model-v1",
supports_reasoning=True,
supports_code=True,
supports_streaming=True,
max_tokens=8192,
context_window=32000,
cost_per_1k_tokens_input=1.0,
cost_per_1k_tokens_output=2.0,
avg_latency_ms=600,
reasoning_quality=0.85,
code_quality=0.90,
speed_score=0.80,
preferred_tasks=[TaskType.CODE_GENERATION],
api_key_env_var="CUSTOM_API_KEY"
))
š® Cursor Commands
Create .cursor/commands/route.md:
---
description: "Get model recommendation from MCP router for the current task"
---
Use the MCP router to determine the best model for the task at hand.
1. Analyze the current context
2. Call `@mcp-router get_model_recommendation` with task description
3. Present the recommendation with confidence and alternatives
4. Suggest switching models if needed
š MCP Tools Available
| Tool | Description |
|---|---|
route_query |
Route a query and get model recommendation |
get_model_recommendation |
Get recommendation without execution |
list_models |
List all 17 registered models |
get_routing_stats |
Get usage statistics |
analyze_query |
Analyze query characteristics |
š¤ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
š License
MIT License - see LICENSE for details.
<p align="center"> <b>Built for the Cursor IDE ecosystem</b><br> <a href="https://github.com/AI-Castle-Labs/mcp-router">AI Castle Labs</a> </p>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.