mcp-bench-router
by K1ta141k
README.md
# mcp-bench-router
MCP server that delegates design tasks to whichever model currently tops [designarena.ai](https://www.designarena.ai)'s crowdsourced leaderboard, via [OpenRouter](https://openrouter.ai).
## Why?
AI coding assistants produce mediocre frontend/design output. designarena.ai maintains a live leaderboard of the best design models, updated every 2 hours. This MCP server lets Claude (or any MCP client) automatically route design tasks to the current best model.
## Tools
| Tool | Description |
|------|-------------|
| `get_best_design_model` | Get the current #1 design model, optionally by category |
| `get_leaderboard` | Browse full rankings with category filter and pagination |
| `query_design_model` | Send a prompt to the best available model via OpenRouter |
| `query_specific_model` | Send a prompt to a specific model via OpenRouter |
## Setup
### Prerequisites
- Node.js >= 18
- An [OpenRouter API key](https://openrouter.ai/keys) (required for `query_design_model` and `query_specific_model`)
### Claude Code (CLI)
```bash
claude mcp add mcp-bench-router -s user -e OPENROUTER_API_KEY=sk-or-... -- npx -y mcp-bench-router
```
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"mcp-bench-router": {
"command": "npx",
"args": ["-y", "mcp-bench-router"],
"env": {
"OPENROUTER_API_KEY": "sk-or-..."
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json` in your project root:
```json
{
"mcpServers": {
"mcp-bench-router": {
"command": "npx",
"args": ["-y", "mcp-bench-router"],
"env": {
"OPENROUTER_API_KEY": "sk-or-..."
}
}
}
}
```
### Other MCP clients
```bash
OPENROUTER_API_KEY=sk-or-... npx -y mcp-bench-router
```
### From source
```bash
git clone https://github.com/K1ta141k/mcp-bench-router.git
cd mcp-bench-router
npm install
npm run build
```
## Categories
Filter by design category: `allcategories`, `website`, `gamedev`, `3d`, `dataviz`, `uicomponent`, `image`, `logo`, `svg`, `video`, `imagetoimage`, `slides`, `graphicdesign`, `tts`.
## Usage Examples
**Check who's #1:**
> "Use get_best_design_model to see the current top design model"
**Browse rankings:**
> "Show me the top 20 design models for websites"
**Generate a design:**
> "Use query_design_model to create a landing page for a SaaS product"
**Use a specific model:**
> "Use query_specific_model with claude-sonnet-4-5 to design a dashboard"
## How It Works
1. Fetches live rankings from designarena.ai's API (cached 2hr)
2. Maps arena model names to OpenRouter IDs (static + dynamic + fuzzy matching)
3. Skips codename/unreleased models and picks the best available one
4. Routes the prompt through OpenRouter's API
## License
MIT
TDQS
A4.1/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: getting the top model, viewing the full leaderboard, querying the best available model, and querying a specific model. No overlaps.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern in snake_case (get_best_design_model, get_leaderboard, query_design_model, query_specific_model), making them predictable.
Tool Count5/5
With 4 tools, the server is well-scoped for its purpose of providing design model leaderboard information and querying capabilities via OpenRouter.
Completeness4/5
The tool set covers the core workflow (view leaderboard, query best/specific model) but lacks a tool to list all available models on OpenRouter, which is a minor gap.
Maintenance
ActivityInactive
ResponsivenessNo issues