MCP OpenVision 是一个基于 Model Context Protocol (MCP) 的服务器,它提供了由 OpenRouter 视觉模型驱动的图像分析能力。它使AI助手能够通过简单的接口在MCP生态系统中分析图像。
要通过 Smithery 自动安装 mcp-openvision 到 Claude Desktop:
npx -y @smithery/cli install @Nazruden/mcp-openvision --client claude
pip install mcp-openvision
uv pip install mcp-openvision
MCP OpenVision 需要一个 OpenRouter API 密钥,并可以通过环境变量进行配置:
MCP OpenVision 可以与任何支持视觉能力的 OpenRouter 模型一起工作。默认模型是 qwen/qwen2.5-vl-32b-instruct:free,但您可以指定任何其他兼容模型。
一些通过 OpenRouter 可用的流行视觉模型包括:
qwen/qwen2.5-vl-32b-instruct:free(默认)anthropic/claude-3-5-sonnetanthropic/claude-3-opusanthropic/claude-3-sonnetopenai/gpt-4o您可以通过设置 OPENROUTER_DEFAULT_MODEL 环境变量或直接传递给 image_analysis 函数的 model 参数来指定自定义模型。
测试 MCP OpenVision 最简单的方法是使用 MCP Inspector 工具:
npx @modelcontextprotocol/inspector uvx mcp-openvision
编辑您的 MCP 配置文件:
%USERPROFILE%\.cursor\mcp.json~/.cursor/mcp.json 或 ~/Library/Application Support/Claude/claude_desktop_config.json添加以下配置:
{
"mcpServers": {
"openvision": {
"command": "uvx",
"args": ["mcp-openvision"],
"env": {
"OPENROUTER_API_KEY": "your_openrouter_api_key_here",
"OPENROUTER_DEFAULT_MODEL": "anthropic/claude-3-sonnet"
}
}
}
}
# 设置所需的 API 密钥
export OPENROUTER_API_KEY="your_api_key"
# 直接运行服务器模块
python -m mcp_openvision
MCP OpenVision 提供了以下核心工具:
image:可以提供为:
query:用户对图像分析任务的指令system_prompt:定义模型角色和行为的指令(可选)model:要使用的视觉模型temperature:控制随机性(0.0-1.0)max_tokens:最大响应长度query 参数对于从图像分析中获得有用的结果至关重要。精心制作的查询提供了关于以下方面的上下文:
| 基本查询 | 增强查询 |
|---|---|
| "描述这张图片" | "识别出这张商店货架图片中可见的所有零售产品并估计它们的价格范围" |
| "这张图片里有什么?" | "分析这张医学扫描图中的异常情况,重点关注高亮区域并提供可能的诊断" |
| "分析这个图表" | "从这张展示季度销售的柱状图中提取数值数据,并确定2022-2023年的关键趋势" |
| "读取文本" | "转录这张餐厅菜单上所有可见的文字,保留项目名称、描述和价格" |
通过提供关于为什么你需要分析以及你具体寻求什么信息的上下文,你可以帮助模型专注于相关细节并产生更有价值的见解。
# 分析来自 URL 的图像
result = await image_analysis(
image="https://example.com/image.jpg",
query="详细描述这张图片"
)
# 分析来自本地文件的图像,带有聚焦查询
result = await image_analysis(
image="path/to/local/image.jpg",
query="识别出这张街道场景中的所有交通标志,并解释它们对驾驶课程的意义"
)
# 使用 base64 编码的图像进行分析,并具有特定的分析目的
result = await image_analysis(
image="SGVsbG8gV29ybGQ=...", # base64 数据
query="检查这个产品包装设计,并突出显示可以改进的地方,以提高可见性和品牌认知度"
)
# 为专门分析定制系统提示
result = await image_analysis(
image="path/to/local/image.jpg",
query="分析这幅画的构图和艺术技巧,重点是如何创造情感影响",
system_prompt="你是一位拥有深厚绘画技术和艺术运动知识的艺术史专家。专注于形式分析,如构图、色彩、笔触和风格元素。"
)
image_analysis 工具接受几种类型的图像输入:
project_root 参数指定基础目录当使用相对文件路径(如 "examples/image.jpg")时,您有两个选项:
project_root 参数:# 带有相对路径和 project_root 的示例
result = await image_analysis(
image="examples/image.jpg",
project_root="/path/to/your/project",
query="这张图片里有什么?"
)
这对于当前工作目录可能不可预测的应用程序非常有用,或者当您想要使用相对于特定目录的路径引用文件时。
# 克隆仓库
git clone https://github.com/modelcontextprotocol/mcp-openvision.git
cd mcp-openvision
# 安装开发依赖
pip install -e ".[dev]"
此项目使用 Black 进行自动代码格式化。GitHub Actions 强制执行格式化:
您也可以在本地运行 Black 来格式化代码,然后再提交:
# 格式化 src 和 tests 目录下的所有 Python 代码
black src tests
pytest
此项目使用自动化发布流程:
pyproject.toml 中的版本,遵循 语义化版本控制 原则
python scripts/bump_version.py [major|minor|patch]CHANGELOG.md,添加有关新版本的详细信息
main 分支这种自动化有助于维护一致的发布流程,并确保每次发布都得到适当的版本控制和文档记录。
如果您发现这个项目很有帮助,请考虑买杯咖啡支持持续开发和维护。
<a href="https://www.buymeacoffee.com/nazruden" target="_blank"> <img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=nazruden&button_colour=FFDD00&font_colour=000000&font_family=Lato&outline_colour=000000&coffee_colour=ffffff" alt="Buy Me A Coffee" width="217" height="60"> </a>此项目根据 MIT 许可证发布 - 查看 LICENSE 文件获取详情。