多模态服务器

OpenRouter MCP多模态服务器提供文本聊天和图像分析功能,支持多种模型选择和性能优化。

  • by hoangdn3
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 hoangdn3/mcp-ocr-fallback

使用说明

OpenRouter MCP多模式服务器

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

特性

  • 文字聊天:

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

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

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

    • 智能模型信息缓存
    • 重试次数呈指数级回退
    • 自动速率限制处理

1.5.0的新增功能

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

    • Windows、macOS和Linux的增强路径处理
    • 更好地支持带有驱动器号的Windows样式路径
    • 规范化的路径处理,实现跨平台的一致行为
  • MCP配置支持:

    • 光标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 API密钥 OpenRouter密钥
  2. 选择默认型号(可选)

MCP配置选项

将以下配置之一添加到MCP设置文件中(例如。, cline_mcp_settings.json 或 claude_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-适用于OpenRouter的与OpenAI兼容的API客户端
  • sharp:^0.33.5-快速图像处理库
  • axios:^1.8.4-API请求的HTTP客户端
  • node-fetch:^3.3.2-现代fetch实现

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

可用工具

mcp_openrouter_chat_完成

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

use_mcp_tool({
  server_name: "openrouter",
  tool_name: "mcp_openrouter_chat_completion",
  arguments: {
    model: "google/gemini-2.5-pro-exp-03-25:free", // Optional if default is set
    messages: [
      {
        role: "system",
        content: "You are a helpful assistant."
      },
      {
        role: "user",
        content: "What is the capital of France?"
      }
    ],
    temperature: 0.7 // Optional, defaults to 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: "What's in this image?"
          },
          {
            type: "image_url",
            image_url: {
              url: "https://example.com/image.jpg"
            }
          }
        ]
      }
    ]
  }
});