OpenRouter MCP 服务器
 ](https://nodejs.org)  
一个模型上下文协议(MCP)服务器,提供对OpenRouter.ai模型目录的智能访问。通过高级搜索功能和实时定价数据,查询、筛选、比较和发现AI模型。
特点/功能
🔍(放大镜图标,通常表示搜索或查看细节) 高级搜索与筛选
- 按提供商、价格、上下文长度和模态进行筛选
- 按名称或描述搜索模型
- 按多个条件排序(价格、上下文、名称、日期)
💰(钱) 成本优化
- 寻找符合您要求的最便宜型号
- 比较不同供应商的价格
- 每百万代币的价格细分
📊 表格/数据图表 模型对比
- 并排模型对比
- 详细规格和功能
- 架构和参数信息
🚀 表情符号“🚀”在中文中通常被翻译为“火箭”或保持为“🚀”本身,因为它是一个通用的表情符号,直接表示火箭或快速上升、进步等意象。在没有特定上下文的情况下,可以简单地将其描述为“火箭”表情符号。 实时数据
- 来自OpenRouter API的实时数据
- 自动刷新缓存(TTL为5分钟)
- 如果API不可用,则回退到缓存数据
📝 表示“记事本”或“笔记”。 即用代码示例
- 每个模型的curl、Python和JavaScript示例
- OpenRouter API集成代码片段
- 最佳实践和配置
安装
先决条件
- Node.js >= 18.0.0
- Claude Desktop 或任何 MCP 兼容客户端
快速设置
# Clone the repository
git clone https://github.com/YOUR_USERNAME/mcp-openrouter.git
cd mcp-openrouter
# Install dependencies
npm install
# Run tests to verify installation
npm test添加到Claude代码中
添加此服务器的最简单方法是使用 claude mcp add 命令:
# Navigate to the project directory
cd /path/to/mcp-openrouter
# Add the MCP server (use absolute path)
claude mcp add openrouter -- node $(pwd)/src/index.js就是这个! 该服务器现已在Claude Code中可用。
范围选项
您可以配置服务器的可用位置:
# Add for current project only (default)
claude mcp add openrouter -- node $(pwd)/src/index.js
# Add for all your projects (user scope)
claude mcp add --scope user openrouter -- node $(pwd)/src/index.js
# Add to share with your team (project scope - creates .mcp.json)
claude mcp add --scope project openrouter -- node $(pwd)/src/index.js验证安装
检查您的服务器是否已安装:
# List all MCP servers
claude mcp list
# Get details for this server
claude mcp get openrouter移除服务器
如有需要,您可以移除服务器:
claude mcp remove openrouter添加到Claude桌面(备选方案)
如果您更倾向于使用Claude Desktop,您可以手动编辑配置文件:
macOS(发音为“Mac OS”,全称为“Macintosh Operating System”,即苹果电脑操作系统)
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openrouter": {
"command": "node",
"args": ["/absolute/path/to/mcp-openrouter/src/index.js"]
}
}
}Linux
编辑 ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openrouter": {
"command": "node",
"args": ["/absolute/path/to/mcp-openrouter/src/index.js"]
}
}
}Windows
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"openrouter": {
"command": "node",
"args": ["C:\\absolute\\path\\to\\mcp-openrouter\\src\\index.js"]
}
}
}重启Claude桌面版 更新配置后。
可用工具
1. list_models
列出所有可用模型,并可选择过滤和排序。
参数:
provider(字符串):按提供者过滤(例如,“anthropic”、“openai”、“google”)category(字符串):按类别筛选max_price_per_1m_tokens(数字):每100万输入令牌的最大价格(美元)min_context_length(数字):最小上下文窗口大小modality(字符串):按输入模态过滤(“文本”、“图像”、“音频”、“视频”)sort_by(字符串):按“价格”、“上下文长度”、“名称”或“创建时间”排序sort_order(字符串): "升序" 或 "降序" (默认: "升序")
示例回复:
{
"count": 12,
"models": [
{
"id": "anthropic/claude-3-haiku",
"name": "Anthropic: Claude 3 Haiku",
"provider": "anthropic",
"description": "Fast and affordable Claude model",
"context_length": 200000,
"pricing_per_1m_tokens": {
"input": "0.25",
"output": "1.25"
},
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"created": "2024-03-01T00:00:00.000Z"
}
]
}2. get_model
获取特定型号的详细信息。
参数:
model_id(字符串,必填):模型ID(例如,“anthropic/claude-3-opus”)
返回值:
- 完整模型规格
- 定价明细(按每个代币和每100万个代币计算)
- 架构细节及支持的模式
- 支持的参数和默认值
- 在curl、Python和JavaScript中的使用示例
3. list_providers
列出所有模型提供商及其统计数据。
返回值:
{
"count": 53,
"providers": [
{
"name": "openai",
"model_count": 43,
"models": ["openai/gpt-4-turbo", "openai/gpt-4", ...]
}
]
}4. compare_models
并排比较多个模型。
参数:
model_ids(数组,必需):要比较的模型ID数组
示例:
{
"model_ids": [
"anthropic/claude-3-opus",
"openai/gpt-4-turbo",
"google/gemini-pro-1.5"
]
}5. search_models
按名称或描述搜索模型。
参数:
query(字符串,必填):搜索查询search_in(字符串):"name"(名称)、"description"(描述)或 "both"(两者)(默认值:"both")
6. get_cheapest_models
找到最符合您标准且最具成本效益的型号。
参数:
min_context_length(数字):所需的最小上下文窗口大小modality(字符串):必需的输入模态limit(数字):最大结果数量(默认:10)
7. refresh_cache
强制刷新模型数据缓存。
资源
openrouter://models/all
包含所有可用模型的完整JSON列表,附带元数据。
openrouter://providers/all
包含所有提供者及其模型数量和模型ID的JSON列表。
用例
1. 生产成本优化
场景: 你需要在保持质量的同时降低API成本。
"Find the 5 cheapest models with at least 100,000 context length that support vision"
Use: get_cheapest_models
{
"min_context_length": 100000,
"modality": "image",
"limit": 5
}结果: 发现像Claude 3 Haiku或Gemini Flash这样性价比高的替代方案,可以帮助您节省60-80%的API成本。
2. 新项目模型选择
场景: 开始一个新项目,需要评估各种选项。
工作流程:
1. "List all Anthropic models sorted by context length"
→ Understand available options
2. "Compare claude-3-opus, claude-3-sonnet, and claude-3-haiku"
→ See pricing, capabilities, and trade-offs
3. "Get detailed information for anthropic/claude-3-sonnet"
→ Review specifications and get integration code结果: 根据您的具体需求(预算、情境需求、能力)做出明智的决策。
3. 多模态应用开发
场景: 开发一款需要视觉理解和文本理解能力的应用程序。
"Search for models that support vision"
Use: search_models
{
"query": "vision",
"search_in": "both"
}
Then filter: "Show only models with 128K+ context and under $5 per 1M tokens"
Use: list_models
{
"modality": "image",
"min_context_length": 128000,
"max_price_per_1m_tokens": 5.0,
"sort_by": "price"
}结果: 根据您的预算和需求,选择适合的模型,如GPT-4 Vision、Claude 3或Gemini。
4. 供应商评估
场景: 评估哪家供应商提供的选择最适合您的需求。
"List all providers and their model counts"
Use: list_providers
Then drill down: "Show all Google models with their pricing"
Use: list_models
{
"provider": "google",
"sort_by": "price"
}结果: 比较供应商的服务内容、定价策略以及模型多样性。
5. 迁移规划
场景: 因弃用或成本原因,从一种模型迁移到另一种模型。
1. "Get details for my current model: openai/gpt-4"
2. "Find alternatives with similar context length and capabilities"
Use: list_models with similar specifications
3. "Compare my shortlist of alternatives"
Use: compare_models with selected model IDs结果: 在充分了解所需API变更的情况下,实现平滑迁移。
6. 预算受限下的发展
场景: 在有限预算内构建原型。
"Find free or cheapest models with at least 32K context"
Use: get_cheapest_models
{
"min_context_length": 32000,
"limit": 10
}结果: 发现免费模型或超实惠的选择,用于开发和测试。
7. 专项任务选择
场景: 需要一个针对编码任务优化的模型。
"Search for models optimized for coding"
Use: search_models
{
"query": "code",
"search_in": "description"
}
Refine: "Show only models under $2 per 1M tokens"
Use: list_models with price filter结果: 寻找像Code Llama、DeepSeek Coder或经过编码优化的变体等专用模型。
8. 批处理成本分析
场景: 计划处理大量数据。
1. "Compare pricing for high-volume processing across providers"
→ Get pricing data for multiple models
2. Calculate: "If processing 1 billion tokens per month..."
→ Model A: $15/month
→ Model B: $50/month
→ Model C: $150/month结果: 根据您的需求和预算选择合适的型号。
示例场景
场景1:构建客户支持聊天机器人
要求:
- 上下文:5万个标记(包括对话历史+知识库)
- 预算:每100万代币低于3美元
- 响应质量:高
- 速度:重要但非关键
查询:
"Find models with 50K+ context, under $3 per 1M input tokens, sorted by price"
list_models({
min_context_length: 50000,
max_price_per_1m_tokens: 3.0,
sort_by: "price",
sort_order: "asc"
})决定: 在比较了各种选项后,选择Claude 3 Haiku(0.25美元/100万次),它以极低的成本提供卓越的品质。
场景2:借助视觉进行文档分析
要求:
- 必须支持文本和图像两种输入方式
- 整个文档的大型上下文(10万+)
- 准确性至关重要
查询:
"Find vision-capable models with 100K+ context"
list_models({
modality: "image",
min_context_length: 100000,
sort_by: "context_length",
sort_order: "desc"
})比较顶级选项:
compare_models({
model_ids: [
"anthropic/claude-3-opus",
"google/gemini-pro-1.5",
"openai/gpt-4-turbo"
]
})决定: 配备100万上下文长度的Gemini Pro 1.5,用于复杂文档分析。
场景3:预算有限的初创公司最小可行性产品(MVP)
要求:
- 开发过程中的成本最低
- 需要测试各种使用场景
- 稍后会扩展/扩大规模
策略:
1. "Find free models"
get_cheapest_models({ limit: 10 })
2. Test with free tier models:
- Development: Free models
- Staging: Low-cost models ($0.10-$1.00/1M)
- Production: Premium models when funded结果: 在不耗尽资本的情况下构建并测试最小可行性产品(MVP)。
场景4:比较模型能力的研究项目
要求:
- 需要在多个模型上测试相同的提示
- 文档模型规范
- 科学地比较输出结果
工作流程:
1. "List all models from major providers"
list_models() → Get comprehensive catalog
2. "Get detailed specs for comparison set"
get_model() for each model in study
3. Document:
- Architecture differences
- Context window impacts
- Pricing vs performance correlation结果: 为出版准备的全面研究数据。
数据结构
每个模型包括:
{
id: string; // Unique identifier (e.g., "anthropic/claude-3-opus")
name: string; // Human-readable name
provider: string; // Provider name
description: string; // Model description
created: string; // ISO 8601 creation date
context_length: number; // Maximum context window
pricing: {
prompt_per_token: string; // Per-token input cost
completion_per_token: string; // Per-token output cost
image_per_token: string; // Per-image cost (if applicable)
request: string; // Per-request cost (if applicable)
per_1m_tokens: {
input: string; // Formatted cost per 1M input tokens
output: string; // Formatted cost per 1M output tokens
}
};
architecture: {
input_modalities: string[]; // Supported inputs (text, image, audio, video)
output_modalities: string[]; // Supported outputs
tokenizer: string; // Tokenizer type
instruct_type: string; // Instruction format
};
top_provider: {
is_moderated: boolean; // Content moderation enabled
context_length: number; // Provider-specific context limit
max_completion_tokens: number; // Maximum output tokens
};
supported_parameters: string[]; // Supported API parameters
default_parameters: object; // Default parameter values
usage_example: {
curl: string; // curl example
python: string; // Python example
javascript: string; // JavaScript example
}
}缓存策略
- 缓存持续时间: 5分钟
- 自动刷新: 是的
- 备用方案: 如果API不可用,则使用缓存数据
- 手动刷新: 可通过以下方式获取
refresh_cache工具
这确保了:
- 最新数据,确保准确定价与供货情况
- 减少API调用以提高性能
- API停机期间的弹性
发展
# Run in development mode with auto-reload
npm run dev
# Run unit tests
npm test
# Run integration tests
node tests/integration.test.js测试
该项目包括全面的测试覆盖范围:
单元测试 (npm test)
- 提供者提取逻辑
- 定价计算
- 筛选和排序
- 搜索功能
- 缓存行为
集成测试 (node tests/integration.test.js)
- 完整的MCP协议通信
- 实时API数据获取
- 所有工具端点
- 资源访问
所有测试均以100%的成功率通过。
API 参考文档
服务器使用OpenRouter API:
- 终点/端点:
https://openrouter.ai/api/v1/models - 文档: https://openrouter.ai/docs/api-reference/list-available-models 的中文翻译是:“列出可用模型的API参考文档”
- 速率限制: 遵守OpenRouter的速率限制
- 认证: 模型列表中无需此项
做出贡献
欢迎投稿!请:
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交一个拉取请求
路线图
- \[ \] 添加模型性能基准
- \[ \] 包括模型可用性状态
- \[ \] 添加历史定价数据
- \[ \] 支持自定义过滤表达式
- \[ \] 模型推荐引擎
- \[ \] 成本估算计算器
- \[ \] 支持WebSocket进行实时更新
- \[ \] 模型弃用追踪
故障排除
服务器未在Claude桌面端显示
- 验证配置文件路径是否正确
- 确保绝对路径为
index.js是正确的 - 重启Claude桌面版
- 检查Claude Desktop的日志以查找错误
缓存未刷新
使用 refresh_cache 强制立即刷新的工具:
refresh_cache()搜索结果中未显示的模型
- 检查你的筛选条件是否过于严格
- 检查搜索查询的拼写
- 尝试在“名称”和“描述”中都进行搜索
许可证
MIT 许可证 - 请参阅 许可证 文件中详述。
致谢
- 建立在……之上 模型上下文协议
- 由……提供的数据 OpenRouter.ai(可译为“开放路由器人工智能”或根据上下文简化为“开放路由AI”,具体翻译可能需根据实际应用场景调整)
- 受智能模型发现需求的启发
支持
- 问题:
- 讨论:
- MCP 文档: https://modelcontextprotocol.io(中文可表述为:“模型上下文协议官方网站”或根据具体语境简化为“模型上下文协议网站”)
______________________________________________________________________
专为AI开发者社区倾心打造
