llm-advisor-mcp

Comparação em tempo real de modelos LLM/VLM com benchmarks, preços e recomendações personalizadas de 5 fontes de dados. Nenhuma chave de API necessária.

Documentação

llm-advisor-mcp

npm version npm downloads CI License: MIT Node.js >= 18 TypeScript

Glama MCP server

Inglês | Japonês

Dê ao seu assistente de IA conhecimento de LLM/VLM em tempo real. Preços, benchmarks e recomendações — atualizados a cada hora, não a cada ciclo de treinamento.

LLMs têm cortes de conhecimento. Pergunte ao Claude "qual é o melhor modelo de codificação agora?" e ele não consegue responder com dados atuais. Este servidor MCP resolve isso alimentando inteligência de modelo ao vivo diretamente no contexto do seu assistente de IA.

  • Zero configuração — Sem chaves de API, sem registro. Um comando para instalar.
  • Baixo token — Tabelas Markdown compactas (~300 tokens), não JSON bruto (~3.000 tokens). Seu contexto importa.
  • 5 fontes de benchmark — SWE-bench, LM Arena Elo, OpenCompass VLM, Aider Polyglot e preços do OpenRouter unificados em uma visão única.

Casos de Uso

  • "Qual é o melhor modelo de codificação agora?" — list_top_models com categoria coding
  • "Compare Claude vs GPT vs Gemini" — compare_models com tabela lado a lado
  • "Encontre um modelo barato com contexto de 1M" — recommend_model com restrições de orçamento
  • "Quais benchmarks o modelo X tem?" — get_model_info com classificações percentuais

Início Rápido

Claude Code

claude mcp add llm-advisor -- npx -y llm-advisor-mcp

Claude Code (Windows)

claude mcp add llm-advisor -- cmd /c npx -y llm-advisor-mcp

Claude Desktop / Cursor / Windsurf

Adicione ao seu arquivo de configuração MCP:

{
  "mcpServers": {
    "llm-advisor": {
      "command": "npx",
      "args": ["-y", "llm-advisor-mcp"]
    }
  }
}

Isso é tudo. Sem chaves de API, sem arquivos .env.

Clientes Compatíveis

ClienteSuportadoMétodo de Instalação
Claude CodeSimclaude mcp add
Claude DesktopSimconfiguração JSON
CursorSimconfiguração JSON
WindsurfSimconfiguração JSON
Qualquer cliente MCPSimtransporte stdio

Ferramentas

get_model_info

Especificações detalhadas para um modelo específico: preços, benchmarks, classificações percentuais, capacidades e um exemplo de código de API pronto para uso.

Parâmetros

NomeTipoObrigatórioPadrãoDescrição
modelstringSim—ID do modelo ou nome parcial (ex.: "claude-sonnet-4", "gpt-5")
include_api_examplebooleanNãotrueInclui um trecho de código pronto para uso
api_formatenumNãoopenai_sdkopenai_sdk, curl ou python_requests

Exemplo de saída

## anthropic/claude-sonnet-4

**Provider**: anthropic | **Modality**: text+image→text | **Released**: 2025-06-25

### Pricing
| Metric | Value |
|--------|-------|
| Input | $3.00 /1M tok |
| Output | $15.00 /1M tok |
| Cache Read | $0.30 /1M tok |
| Context | 200K |
| Max Output | 64K |

### Benchmarks
| Benchmark | Score |
|-----------|-------|
| SWE-bench Verified | 76.8% |
| Aider Polyglot | 72.1% |
| Arena Elo | 1467 |
| MMMU | 76.0% |

### Percentile Ranks
| Category | Percentile |
|----------|------------|
| Coding | P96 |
| General | P95 |
| Vision | P90 |

**Capabilities**: Tools, Reasoning, Vision

### API Example (openai_sdk)
```python
from openai import OpenAI
client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="<OPENROUTER_API_KEY>",
)
response = client.chat.completions.create(
    model="anthropic/claude-sonnet-4",
    messages=[{"role": "user", "content": "Hello"}],
)

---

### `list_top_models`

Top-ranked models for a category. Includes release dates for freshness awareness.

**Parameters**

| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `category` | enum | Yes | — | `coding`, `math`, `vision`, `general`, `cost-effective`, `open-source`, `speed`, `context-window`, `reasoning` |
| `limit` | number | No | `10` | Number of results (1-20) |
| `min_context` | number | No | — | Minimum context window in tokens |
| `min_release_date` | string | No | — | `YYYY-MM-DD`. Excludes models released before this date |

**Example output**

Top 5: codificação

#ModeloPontuação-chaveEntrada $/1MSaída $/1MContextoLançado
1openai/o3-proSWE 79.5%$20.00$80.00200K2025-06-10
2anthropic/claude-sonnet-4SWE 76.8%$3.00$15.00200K2025-06-25
3google/gemini-2.5-proSWE 75.2%$1.25$10.001M2025-03-25
4openai/o4-miniSWE 73.6%$1.10$4.40200K2025-04-16
5anthropic/claude-opus-4SWE 72.5%$15.00$75.00200K2025-05-22

---

### `compare_models`

Side-by-side comparison for 2-5 models. Best values are **bolded** automatically. Includes a `Released` row so you can spot outdated models at a glance.

**Parameters**

| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `models` | string[] | Yes | — | 2-5 model IDs or partial names |

**Example output**

Comparação de Modelos (3 modelos)

anthropic/claude-sonnet-4openai/gpt-4.1google/gemini-2.5-pro
Entrada $/1M$3.00$2.00$1.25
Saída $/1M$15.00$8.00$5.00
Contexto200K1M1M
Saída Máxima64K32K65K
SWE-bench76.8%55.0%75.2%
Aider Polyglot72.1%65.3%71.8%
Arena Elo146714921445
VisãoSimSimSim
FerramentasSimSimSim
RaciocínioSimNãoSim
Código AbertoNãoNãoNão
Lançado2025-06-252025-04-142025-03-25

---

### `recommend_model`

Personalized top-3 recommendations. Scores combine weighted benchmarks, pricing, capability bonuses, and a freshness bonus (+3 points for models released within 3 months, +1 within 6 months).

**Parameters**

| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `use_case` | enum | Yes | — | `coding`, `math`, `general`, `vision`, `creative`, `reasoning`, `cost-effective` |
| `max_input_price` | number | No | — | Max input price (USD/1M tokens) |
| `max_output_price` | number | No | — | Max output price (USD/1M tokens) |
| `min_context` | number | No | — | Minimum context window in tokens |
| `require_vision` | boolean | No | — | Require image input support |
| `require_tools` | boolean | No | — | Require tool/function calling support |
| `require_open_source` | boolean | No | — | Require open-source license |
| `min_release_date` | string | No | — | `YYYY-MM-DD`. Excludes older models |

**Example output**

Recomendado para: codificação

1. anthropic/claude-sonnet-4 (pontuação: 78)

Entrada: $3.00/1M | Saída: $15.00/1M | Contexto: 200K | Lançado: 2025-06-25 Benchmarks: SWE-bench: 76.8%, Aider: 72.1%, Arena: 1467 Pontos fortes: raciocínio, ferramentas, visão

2. google/gemini-2.5-flash (pontuação: 74)

Entrada: $0.15/1M | Saída: $0.60/1M | Contexto: 1M | Lançado: 2025-05-20 Benchmarks: SWE-bench: 62.9%, Arena: 1445 Pontos fortes: ferramentas, visão, contexto de 1M+

3. openai/o4-mini (pontuação: 71)

Entrada: $1.10/1M | Saída: $4.40/1M | Contexto: 200K | Lançado: 2025-04-16 Benchmarks: SWE-bench: 73.6%, Arena: 1430 Pontos fortes: raciocínio, ferramentas


---

## Data Sources

All data is fetched in real time from free, public APIs. No authentication required.

| Source | Data | Models | Cache TTL |
|--------|------|--------|-----------|
| [OpenRouter](https://openrouter.ai/api/v1/models) | Pricing, context lengths, modalities, release dates | 300+ | 1 hour |
| [SWE-bench](https://github.com/SWE-bench/swe-bench.github.io) | Coding benchmark (Verified leaderboard) | 30+ | 6 hours |
| [LM Arena](https://lmarena.ai) | Human preference Elo ratings | 314+ | 6 hours |
| [OpenCompass VLM](https://opencompass.org.cn) | Vision benchmarks: MMMU, MMBench, OCRBench, AI2D, MathVista | 284+ | 6 hours |
| [Aider Polyglot](https://aider.chat/docs/leaderboards/) | Multi-language coding pass rate | 63+ | 6 hours |

---

## Context Cost

MCP tool definitions and responses consume your LLM's context window. This server is designed to be lean:

| Component | Tokens |
|-----------|--------|
| All 4 tool definitions | ~1,000 |
| Typical tool response | ~250-400 |

For comparison, most MCP servers that return raw JSON consume 3,000-10,000 tokens per response. Every response from llm-advisor-mcp is pre-formatted Markdown, keeping context costs roughly 10x lower.

---

## Architecture

┌──────────────────────────────────────────────┐ │ MCP Client (Claude, etc.) │ └──────────┬───────────────────────────────────┘ │ stdio (JSON-RPC) ┌──────────▼───────────────────────────────────┐ │ llm-advisor-mcp server │ │ │ │ ┌─────────┐ ┌───────────┐ ┌────────────┐ │ │ │ Tools │ │ Registry │ │ Cache │ │ │ └─────────┘ └───────────┘ └────────────┘ │ │ │ │ │ ┌────────────┼────────────┐ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │Normalizer│ │Percentile│ │ Fetchers │ │ │ │(slug map)│ │ (5 cats) │ │(5 sources│ │ │ └──────────┘ └──────────┘ └──────────┘ │ └──────────────────────────────────────────────┘ │ │ │ OpenRouter SWE-bench Arena / VLM / Aider


- **TypeScript + ESM** — Single entry point, `tsup` build
- **In-memory cache** — TTL-based (1h pricing, 6h benchmarks), stale-while-revalidate
- **Cross-source normalization** — Maps inconsistent model names (e.g. `Claude 3.5 Sonnet` vs `anthropic/claude-3.5-sonnet`) to canonical IDs
- **Percentile computation** — Ranks across 5 categories (coding, math, general, vision, cost efficiency)
- **Freshness scoring** — Recommendation algorithm gives a bonus to recently released models (+3 for <=3mo, +1 for <=6mo)
- **Zero runtime deps** beyond `@modelcontextprotocol/sdk` and `zod`

---

## Roadmap

| Version | Status | Highlights |
|---------|--------|------------|
| v0.1 | Done | `get_model_info` + `list_top_models` via OpenRouter |
| v0.2 | Done | `compare_models` + `recommend_model` + SWE-bench + Arena Elo |
| v0.3 | Done | VLM benchmarks (MMMU, MMBench, OCRBench, AI2D, MathVista) + Aider Polyglot + percentile ranks + 43 tests |
| v0.4 | **Current** | Release date display, date-based filtering, freshness scoring in recommendations + 51 tests |
| v1.0 | Planned | Community contributions, weekly static data snapshots via GitHub Actions |

---

## Development

```bash
git clone https://github.com/Daichi-Kudo/llm-advisor-mcp.git
cd llm-advisor-mcp
npm install
npm run build       # Build with tsup
npm run dev         # Run with tsx (hot reload)
npm test            # Run 51 unit tests (vitest)
npm run test:watch  # Watch mode

Estrutura do projeto

src/
  index.ts              # Server entry point
  types.ts              # Shared type definitions
  tools/
    model-info.ts       # get_model_info tool
    list-top.ts         # list_top_models tool
    compare.ts          # compare_models tool
    recommend.ts        # recommend_model tool
    formatters.ts       # Markdown output formatters
  data/
    registry.ts         # Unified model registry
    cache.ts            # In-memory TTL cache
    normalizer.ts       # Cross-source name normalization
    percentiles.ts      # Percentile rank computation
    fetchers/
      openrouter.ts     # OpenRouter API
      swe-bench.ts      # SWE-bench leaderboard
      arena.ts          # LM Arena Elo ratings
      vlm-leaderboard.ts # OpenCompass VLM benchmarks
      aider.ts          # Aider Polyglot scores
    static/
      api-examples.ts   # API code snippet templates

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Adicione testes para novas funcionalidades
  4. Execute npm test para verificar se todos os 51 testes passam
  5. Envie um pull request

Licença

MIT — construído por Cognisant LLC