Skip to main content
Glama
heltonteixeira

OpenRouter MCP Server

OpenRouter MCP 服务器

MCP 服务器版本 TypeScript 执照

模型上下文协议 (MCP) 服务器,可与 OpenRouter.ai 丰富的模型生态系统无缝集成。通过统一、类型安全的接口访问各种 AI 模型,该接口内置缓存、速率限制和错误处理功能。

特征

  • 模型访问

    • 直接访问所有 OpenRouter.ai 模型

    • 自动模型验证和能力检查

    • 默认模型配置支持

  • 性能优化

    • 智能模型信息缓存(1小时有效)

    • 自动速率限制管理

    • 失败请求的指数退避

  • 统一响应格式

    • 所有响应的ToolResult结构一致

    • 使用isError标志清除错误标识

    • 带有上下文的结构化错误消息

Related MCP server: MindBridge MCP Server

安装

pnpm install @mcpservers/openrouterai

配置

先决条件

  1. OpenRouter Keys获取您的 OpenRouter API 密钥

  2. 选择默认模型(可选)

环境变量

OPENROUTER_API_KEY=your-api-key-here
OPENROUTER_DEFAULT_MODEL=optional-default-model

设置

添加到您的 MCP 设置配置文件( cline_mcp_settings.jsonclaude_desktop_config.json ):

{
  "mcpServers": {
    "openrouterai": {
      "command": "npx",
      "args": ["@mcpservers/openrouterai"],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here",
        "OPENROUTER_DEFAULT_MODEL": "optional-default-model"
      }
    }
  }
}

响应格式

所有工具都以标准化结构返回响应:

interface ToolResult {
  isError: boolean;
  content: Array<{
    type: "text";
    text: string; // JSON string or error message
  }>;
}

成功案例:

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

错误示例:

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

可用工具

聊天完成

向 OpenRouter.ai 模型发送消息:

interface ChatCompletionRequest {
  model?: string;
  messages: Array<{role: "user"|"system"|"assistant", content: string}>;
  temperature?: number; // 0-2
}

// Response: ToolResult with chat completion data or error

搜索模型

搜索并过滤可用型号:

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

// Response: ToolResult with model list or error

获取模型信息

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

{
  model: string;           // Model identifier
}

验证模型

检查模型 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
  }
}

发展

有关以下方面的详细信息,请参阅CONTRIBUTING.md

  • 开发设置

  • 项目结构

  • 功能实现

  • 错误处理指南

  • 工具使用示例

# Install dependencies
pnpm install

# Build project
pnpm run build

# Run tests
pnpm test

变更日志

查看CHANGELOG.md了解最新更新,包括:

  • 统一响应格式实现

  • 增强的错误处理系统

  • 类型安全接口改进

执照

该项目根据 Apache License 2.0 获得许可 - 有关详细信息,请参阅LICENSE文件。

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/heltonteixeira/openrouterai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server