Token导航 LogoToken导航TokenDH.com
OpenRouter MCP Server logo
AI代理未说明官方级别未说明来源级核验

OpenRouter MCP Server

MCP Server

OpenRouter MCP Server是一个提供与OpenRouter.ai多样化模型生态系统无缝集成的模型上下文协议服务器,通过统一的类型安全接口访问各种AI模型,并内置缓存、速率限制和错误处理功能。

工具数

0

提示词数

0

GitHub Stars

62

资源数

0
错误处理TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

heltonteixeira

提供方

heltonteixeira

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

OpenRouter MCP服务器

![MCP Server](https://github.com/heltonteixeira/openrouterai) ](CHANGELOG.md) ![TypeScript](https://www.typescriptlang.org/) ![License](LICENSE)

一个模型上下文协议(MCP)服务器,提供与OpenRouter.ai多样化模型生态系统的无缝集成。通过具有内置缓存、速率限制和错误处理的统一类型安全接口访问各种AI模型。

特性

  • 模型访问

- 直接访问所有OpenRouter.ai型号 - 自动模型验证和能力检查 - 默认模型配置支持

  • 性能优化

- 智能模型信息缓存(1小时到期) - 自动速率限制管理 - 失败请求的指数回退

  • 统一响应格式

- 一致的 ToolResult 所有响应的结构 - 通过以下方式明确错误识别 isError 旗帜 - 带上下文的结构化错误消息

安装

pnpm install @mcpservers/openrouterai

配置

先决条件

  1. 从获取您的OpenRouter API密钥 OpenRouter密钥
  2. 选择默认型号(可选)

环境变量

  • OPENROUTER_API_KEY: 必需.您的OpenRouter API密钥。
  • OPENROUTER_DEFAULT_MODEL:可选。如果请求中没有指定,则使用默认模型(例如。, openrouter/auto).
  • OPENROUTER_MAX_TOKENS:可选。如果满足以下条件,则默认生成的最大令牌数 max_tokens 请求中未提供。
  • OPENROUTER_PROVIDER_QUANTIZATIONS:可选。以逗号分隔的默认量化级别列表,用于过滤(例如。, fp16,int8)如果 provider.quantizations 请求中未提供。(第一阶段)
  • OPENROUTER_PROVIDER_IGNORE:可选。以逗号分隔的默认提供者名称列表(例如。, mistralai,openai)如果 provider.ignore 请求中未提供。(第一阶段)
  • OPENROUTER_PROVIDER_SORT:可选。提供程序的默认排序顺序(“价格”、“吞吐量”或“延迟”)。被压倒了 provider.sort 争论。(第二阶段)
  • OPENROUTER_PROVIDER_ORDER:可选。提供者ID的默认优先级列表(JSON数组字符串。, '["openai/gpt-4o", "anthropic/claude-3-opus"]').被压倒了 provider.order 争论。(第二阶段)
  • OPENROUTER_PROVIDER_REQUIRE_PARAMETERS:可选。默认布尔值(truefalse)仅使用支持所有指定请求参数的提供程序。被压倒了 provider.require_parameters 争论。(第二阶段)
  • OPENROUTER_PROVIDER_DATA_COLLECTION:可选。默认数据收集策略(“允许”或“拒绝”)。被压倒了 provider.data_collection 争论。(第二阶段)
  • OPENROUTER_PROVIDER_ALLOW_FALLBACKS:可选。默认布尔值(truefalse)如果首选提供者失败,则控制回退行为。被压倒了 provider.allow_fallbacks 争论。(第二阶段)
# Example .env file content
OPENROUTER_API_KEY=your-api-key-here
OPENROUTER_DEFAULT_MODEL=openrouter/auto
OPENROUTER_MAX_TOKENS=1024
OPENROUTER_PROVIDER_QUANTIZATIONS=fp16,int8
OPENROUTER_PROVIDER_IGNORE=openai,anthropic
OPENROUTER_PROVIDER_SORT=price
OPENROUTER_PROVIDER_ORDER='["openai/gpt-4o", "anthropic/claude-3-opus"]'
OPENROUTER_PROVIDER_REQUIRE_PARAMETERS=true
OPENROUTER_PROVIDER_DATA_COLLECTION=deny
OPENROUTER_PROVIDER_ALLOW_FALLBACKS=false

OPENROUTER_PROVIDER_QUANTIZATIONS=fp16,int8 OPENROUTER_PROVIDER_IGNORE=开放式,人性化


### Setup

Add to your MCP settings configuration file (`cline_mcp_settings.json` or `claude_desktop_config.json`):

{ "mcpServers": { "openrouterai": { "command": "npx", "args": ["@mcpservers/openrouterai"], "env": { "OPENROUTER_API_KEY": "your-api-key-here", "OPENROUTER_DEFAULT_MODEL": "optional-default-model", "OPENROUTER_MAX_TOKENS": "1024", "OPENROUTER_PROVIDER_QUANTIZATIONS": "fp16,int8", "OPENROUTER_PROVIDER_IGNORE": "openai,anthropic" } } } }

Response Format

All tools return responses in a standardized structure:

interface ToolResult {
  isError: boolean;
  content: Array;
}

成功示例:

{
  "isError": false,
  "content": [{
    "type": "text",
    "text": "{\"id\": \"gen-123\", ...}"
  }]
}

错误示例:

{
  "isError": true,
  "content": [{
    "type": "text",
    "text": "Error: Model validation failed - 'invalid-model' not found"
  }]
}

可用工具

chat_completion

向OpenRouter聊天完成API发送请求。

输入架构:

  • model (string,可选):要使用的模型(例如。, openai/gpt-4o, google/gemini-pro).覆盖 OPENROUTER_DEFAULT_MODEL.默认为 openrouter/auto 如果两者都没有设置。

- 型号后缀: 您可以追加 :nitro 到模型ID(例如。, openai/gpt-4o:nitro)如果可能的话,可能会转向更快的实验版本。追加 :floor (例如。, mistralai/mistral-7b-instruct:floor)使用最便宜的模型变体,通常用于测试或低成本任务。注:可用性 :nitro:floor 变体取决于OpenRouter。

  • messages (array,必填):符合OpenAI聊天完成格式的消息对象数组。
  • temperature (数字,可选):采样温度。默认为1。
  • max_tokens (number,可选):完成时生成的最大令牌数。覆盖 OPENROUTER_MAX_TOKENS.
  • provider (对象,可选):提供程序路由配置。相应的覆盖 OPENROUTER_PROVIDER_* 环境变量。

- quantizations (字符串数组,可选):要过滤的量化级别列表(例如。, ["fp16", "int8"]).只有与其中一个级别匹配的模型才会被考虑。覆盖 OPENROUTER_PROVIDER_QUANTIZATIONS(第一阶段) - ignore (字符串数组,可选):要排除的提供者名称列表(例如。, ["openai", "anthropic"]).将不使用这些提供商的模型。覆盖 OPENROUTER_PROVIDER_IGNORE(第一阶段) - sort (“价格”|“吞吐量”|“延迟”,可选):按指定条件对提供程序进行排序。覆盖 OPENROUTER_PROVIDER_SORT(第二阶段) - order (字符串数组,可选):提供者ID的优先级列表(例如。, ["openai/gpt-4o", "anthropic/claude-3-opus"]).覆盖 OPENROUTER_PROVIDER_ORDER(第二阶段) - require_parameters (boolean,可选):如果为true,则仅使用支持所有指定请求参数(如工具、函数、温度)的提供程序。覆盖 OPENROUTER_PROVIDER_REQUIRE_PARAMETERS(第二阶段) - data_collection (“allow”|“deny”,可选):指定是否允许提供程序从请求中收集数据。覆盖 OPENROUTER_PROVIDER_DATA_COLLECTION(第二阶段) - allow_fallbacks (boolean,可选):如果为true(默认),则允许在首选提供者失败或不可用时回退到其他提供者。如果为false,则在无法使用首选提供程序的情况下,请求失败。覆盖 OPENROUTER_PROVIDER_ALLOW_FALLBACKS(第二阶段)

示例用法:

{
  "tool": "chat_completion",
  "arguments": {
    "model": "anthropic/claude-3-haiku",
    "messages": [
      { "role": "user", "content": "Explain the concept of quantization in AI models." }
    ],
    "max_tokens": 500,
    "provider": {
      "quantizations": ["fp16"],
      "ignore": ["openai"],
      "sort": "price",
      "order": ["anthropic/claude-3-haiku", "google/gemini-pro"],
      "require_parameters": true,
      "allow_fallbacks": false
    }
  }
}

此示例请求完成 anthropic/claude-3-haiku,将响应限制为500个令牌。它指定了提供程序路由选项:首选 fp16 量化模型,忽略 openai 提供者,按以下方式对剩余提供者进行排序 price,优先考虑 anthropic/claude-3-haiku 然后 google/gemini-pro,要求所选提供程序支持所有请求参数(如 max_tokens),并禁用回退(如果优先级提供者无法满足请求,则失败)。

搜索模型

搜索和筛选可用型号:

interface ModelSearchRequest {
  query?: string;
  provider?: string;
  minContextLength?: number;
  capabilities?: {
    functions?: boolean;
    vision?: boolean;
  };
}

// Response: ToolResult with model list or error

获取模式信息

获取特定型号的详细信息:

{
  model: string;           // Model identifier
}

validate_model

检查型号ID是否有效:

interface ModelValidationRequest {
  model: string;
}

// Response: 
// Success: { isError: false, valid: true }
// Error: { isError: true, error: "Model not found" }

错误处理

服务器提供具有上下文信息的结构化错误:

// Error response structure
{
  isError: true,
  content: [{
    type: "text",
    text: "Error: [Category] - Detailed message"
  }]
}

常见错误类别:

  • Validation Error:输入参数无效
  • API Error:OpenRouter API通信问题
  • Rate Limit:请求节流检测
  • Internal Error:服务器端处理失败

处理响应:

async function handleResponse(result: ToolResult) {
  if (result.isError) {
    const errorMessage = result.content[0].text;
    if (errorMessage.startsWith('Error: Rate Limit')) {
      // Handle rate limiting
    }
    // Other error handling
  } else {
    const data = JSON.parse(result.content[0].text);
    // Process successful response
  }
}

发展

贡献.md 有关以下内容的详细信息:

  • 开发设置
  • 项目结构
  • 功能实现
  • 错误处理指南
  • 工具使用示例
# Install dependencies
pnpm install

# Build project
pnpm run build

# Run tests
pnpm test

更新日志

更改日志.md 最近的更新包括:

  • 统一响应格式实现
  • 增强的错误处理系统
  • 类型安全界面改进

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

错误处理TypeScriptClaudeAI模型集成本地部署协议服务器类型安全接口性能优化

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明noneremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP