ollama-vision-mcp
by Ntzy123
README.md
# 🖼️ MCP 图片理解服务器
基于 [MCP (Model Context Protocol)](https://modelcontextprotocol.io) 的图片理解服务器,让**纯文本模型**(如 Codex CLI / DeepSeek)也能看懂图片内容。
通过调用本地 **Ollama** 多模态模型(如 `minicpm-o4.5`)进行图片分析,无需调用任何云端视觉 API,数据完全本地处理。
---
## ✨ 功能
- **🔍 `analyze_image`** — 分析单张图片,支持自定义提问
- **🆚 `analyze_images`** — 多图(最多 5 张)对比分析
- **📝 `ocr_image`** — 从图片中提取文字(支持中英文)
- **🔄 支持本地图片和 URL 图片**
---
## 📋 前置要求
| 组件 | 说明 |
|------|------|
| Python 3.10+ | 运行环境 |
| [Ollama](https://ollama.com) | 本地多模态模型服务 |
| 多模态模型 | 如 `minicpm-o4.5`、`llava`、`gemma3` 等 |
安装 Ollama 并拉取模型:
```bash
ollama pull minicpm-o4.5
```
---
## 🚀 快速开始
### 1️⃣ 安装依赖
**方式一:运行脚本(推荐)**
```bash
setup.bat
```
**方式二:手动安装**
```bash
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
### 2️⃣ 启动 Ollama(如未运行)
```bash
ollama serve
```
### 3️⃣ 配置 MCP JSON
在 MCP 客户端(如 **Codex CLI** / **Claude Desktop** / **Cursor** 等)的配置文件中,添加以下条目:
```json
{
"mcpServers": {
"image-understanding": {
"command": "python",
"args": ["F:/path/to/my-image-server/run.py"],
"env": {
"OLLAMA_HOST": "http://localhost:11434",
"VISION_MODEL": "minicpm-o4.5",
"OLLAMA_TIMEOUT": "120"
}
}
}
}
```
> ⚠️ 将 `F:/path/to/my-image-server` 替换为你项目所在的**实际路径**。
#### 📁 不同客户端的配置位置
| 客户端 | 配置文件路径 |
|--------|------------|
| **Codex CLI** | `~/.codex/config.json` |
| **Claude Desktop** | Settings → Developer → Edit Config → `claude_desktop_config.json` |
| **Cursor** | Settings → Features → MCP → Add new MCP server |
---
## ⚙️ 环境变量
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `OLLAMA_HOST` | `http://localhost:11434` | Ollama 服务地址 |
| `VISION_MODEL` | `minicpm-o4.5` | 使用的多模态模型名称 |
| `OLLAMA_TIMEOUT` | `120` | 请求超时时间(秒),大图片可适当调大 |
也可以直接在命令行中临时设置:
```bash
set OLLAMA_HOST=http://localhost:11434
set VISION_MODEL=llava
python run.py
```
---
## 🧩 提供的 MCP Tools
### `analyze_image`
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `image_path` | string | ✅ | 本地路径或 URL |
| `question` | string | ❌ | 针对图片的问题,默认"请详细描述这张图片的内容" |
### `analyze_images`
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `image_paths` | string[] | ✅ | 图片路径列表(最多 5 张) |
| `question` | string | ❌ | 对比分析问题 |
### `ocr_image`
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `image_path` | string | ✅ | 本地路径或 URL |
---
## 💡 在对话中使用示例
```text
> 分析这张图片:C:\photos\cat.jpg
> 对比这两张图有什么不同:img1.png 和 img2.png
> 提取这张截图里的所有文字:screenshot.png
> 这个网页截图里的按钮是做什么的?https://example.com/screenshot.png
```
---
## 🏗️ 项目结构
```
my-image-server/
├── run.py # MCP 服务器主程序
├── requirements.txt # Python 依赖
├── setup.bat # Windows 环境初始化脚本
├── venv/ # Python 虚拟环境
└── README.md # 本文件
```
---
## 📄 License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues