vision-mcp
README.md
# Vision MCP
让原本不具备视觉能力的纯文本模型,通过 MCP(Model Context Protocol)调用云端多模态模型,获得**图像理解、图像问答、OCR、图像处理**等视觉能力。
纯文本 LLM 无法直接"看"图,但可以通过 MCP 把这个 server 暴露成工具:
```
文本模型 ──MCP调用──▶ vision-mcp ──▶ OpenAI / Gemini / Claude(多模态 API)
│
├──▶ 图像理解(描述、问答、OCR)
└──▶ 图像处理(缩放、裁剪、旋转、转换、压缩、滤镜)
```
## 功能
| 工具 | 说明 |
|------|------|
| `vision_status` | 服务器状态、当前 provider / 模型、配置告警 |
| `describe_image` | 详细描述图像内容 |
| `ask_image` | 针对图像的任意自然语言问答 |
| `ocr_image` | 提取图中文字(OCR) |
| `process_image_tool` | 本地处理:resize / crop / rotate / flip / convert / compress + 滤镜与亮度增强 |
## 快速开始
### 1. 克隆并安装
```bash
git clone <your-repo-url> vision-mcp
cd vision-mcp
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt # Windows
# source .venv/bin/pip install -r requirements.txt # macOS / Linux
```
### 2. 配置 API Key
复制 `.env.example` 为 `.env`,填入后端 API key:
```ini
VISION_PROVIDER=openai # openai | gemini | anthropic
OPENAI_API_KEY=sk-...
# 若使用 OpenAI 兼容端点(智谱 / DeepSeek 等):
# OPENAI_BASE_URL=https://open.bigmodel.cn/api/paas/v4/
# OPENAI_VISION_MODEL=glm-4.6v-flash
```
只用你选择的 provider 对应的 key 即可。
### 3. 注册到 Claude Code
在 `~/.claude.json` 或项目 `.mcp.json` 中添加:
```json
{
"mcpServers": {
"vision-mcp": {
"command": "path/to/vision-mcp/.venv/Scripts/python.exe",
"args": ["-m", "vision_mcp.server"],
"cwd": "path/to/vision-mcp"
}
}
}
```
### 4. (可选)上传图片自动分析
将 `image_attach_hook.py` 作为 UserPromptSubmit hook 注册到 `~/.claude/settings.json`:
```json
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "path/to/vision-mcp/.venv/Scripts/python.exe path/to/vision-mcp/image_attach_hook.py",
"timeout": 90
}
]
}
]
}
}
```
上传图片时,hook 自动调用 `describe_image` + `ocr_image`,将视觉分析结果注入上下文——文本模型无需手动调用即可获得图片内容。
### 5. 手动测试
```bash
.venv\Scripts\python -m vision_mcp.server --help
# 或直接起 stdio 服务:
.venv\Scripts\python -m vision_mcp.server
```
## 图像路径约定
- 传绝对路径;或
- 传相对路径,并设置 `VISION_IMAGE_BASE_DIR` 指向图片目录;
- 也可以直接传 `data:` URI(例如处理工具产出的结果)。
## 技术架构
```
vision_mcp/
├── config.py # 多 provider 配置(OpenAI / Gemini / Anthropic)
├── vision.py # 视觉后端:图像理解、问答、OCR
├── image.py # 图片加载、预处理、格式转换
├── processor.py # 本地图像处理(resize/crop/rotate/滤镜等)
├── server.py # MCP 服务入口,注册 5 个工具
└── __init__.py
image_attach_hook.py # UserPromptSubmit hook:上传图片自动分析
run_vision_mcp.bat # Windows 启动脚本
e2e_test.py # 端到端测试脚本
requirements.txt # Python 依赖
```
## 许可
MIT
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues