返回市场
开放路由-MCP-多模态

开放路由-MCP-多模态

作者:stabgan13 星标更新:2025-03-28

项目介绍

OpenRouter MCP 多模态服务器

构建状态 npm 版本 Docker 拉取次数

这是一个MCP(模型上下文协议)服务器,通过OpenRouter.ai的多样化模型生态系统提供聊天和图像分析能力。该服务器结合了文本聊天功能与强大的图像分析能力。

功能

  • 文本聊天:

    • 直接访问所有OpenRouter.ai聊天模型
    • 支持简单文本和多模态对话
    • 可配置温度和其他参数
  • 图像分析:

    • 使用自定义问题分析单个图像
    • 同时处理多个图像
    • 自动图像调整大小和优化
    • 支持各种图像来源(本地文件、URL、数据URL)
  • 模型选择:

    • 搜索和过滤可用模型
    • 验证模型ID
    • 获取详细的模型信息
    • 支持默认模型配置
  • 性能优化:

    • 智能模型信息缓存
    • 指数退避重试机制
  • 自动速率限制处理

1.5.0 新增内容

  • 改进的操作系统兼容性:

    • 增强Windows、macOS和Linux的路径处理
    • 更好地支持带有驱动器字母的Windows风格路径
    • 跨平台一致的行为的规范化路径处理
  • MCP配置支持:

    • 无需环境变量即可集成Cursor MCP
    • 通过MCP参数直接配置
    • 灵活的API密钥和模型指定选项
  • 健壮的错误处理:

    • 图像处理的改进回退机制
    • 具有特定诊断的更好错误报告
    • 文件读取的多种备份策略
  • 图像处理增强:

    • 所有图像类型的更可靠的Base64编码
    • 当Sharp模块不可用时的回退选项
    • 对大型图像的自动优化处理

安装

方案1:通过npm安装

npm install -g @stabgan/openrouter-mcp-multimodal

方案2:通过Docker运行

docker run -i -e OPENROUTER_API_KEY=your-api-key-here stabgandocker/openrouter-mcp-multimodal:latest

快速启动配置

先决条件

  1. OpenRouter 密钥获取您的OpenRouter API密钥。
  2. 选择一个默认模型(可选)。

MCP配置选项

在您的MCP设置文件中添加以下配置之一(例如,cline_mcp_settings.jsonclaude_desktop_config.json):

方案1:使用npx(Node.js)

{
  "mcpServers": {
    "openrouter": {
      "command": "npx",
      "args": [
        "-y",
        "@stabgan/openrouter-mcp-multimodal"
      ],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here",
        "DEFAULT_MODEL": "qwen/qwen2.5-vl-32b-instruct:free"
      }
    }
  }
}

方案2:使用uv(Python包管理器)

{
  "mcpServers": {
    "openrouter": {
      "command": "uv",
      "args": [
        "run",
        "-m",
        "openrouter_mcp_multimodal"
      ],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here",
        "DEFAULT_MODEL": "qwen/qwen2.5-vl-32b-instruct:free"
      }
    }
  }
}

方案3:使用Docker

{
  "mcpServers": {
    "openrouter": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "OPENROUTER_API_KEY=your-api-key-here",
        "-e", "DEFAULT_MODEL=qwen/qwen2.5-vl-32b-instruct:free",
        "stabgandocker/openrouter-mcp-multimodal:latest"
      ]
    }
  }
}

方案4:使用Smithery(推荐)

{
  "mcpServers": {
    "openrouter": {
      "command": "smithery",
      "args": [
        "run",
        "stabgan/openrouter-mcp-multimodal"
      ],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here",
        "DEFAULT_MODEL": "qwen/qwen2.5-vl-32b-instruct:free"
      }
    }
  }
}

示例

要查看如何使用此MCP服务器的全面示例,请参阅示例目录。我们提供了:

  • 适用于Node.js应用程序的JavaScript示例
  • 具有交互式聊天功能的Python示例
  • 与各种应用程序集成的代码片段

每个示例都配有清晰的文档和逐步说明。

依赖项

该项目使用以下关键依赖项:

  • @modelcontextprotocol/sdk: ^1.8.0 - 最新的MCP SDK用于工具实现
  • openai: ^4.89.1 - 与OpenAI兼容的API客户端用于OpenRouter
  • sharp: ^0.33.5 - 快速图像处理库
  • axios: ^1.8.4 - API请求的HTTP客户端
  • node-fetch: ^3.3.2 - 现代fetch实现

需要Node.js 18或更高版本。所有依赖项都会定期更新以确保兼容性和安全性。

可用工具

mcp_openrouter_chat_completion

向OpenRouter模型发送文本或多模态消息:

use_mcp_tool({
  server_name: "openrouter",
  tool_name: "mcp_openrouter_chat_completion",
  arguments: {
    model: "google/gemini-2.5-pro-exp-03-25:free", // 如果已设置默认值则可选
    messages: [
      {
        role: "system",
        content: "您是一个有用的助手。"
      },
      {
        role: "user",
        content: "法国的首都是哪里?"
      }
    ],
    temperature: 0.7 // 可选,默认为1.0
  }
});

对于带有图像的多模态消息:

use_mcp_tool({
  server_name: "openrouter",
  tool_name: "mcp_openrouter_chat_completion",
  arguments: {
    model: "anthropic/claude-3.5-sonnet",
    messages: [
      {
        role: "user",
        content: [
          {
            type: "text",
            text: "这张图片里有什么?"
          },
          {
            type: "image_url",
            image_url: {
              url: "https://example.com/image.jpg"
            }
          }
        ]
      }
    ]
  }
});