🚀 🖼️🤖 OpenRouter图像MCP服务器
OpenRouter图像MCP服务器 是一个超快速的MCP(模型上下文协议)服务器,借助OpenRouter的前沿视觉模型,让AI智能体能够“看到”并理解图像。适用于截图、照片、图表等各类视觉内容,为AI智能体赋予强大的图像分析能力!
🚀 快速开始
前提条件 📋
- Node.js 18+ ⚡
- OpenRouter API密钥 🔑(可在 openrouter.ai 获取)
- 你喜欢的MCP客户端 🤖(如Claude Code、Cline等)
安装 📦
npx openrouter-image-mcp
npm install -g openrouter-image-mcp
git clone https://github.com/JonathanJude/openrouter-image-mcp.git
cd openrouter-image-mcp
npm install
npm run build
npm install -g .
💡 为何推荐npx:无需安装,始终获取最新版本,非常适合MCP服务器使用!
配置 ⚙️
MCP服务器需要OpenRouter API密钥,你可以通过以下几种方式进行配置:
方法1:环境变量(推荐)
export OPENROUTER_API_KEY=sk-or-v1-your-api-key-here
export OPENROUTER_MODEL=google/gemini-2.0-flash-exp:free
方法2:.env文件
cp .env.example .env
nano .env
在 .env 中添加你的OpenRouter凭证:
OPENROUTER_API_KEY=sk-or-v1-your-api-key-here
OPENROUTER_MODEL=google/gemini-2.0-flash-exp:free
LOG_LEVEL=info
MAX_IMAGE_SIZE=10485760
RETRY_ATTEMPTS=3
方法3:在MCP客户端中直接配置
在你的MCP客户端配置中直接添加API密钥(见以下示例)。
✨ 主要特性
- 🎯 多模型支持:可从Claude、Gemini、GPT - 4 Vision等模型中选择!
- 🚀 闪电般快速:使用TypeScript构建,性能经过优化
- 🔧 灵活输入:支持文件路径、URL和Base64数据
- 💰 经济高效:智能选择模型,实现最佳性价比
- 🛡️ 生产就绪:具备强大的错误处理、重试机制和全面的日志记录
- 🎨 易于集成:可与Claude Code、Cline、Cursor等工具无缝协作!
🏠 本地运行 - 无需重启! 🎯
🚀 巨大优势:此MCP服务器在本地配置后无需人工干预即可完美运行!无需重启,无需手动启动服务器,无需调整设置,一切自动就绪! ✨
🔄 自动运行原理
- 🎯 一次配置 → 一次性设置好你的MCP客户端
- 🚀 自动启动 → 客户端自动启动服务器
- 🔧 自动连接 → 验证API并立即加载模型
- 🛠️ 随时可用 → 所有3个工具立即就绪
⚡ 本地设置优势
- 🔥 即设即用:一次设置,永久使用
- ⚡ 快速启动:总就绪时间约5秒
- 🔄 重启持久:即使笔记本电脑关机也不受影响
- 📱 跨平台:在任何支持Node.js的操作系统上均可运行
- 🎯 零维护:无需人工干预
🔧 MCP配置
选项1:使用npx(推荐 - 无需安装)
使用此MCP服务器最简单的方法是使用npx,它会自动下载并运行软件包,无需任何安装:
对于Claude Code
添加到 ~/.claude.json:
{
"mcp": {
"servers": {
"openrouter-image": {
"command": "npx",
"args": ["openrouter-image-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
}
对于Claude桌面版
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openrouter-image": {
"command": "npx",
"args": ["openrouter-image-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
对于其他MCP客户端
- Cursor:
~/.cursor/mcp.json
- Cline:
~/.cline/mcp.json
- Windsurf:MCP设置文件
- 其他智能体:查看你的智能体的MCP文档
✨ npx的优势:
- 🚀 无需安装 - 立即使用
- 🔄 始终是最新版本 - 自动更新
- 📱 跨平台 - 在任何安装了Node.js的地方都能使用
- 🧹 系统整洁 - 无需全局安装软件包
选项2:全局安装(适合频繁使用的用户)
如果你计划频繁使用此MCP服务器,可以进行全局安装:
npm install -g openrouter-image-mcp
然后使用以下配置:
{
"mcp": {
"servers": {
"openrouter-image": {
"command": "openrouter-image-mcp",
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
}
全局安装的优势:
- ⚡ 启动更快 - 无需下载时间
- 🌐 离线可用 - 安装后即可使用
- 🔧 命令更简单 - 配置更简洁
选项3:本地开发
如果你为了开发而在本地克隆了仓库:
{
"mcpServers": {
"openrouter-image": {
"command": "node",
"args": ["/path/to/openrouter-image-mcp/dist/index.js"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
🎯 专业提示:将API密钥替换为你实际的OpenRouter密钥。免费模型适用于大多数用例!
💡 建议:从 npx(选项1)开始 - 这是最简单、最可靠的入门方式!
💡 本地设置专业提示
🎯 路径管理
- 绝对路径最佳:
/path/to/openrouter-image-mcp/dist/index.js
- 避免相对路径:切换目录时可能会出错
- 使用实际路径:用你实际的项目位置更新示例
🔧 环境变量
- 在
.env 文件中设置:确保你的API密钥安全
- 或在系统中设置:
export OPENROUTER_API_KEY=sk-or-v1-...
- 快速测试:运行
OPENROUTER_API_KEY=... node dist/index.js
🚀 快速验证
export OPENROUTER_API_KEY=sk-or-v1-your-key
export OPENROUTER_MODEL=google/gemini-2.5-flash-lite-preview-09-2025
node dist/index.js
🐛 本地问题排查
❌ "Command not found"
"$(which node)" "/path/to/openrouter-image-mcp/dist/index.js"
❌ "File not found"
ls -la /path/to/openrouter-image-mcp/dist/index.js
npm run build
❌ "API key required"
echo $OPENROUTER_API_KEY
echo "OPENROUTER_API_KEY=sk-or-v1-your-key" > .env
🌟 本地开发工作流程
- 🛠️ 一次构建:
npm run build
- ⚙️ 一次配置:将MCP配置添加到你的AI智能体
- 🔄 重启智能体:使新配置生效
- 🎯 立即使用:无需手动管理服务器!
💻 使用示例
基础用法
与Claude Code配合使用 🤖
在你的 ~/.claude.json 中添加以下内容:
{
"mcp": {
"servers": {
"openrouter-image": {
"command": "npx",
"args": ["openrouter-image-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
}
与Claude桌面版配合使用 🖥️
在你的 claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"openrouter-image": {
"command": "npx",
"args": ["openrouter-image-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-api-key-here",
"OPENROUTER_MODEL": "google/gemini-2.0-flash-exp:free"
}
}
}
}
高级用法
🎯 强大功能示例!
"Analyze this screenshot: /path/to/screenshot.png"
"What text do you see in this document: /path/to/scan.jpg"
"Review this UI mockup for accessibility issues: /path/to/design.png"
"Analyze this mobile app screenshot for UX problems: /path/to/app.png"
"What can you tell me about this webpage: https://example.com/screenshot.png"
🛠️ 可用工具
🖼️ analyze_image - 通用图像分析
适用于照片、图表、图形和一般视觉内容!
参数:
type 📁 输入类型:file、url 或 base64
data 📸 图像数据(路径、URL或Base64字符串)
prompt 💭 自定义分析提示
format 📊 输出格式:text 或 json
maxTokens 🔢 最大响应令牌数(默认:4000)
temperature 🌡️ 创造力 0 - 2(默认:0.1)
🌐 analyze_webpage_screenshot - 网页分析专家
专门用于网页分析和调试!
特性:
- 🎯 布局分析
- 📱 内容提取
- 🔗 导航审查
- 📝 表单分析
- ♿ 可访问性评估
- 📊 结构化JSON输出
📱 analyze_mobile_app_screenshot - 移动应用专家
专门用于移动应用UI/UX分析!
特性:
- 🍎 iOS/🤖 Android平台检测
- 🎨 UI设计审查
- 👆 用户体验评估
- ♿ 可访问性分析
- 📊 UX启发式评分
- 🚀 性能洞察
📚 详细文档
💰 视觉模型推荐
| 模型 |
成本 |
视觉质量 |
适用场景 |
🆓 google/gemini-2.0-flash-exp:free |
免费 |
⭐⭐⭐⭐⭐ |
适合初学者! 通用分析、文档处理 |
🆓 meta-llama/llama-3.2-90b-vision-instruct |
免费 |
⭐⭐⭐⭐ |
图表、图形、技术内容 |
🌟 google/gemini-2.5-flash-lite-preview-09-2025 |
💰 非常低 |
⭐⭐⭐⭐⭐ |
性价比最高! 低成本高质量 |
🧠 anthropic/claude-3-5-sonnet-20241022 |
💰💰 中等 |
⭐⭐⭐⭐⭐ |
详细分析、复杂推理 |
🔥 anthropic/claude-3-5-haiku-20241022 |
💰💰💰 较高 |
⭐⭐⭐⭐⭐ |
高精度、专业用途 |
🎯 推荐模型
- 🆓 从免费模型开始:
google/gemini-2.0-flash-exp:free 适用于大多数用例
- 💰 需要时升级:仅在需要更高精度或特定功能时选择付费模型
- 🔥 最佳性能:
anthropic/claude-3-5-sonnet-20241022 适用于专业分析
💡 成本提示
🔧 技术细节
开发
git clone https://github.com/your-username/openrouter-image-mcp.git
cd openrouter-image-mcp
npm install
npm run build
npm run dev
npm test
npm run lint
npm run format
测试
运行测试套件 🧪
npm test
npm run test:coverage
DEBUG=* npm test
手动测试 🎯
node test-image-analysis.js
OPENROUTER_MODEL=anthropic/claude-sonnet-4 node test-image-analysis.js
echo '{"type":"url","data":"https://example.com/image.png","prompt":"What do you see?"}' | node dist/index.js
📄 支持的图像格式
| 格式 |
扩展名 |
MIME类型 |
状态 |
| 🖼️ JPEG |
.jpg, .jpeg |
image/jpeg |
✅ |
| 🖼️ PNG |
.png |
image/png |
✅ |
| 🖼️ WebP |
.webp |
image/webp |
✅ |
| 🖼️ GIF |
.gif |
image/gif |
✅ |
| 📏 最大尺寸 |
- |
- |
10MB(可配置) |
🛡️ 安全与隐私
- 🔐 API密钥:仅从环境变量加载
- 🚫 无敏感日志记录:绝不记录个人数据
- ✅ 输入验证:验证所有参数
- 📏 大小限制:可配置文件大小限制
- 🔒 仅支持HTTPS:所有API通信均加密
- 🗑️ 数据清理:临时文件自动删除
📚 故障排除
🔧 常见问题及解决方案
🔑 "OPENROUTER_API_KEY environment variable is required"
export OPENROUTER_API_KEY=sk-or-v1-your-key-here
🤖 "Invalid or unsupported model"
curl -H "Authorization: Bearer $OPENROUTER_API_KEY" \
https://openrouter.ai/api/v1/models | jq '.data[] | select(.architecture.input_modalities | contains(["image"])) | .id'
📡 "Failed to connect to OpenRouter API"
curl -H "Authorization: Bearer $OPENROUTER_API_KEY" \
https://openrouter.ai/api/v1/models
📏 "Image size exceeds maximum"
export MAX_IMAGE_SIZE=20971520
🐛 调试模式
export LOG_LEVEL=debug
npm start
curl -H "Authorization: Bearer $OPENROUTER_API_KEY" \
https://openrouter.ai/api/v1/auth/key
🤝 贡献
欢迎贡献代码!请fork仓库,进行更改并提交拉取请求。请遵循现有的代码风格,并为新功能添加测试。
📄 许可证
本项目采用 MIT许可证 - 详情请参阅 LICENSE 文件。