ModelRouter MCP
The ModelRouter MCP server provides advisory LLM model recommendations, task and repository analysis, and model registry management for Cursor. All recommendations are advisory — the user must manually select the model. No user data is sent externally.
recommend_model: Advisory model recommendation based on plan and repo metadata, with optional alternatives and config overrides.analyze_task: Parse a plan document to determine task type, complexity, and requirement vector.analyze_repository: Inspect repo metadata (file counts, languages, frameworks, diff stats) without reading source file contents.estimate_cost: Estimate token usage and cost for a specific model given a plan.list_models: List all models in the registry with basic metadata.get_model_profile: Fetch the full profile and provenance for a specific model by ID.sync_metadata: Refresh model metadata from external fixture-based adapters (blocked in privacy mode).get_telemetry_summary: View local telemetry data — never leaves the machine via outbound HTTP.generate_cursor_guidance: Generate advisory Cursor guidance snippets — does not automatically apply or enforce model selection.
Integrates Ollama as a local model registry, enabling recommendations for locally hosted Ollama models.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ModelRouter MCPrecommend a model for my Python data science project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ModelRouter MCP
Advisory MCP server for intelligent LLM model recommendations in Cursor.
v1 Capability Statement
Ships:
Advisory
recommend_modelwith schema-validated JSONHeuristic task analysis (Layer A) + metadata scoring (Layer B)
Static seed registry with user-writable cache (
~/.modelrouter)Live metadata sync by default (Class D inbound fetch when
privacyMode: false)Guidance snippets for Cursor — user manually picks model
Does NOT ship:
Force Composer/Auto model selection
Continuous validation against engineering tasks (Phase 8 opt-in only)
Cursor.models.list()or any IDE runtime model API
Related MCP server: secscan-mcp
Quick Start
npm install
npm run build
MODELROUTER_USE_FIXTURES=1 npm test
npm run validate-schemas
npm run smokeCursor MCP Configuration
npm (after publish):
{
"mcpServers": {
"modelrouter": {
"command": "npx",
"args": ["-y", "modelrouter-mcp"]
}
}
}Local development:
{
"mcpServers": {
"modelrouter": {
"command": "node",
"args": ["/absolute/path/to/ModelRouter_MCP/dist/index.js"]
}
}
}Tools (10)
Tool | Description |
| Advisory recommendation from plan + repo metadata |
| Task type, complexity, requirement vector |
| File counts, languages, frameworks, diff stats |
| Registry model list |
| Full profile with provenance |
| Sync from external sources (blocked in privacy mode) |
| Advisory snippets — does not apply model |
| Local telemetry only |
| Cost estimate for a specific model |
| Opt-in stub validation (disabled by default) |
Benchmark ingest is internal-only (via SweBenchAdapter), not exposed as an MCP tool.
Configuration
See schemas/modelrouter-config.schema.json.
Setting | Default | Notes |
|
| Blocks all outbound HTTP when |
|
| Disable to skip metadata sync |
| all adapters | Filter by source ID |
|
| Opt-in; may incur API costs |
Environment variables (not in JSON schema):
MODELROUTER_DATA_DIR— override user cache directory (default~/.modelrouter)MODELROUTER_USE_FIXTURES=1— fixtures only, no live HTTP (CI/dev offline)
Privacy
See PRIVACY.md. User plan and repository data are never sent outbound. Optional public model metadata fetch (Class D) occurs when privacyMode: false.
Data directories
Path | Purpose |
Packaged | Read-only seeds (npm install) |
| Writable user cache (sync updates) |
| Last sync TTL tracking |
Single-instance assumption: concurrent writes are not supported.
Troubleshooting
Build errors: Run
npm run buildbefore starting MCPStale metadata: Call
sync_metadataor wait for background TTL sync (24h)Offline dev: Set
MODELROUTER_USE_FIXTURES=1Privacy: Set
privacyMode: truein config to block all outbound HTTP
Maintainer Scripts
# Optional — requires CURSOR_API_KEY
npm run verify-cursor-ids
# CI denylist check
npm run lint:cursor-denylist
# Record live sync fixtures (network required)
npx tsx scripts/record-sync-fixtures.tsImplementation status
Phase | Status |
Runtime foundation (user dir, async sync) | Complete |
Live metadata sync | Complete |
Registry quality (cursor IDs, benchmarks) | Complete |
Calibration | Provisional (run |
npm publish | Ready |
See CONTRIBUTING.md for maintainer workflows.
License
MIT — see LICENSE
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/MrSolution07/ModelRouter_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server