Skip to main content
Glama
README.md
# Vision Bridge MCP

通用视觉 MCP 服务器,支持多种多模态 API 格式。当 Claude Code / Claude Desktop 使用的模型无法直接处理图片时,可通过该 MCP 工具将图片内容转换为文字描述,从而间接“看懂”图片。

## 功能

提供 3 个 MCP 工具:

- `describe_image`:详细描述图片内容(对象、场景、文字、人物动作、颜色、布局等)。
- `extract_image_text`:提取图片中的所有文字(OCR)。
- `ask_about_image`:针对图片回答具体问题。

支持四种图片输入方式:

- `image_url`:图片 URL
- `image_path`:本地图片路径
- `image_base64`:Base64 编码的图片数据
- `image`:**Messages API 格式的图片内容块**,例如:

```json
{
  "type": "image",
  "source": {
    "type": "base64",
    "media_type": "image/png",
    "data": "iVBORw0KGgo..."
  }
}
```

## 支持的 API 格式(Provider)

| Provider | 说明 | 默认 Endpoint |
|----------|------|---------------|
| `anthropic` | Anthropic Messages API | `/v1/messages` |
| `openai` | OpenAI Chat Completions API | `/chat/completions` |
| `gemini` | Gemini Native generateContent API | `/v1beta/models/{model}:generateContent` |

通过 `PROVIDER` 环境变量切换 API 格式。

## 快速开始

### 全局安装

```bash
npm install -g @shen866/vision-bridge-mcp
```

### 本地开发

```bash
git clone https://github.com/shen866/vision-bridge-mcp.git
cd vision-bridge-mcp
npm install
npm run build
```

### 配置 Claude Code

`API_KEY`、`BASE_URL`、`MODEL` 为必填项。

#### Anthropic Messages

```json
{
  "mcpServers": {
    "vision_bridge": {
      "command": "npx",
      "args": ["-y", "@shen866/vision-bridge-mcp"],
      "env": {
        "API_KEY": "your-api-key",
        "BASE_URL": "https://api.anthropic.com",
        "MODEL": "claude-3-5-sonnet-20241022"
      }
    }
  }
}
```

如果使用本地构建版本,将 `command` 改为 `node` 并把 `args` 改为绝对路径:

```json
{
  "mcpServers": {
    "vision_bridge": {
      "command": "node",
      "args": ["/Users/shen/workspace/kimi-vision-mcp/dist/index.js"],
      "env": {
        "API_KEY": "your-api-key",
        "BASE_URL": "https://api.anthropic.com",
        "MODEL": "claude-3-5-sonnet-20241022"
      }
    }
  }
}
```

#### OpenAI Chat Completions

```json
{
  "mcpServers": {
    "vision_bridge": {
      "command": "npx",
      "args": ["-y", "@shen866/vision-bridge-mcp"],
      "env": {
        "PROVIDER": "openai",
        "API_KEY": "your-api-key",
        "BASE_URL": "https://api.openai.com/v1",
        "MODEL": "gpt-4o"
      }
    }
  }
}
```

#### Gemini Native generateContent

```json
{
  "mcpServers": {
    "vision_bridge": {
      "command": "npx",
      "args": ["-y", "@shen866/vision-bridge-mcp"],
      "env": {
        "PROVIDER": "gemini",
        "API_KEY": "your-api-key",
        "BASE_URL": "https://generativelanguage.googleapis.com",
        "MODEL": "gemini-1.5-pro-latest"
      }
    }
  }
}
```

### 使用

在 Claude Code / Claude Desktop 中发送图片或引用图片路径后,Claude 会自动调用 `describe_image` 等工具获取多模态模型对图片的文字描述,然后将描述交给纯文本模型继续处理。

如果 Claude Code 经常直接把图片发给模型导致报错,可以在项目根目录创建 `.claude/CLAUDE.md`:

```markdown
当前模型不支持图片输入。当用户发送图片时,必须调用 vision_bridge MCP 工具处理,不要直接传给模型。
```

## 环境变量

| 变量 | 说明 | 默认值 |
|------|------|--------|
| `PROVIDER` | API 格式:`anthropic`、`openai`、`gemini` | `anthropic` |
| `API_KEY` | API 密钥 | **必填** |
| `BASE_URL` | API 基础地址 | **必填** |
| `ENDPOINT` | API 端点路径 | 取决于 provider |
| `MODEL` | 模型名称 | **必填** |
| `MAX_TOKENS` | 最大输出 token 数 | `4096` |
| `API_VERSION` | Messages API 版本 | `2023-06-01` |
| `AUTH_HEADER` | Messages API 认证方式:`x-api-key` 或 `bearer` | `x-api-key` |

## 协议

基于 MCP(Model Context Protocol)JSON-RPC 2.0,通过 stdio 进行通信。

## 401 排查

如果返回 401,通常是认证头不对。各 provider 默认认证方式如下:

- `anthropic`:`x-api-key` + `anthropic-version`
- `openai`:`Authorization: Bearer`
- `gemini`:URL query parameter `?key=`

如果 Messages API 网关需要 Bearer Token,可设置:

```json
"AUTH_HEADER": "bearer"
```

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: ask_about_image answers specific questions, describe_image generates a detailed description, and extract_image_text performs OCR. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow the verb_noun pattern with underscores, using clear and distinct verbs (ask, describe, extract). The naming is consistent throughout.

Tool Count5/5

With three tools, the server is well-scoped for image understanding tasks. Each tool serves a clear function without being excessive or insufficient.

Completeness4/5

The tools cover key image understanding capabilities: description, OCR, and question answering. Minor gaps like image classification or segmentation exist, but the set is largely complete for its implied purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues