内容
# llm-advisor-mcp
[](https://www.npmjs.com/package/llm-advisor-mcp)
[](https://www.npmjs.com/package/llm-advisor-mcp)
[](https://github.com/Daichi-Kudo/llm-advisor-mcp/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
[](https://glama.ai/mcp/servers/Daichi-Kudo/llm-advisor-mcp)
**中文** | [日语](README.ja.md)
**为您的 AI 助手提供实时的 LLM/VLM 知识。** 定价、基准和推荐 — 每小时更新,而非每训练周期。
LLM 存在知识截止点。询问 Claude “当前最好的编码模型是什么?”,它无法用当前数据回答。这个 MCP 服务器通过将实时模型智能直接馈入 AI 助手的上下文窗口来解决这个问题。
- **零配置** — 无需 API 密钥,无需注册。只需一个命令即可安装。
- **低令牌** — 紧凑的 Markdown 表(~300 令牌),而非原始 JSON(~3000 令牌)。您的上下文窗口很重要。
- **5 个基准来源** — SWE-bench、LM Arena Elo、OpenCompass VLM、Aider Polyglot 和 OpenRouter 定价合并为一个统一视图。
---
## 用例
- **“当前最好的编码模型是什么?”** — `list_top_models`,分类为 `coding`
- **“比较 Claude 和 GPT 和 Gemini”** — `compare_models`,并排表格
- **“寻找一种价格便宜的模型,上下文为 1M”** — `recommend_model`,预算限制
- **“模型 X 有哪些基准?”** — `get_model_info`,百分位排名
---
## 快速入门
### Claude 代码
```bash
claude mcp add llm-advisor -- npx -y llm-advisor-mcp
```
### Claude 代码(Windows)
```bash
claude mcp add llm-advisor -- cmd /c npx -y llm-advisor-mcp
```
### Claude 桌面版 / Cursor / Windsurf
将以下内容添加到您的 MCP 配置文件中:
```json
{
"mcpServers": {
"llm-advisor": {
"command": "npx",
"args": ["-y", "llm-advisor-mcp"]
}
}
}
```
就是这样。无需 API 密钥,无需 `.env` 文件。
### 兼容客户端
| 客户端 | 支持 | 安装方法 |
|--------|-----------|----------------|
| Claude 代码 | 是 | `claude mcp add` |
| Claude 桌面版 | 是 | JSON 配置 |
| Cursor | 是 | JSON 配置 |
| Windsurf | 是 | JSON 配置 |
| 任意 MCP 客户端 | 是 | stdio 传输 |
---
## 工具
### `get_model_info`
特定模型的详细规格:定价、基准、百分位排名、功能和现成 API 代码示例。
**参数**
| 名称 | 类型 | 必需 | 默认值 | 描述 |
|------|------|----------|---------|-------------|
| `model` | 字符串 | 是 | — | 模型 ID 或部分名称(例如 `"claude-sonnet-4"`、`"gpt-5"`) |
| `include_api_example` | 布尔值 | 否 | `true` | 包括现成代码片段 |
| `api_format` | 枚举 | 否 | `openai_sdk` | `openai_sdk`、`curl` 或 `python_requests` |
**示例输出**
```
## anthropic/claude-sonnet-4
**提供商**: anthropic | **模态**: text+image→text | **发布日期**: 2025-06-25
### 定价
| 指标 | 值 |
|--------|-------|
| 输入 | $3.00 /1M tok |
| 输出 | $15.00 /1M tok |
| 缓存读取 | $0.30 /1M tok |
| 上下文 | 200K |
| 最大输出 | 64K |
### 基准
| 基准 | 分数 |
|-----------|-------|
| SWE-bench 验证 | 76.8% |
| Aider Polyglot | 72.1% |
| Arena Elo | 1467 |
| MMMU | 76.0% |
### 百分位排名
| 类别 | 百分位 |
|----------|------------|
| 编码 | P96 |
| 综合 | P95 |
| 视觉 | P90 |
**功能**: 工具、推理、视觉
### API 示例(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`
某一类别的顶级模型。包括发布日期以确保新鲜度。
**参数**
| 名称 | 类型 | 必需 | 默认值 | 描述 |
|------|------|----------|---------|-------------|
| `category` | 枚举 | 是 | — | `coding`、`math`、`vision`、`general`、`cost-effective`、`open-source`、`speed`、`context-window`、`reasoning` |
| `limit` | 数字 | 否 | `10` | 结果数量(1-20) |
| `min_context` | 数字 | 否 | — | 最小上下文窗口(令牌) |
| `min_release_date` | 字符串 | 否 | — | `YYYY-MM-DD`。排除在此日期之前发布的模型 |
**示例输出**
```
## 顶级 5:coding
| # | 模型 | 关键分数 | 输入 $/1M | 输出 $/1M | 上下文 | 发布日期 |
|------|------|------|------|------|------|------|
| 1 | openai/o3-pro | SWE 79.5% | $20.00 | $80.00 | 200K | 2025-06-10 |
| 2 | anthropic/claude-sonnet-4 | SWE 76.8% | $3.00 | $15.00 | 200K | 2025-06-25 |
| 3 | google/gemini-2.5-pro | SWE 75.2% | $1.25 | $10.00 | 1M | 2025-03-25 |
| 4 | openai/o4-mini | SWE 73.6% | $1.10 | $4.40 | 200K | 2025-04-16 |
| 5 | anthropic/claude-opus-4 | SWE 72.5% | $15.00 | $75.00 | 200K | 2025-05-22 |
```
---
### `compare_models`
2-5 个模型的并排比较。最佳值自动以 **粗体** 显示。包括“发布日期”行,以便您一眼就能发现过时的模型。
**参数**
| 名称 | 类型 | 必需 | 默认值 | 描述 |
|------|------|----------|---------|-------------|
| `models` | 字符串数组 | 是 | — | 2-5 个模型 ID 或部分名称 |
**示例输出**
```
## 模型比较(3 个模型)
| | **anthropic/claude-sonnet-4** | **openai/gpt-4.1** | **google/gemini-2.5-pro** |
|------|------|------|------|
| 输入 $/1M | $3.00 | **$2.00** | $1.25 |
| 输出 $/1M | $15.00 | $8.00 | **$5.00** |
| 上下文 | 200K | 1M | **1M** |
| 最大输出 | 64K | 32K | **65K** |
| SWE-bench | **76.8%** | 55.0% | 75.2% |
| Aider Polyglot | **72.1%** | 65.3% | 71.8% |
| Arena Elo | 1467 | **1492** | 1445 |
| 视觉 | 是 | 是 | 是 |
| 工具 | 是 | 是 | 是 |
| 推理 | 是 | 否 | 是 |
| 开源 | 否 | 否 | 否 |
| 发布日期 | 2025-06-25 | **2025-04-14** | 2025-03-25 |
```
---
### `recommend_model`
个性化的前 3 个推荐。分数结合了加权基准、定价、功能奖励和新鲜度奖励(+3 分,适用于 3 个月内发布的模型,+1 分,适用于 6 个月内发布的模型)。
**参数**
| 名称 | 类型 | 必需 | 默认值 | 描述 |
|------|------|----------|---------|-------------|
| `use_case` | 枚举 | 是 | — | `coding`、`math`、`general`、`vision`、`creative`、`reasoning`、`cost-effective` |
| `max_input_price` | 数字 | 否 | — | 最大输入价格(美元/1M 令牌) |
| `max_output_price` | 数字 | 否 | — | 最大输出价格(美元/1M 令牌) |
| `min_context` | 数字 | 否 | — | 最小上下文窗口(令牌) |
| `require_vision` | 布尔值 | 否 | — | 需要图像输入支持 |
| `require_tools` | 布尔值 | 否 | — | 需要工具/函数调用支持 |
| `require_open_source` | 布尔值 | 否 | — | 需要开源许可证 |
| `min_release_date` | 字符串 | 否 | — | `YYYY-MM-DD`。排除较旧的模型 |
**示例输出**
```
## 推荐用于:coding
### 1. anthropic/claude-sonnet-4 (分数:78)
输入:$3.00/1M | 输出:$15.00/1M | 上下文:200K | 发布日期:2025-06-25
基准:SWE-bench:76.8%,Aider:72.1%,Arena:1467
优势:推理、工具、视觉
### 2. google/gemini-2.5-flash (分数:74)
输入:$0.15/1M | 输出:$0.60/1M | 上下文:1M | 发布日期:2025-05-20
基准:SWE-bench:62.9%,Arena:1445
优势:工具、视觉、1M+ 上下文
### 3. openai/o4-mini (分数:71)
输入:$1.10/1M | 输出:$4.40/1M | 上下文:200K | 发布日期:2025-04-16
基准:SWE-bench:73.6%,Arena:1430
优势:推理、工具
```
---
## 数据源
所有数据均从免费的公共 API 中实时获取。无需身份验证。
| 来源 | 数据 | 模型 | 缓存 TTL |
|--------|------|--------|-----------|
| [OpenRouter](https://openrouter.ai/api/v1/models) | 定价、上下文长度、模态、发布日期 | 300+ | 1 小时 |
| [SWE-bench](https://github.com/SWE-bench/swe-bench.github.io) | 编码基准(验证排行榜) | 30+ | 6 小时 |
| [LM Arena](https://lmarena.ai) | 人类偏好 Elo 评分 | 314+ | 6 小时 |
| [OpenCompass VLM](https://opencompass.org.cn) | 视觉基准:MMMU、MMBench、OCRBench、AI2D、MathVista | 284+ | 6 小时 |
| [Aider Polyglot](https://aider.chat/docs/leaderboards/) | 多语言编码通过率 | 63+ | 6 小时 |
---
## 上下文成本
MCP 工具定义和响应会占用 LLM 的上下文窗口。该服务器设计得很精简:
| 组件 | 令牌 |
|-----------|--------|
| 所有 4 个工具定义 | ~1,000 |
| 典型工具响应 | ~250-400 |
相比之下,大多数返回原始 JSON 的 MCP 服务器每个响应消耗 3,000-10,000 个令牌。llm-advisor-mcp 的每个响应都是预格式化的 Markdown,上下文成本降低约 10 倍。
---
## 架构
```
┌──────────────────────────────────────────────┐
│ MCP 客户端(Claude 等) │
└──────────┬───────────────────────────────────┘
│ stdio (JSON-RPC)
┌──────────▼───────────────────────────────────┐
│ llm-advisor-mcp 服务器 │
│ │
│ ┌─────────┐ ┌───────────┐ ┌────────────┐ │
│ │ 工具 │ │ 注册表 │ │ 缓存 │ │
│ │ (4 工具)│──│ (统一) │──│ (内存)│ │
│ └─────────┘ └───────────┘ └────────────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 标准化 │ │ 百分位 │ │ 获取器 │ │
│ │ (斜杠映射)│ │ (5 类别) │ │(5 个来源│ │
│ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────┘
│ │ │
OpenRouter SWE-bench Arena / VLM / Aider
```
- **TypeScript + ESM** — 单个入口点,`tsup` 构建
- **内存缓存** — 基于 TTL(1 小时定价,6 小时基准),陈旧同时重新验证
- **跨源标准化** — 将不一致的模型名称(例如 `Claude 3.5 Sonnet` 与 `anthropic/claude-3.5-sonnet`)映射到规范 ID
- **百分位计算** — 跨 5 个类别(编码、数学、综合、视觉、成本效率)排名
- **新鲜度评分** — 推荐算法为最近发布的模型提供奖励(<=3 个月 +3,<=6 个月 +1)
- **零运行时依赖** — 除了 `@modelcontextprotocol/sdk` 和 `zod` 之外
---
## 路线图
| 版本 | 状态 | 亮点 |
|---------|--------|------------|
| v0.1 | 已完成 | `get_model_info` + `list_top_models` 通过 OpenRouter |
| v0.2 | 已完成 | `compare_models` + `recommend_model` + SWE-bench + Arena Elo |
| v0.3 | 已完成 | VLM 基准(MMMU、MMBench、OCRBench、AI2D、MathVista)+ Aider Polyglot + 百分位排名 + 43 个测试 |
| v0.4 | **当前** | 发布日期显示、基于日期的过滤、新鲜度评分推荐 + 51 个测试 |
| v1.0 | 计划中 | 社区贡献、通过 GitHub Actions 的每周静态数据快照 |
---
## 开发
```bash
git clone https://github.com/Daichi-Kudo/llm-advisor-mcp.git
cd llm-advisor-mcp
npm install
npm run build # 使用 tsup 构建
npm run dev # 使用 tsx 运行(热重载)
npm test # 运行 51 个单元测试(vitest)
npm run test:watch # 监视模式
```
### 项目结构
```
src/
index.ts # 服务器入口点
types.ts # 共享类型定义
tools/
model-info.ts # get_model_info 工具
list-top.ts # list_top_models 工具
compare.ts # compare_models 工具
recommend.ts # recommend_model 工具
formatters.ts # Markdown 输出格式化程序
data/
registry.ts # 统一模型注册表
cache.ts # 内存 TTL 缓存
normalizer.ts # 跨源名称标准化
percentiles.ts # 百分位排名计算
fetchers/
openrouter.ts # OpenRouter API
swe-bench.ts # SWE-bench 排行榜
arena.ts # LM Arena Elo 评分
vlm-leaderboard.ts # OpenCompass VLM 基准
aider.ts # Aider Polyglot 分数
static/
api-examples.ts # API 代码片段模板
```
### 贡献
1. 复刻仓库
2. 创建功能分支
3. 为新功能添加测试
4. 运行 `npm test` 以验证所有 51 个测试通过
5. 提交拉取请求
---
## 许可证
[MIT](LICENSE) — 由 [Cognisant LLC](https://cognisant.io) 构建