Skip to main content
Glama
Jsliu28
by Jsliu28

opencode-vision-mcp

不支持多模态的模型(如 DeepSeek)提供"看图"能力的完整解决方案:vision MCP server + opencode 粘贴落盘插件

让 DeepSeek 等纯文本模型也能直接看懂你粘贴/引用的图片:

你在对话框粘贴图片
  ↓ 插件 vision-paste.js 拦截(chat.message hook)
图片自动落盘到本地文件
  ↓ 插件把图片 part 改写为"仅模型可见"的路径指引
模型读到路径 → 调用 vision_analyze_image 工具
  ↓ vision MCP server 读取图片 → 转发给多模态后端
通义千问 Qwen-VL / 豆包 / GLM-4V 返回文字描述
  ↓
模型把识别结果转达给你

图片字节全程不进入主模型上下文——主模型只接触"路径字符串"和"文字描述",不会被 base64 污染。


功能特性

  • 🖼️ 粘贴即识别:opencode 对话框直接粘贴图片,自动落盘并识别,无需手动保存路径

  • 🔄 多后端可切换:通义千问 Qwen-VL / 豆包 / GLM-4V,环境变量切换或单次调用覆盖

  • 🧮 结果缓存:同图同参数重复识别直接命中缓存,节省 API 费用(默认 128 条 / 1 小时)

  • 🔁 自动重试:429 限流 / 5xx 服务端错误指数退避重试(默认 2 次)

  • 🖼️ 多图对比:一次传入多张图片做对比分析

  • 🔒 Key 安全:API key 仅存本地 .env,不进入代码库


Related MCP server: image-recognition-mcp

目录结构

opencode-vision-mcp/
├── server.py              # vision MCP server 主程序(stdio 传输)
├── plugins/
│   └── vision-paste.js    # opencode 插件:粘贴图片自动落盘
├── requirements.txt       # Python 依赖
├── .env.example           # 环境变量模板
├── README.md              # 本文件
└── LICENSE                # MIT

安装

1. 环境要求

  • Python >= 3.10

  • opencode(仅插件需要)

  • 至少一个多模态后端的 API key(见下表)

2. 克隆并安装 MCP server

git clone https://github.com/Jsliu28/opencode-vision-mcp.git
cd opencode-vision-mcp

# 创建虚拟环境并安装依赖
python -m venv .venv
# Windows:
.\.venv\Scripts\Activate.ps1
# macOS/Linux:
source .venv/bin/activate

pip install -r requirements.txt

# 配置 API key
cp .env.example .env
# 编辑 .env,填入你的 key(见下节)

3. 配置 API key

复制 .env.example.env 后填写。至少配置一个后端即可;配置多个后可用 provider 参数切换。

标识

名称

API key 环境变量

默认模型

qwen

通义千问 Qwen-VL

DASHSCOPE_API_KEY

qwen-vl-max

doubao

火山方舟豆包

ARK_API_KEY

doubao-1-5-vision-pro-32k-250115

zhipu

智谱 GLM-4V

ZHIPU_API_KEY

glm-4v-plus

Key 申请地址:

4. 安装 opencode 插件

plugins/vision-paste.js 复制到 opencode 插件目录:

# Windows
copy plugins\vision-paste.js %USERPROFILE%\.config\opencode\plugins\

# macOS/Linux
cp plugins/vision-paste.js ~/.config/opencode/plugins/

重启 opencode 生效。


配置到 opencode

编辑 ~/.config/opencode/opencode.json

{
  "mcp": {
    "vision": {
      "type": "local",
      "command": ["python", "C:/你的路径/opencode-vision-mcp/server.py"],
      "enabled": true,
      "environment": {
        "VISION_DEFAULT_PROVIDER": "qwen"
      }
    }
  }
}

说明:API key 在 .env 中,server 启动时会自动读取,无需重复配置在 environment 里(如同时存在,environment 优先)。 如果 python 不在 PATH 中,使用虚拟环境解释器绝对路径,如 C:/你的路径/opencode-vision-mcp/.venv/Scripts/python.exe


使用示例

在 opencode 对话框中

你:粘贴一张图片(或拖拽文件生成 @ 路径)
    "这张图里有什么?"

opencode:自动识别并返回图片描述
你:粘贴两张图片
    "对比这两张截图有什么不同?"

opencode:多图对比分析

直接传路径 / URL

你:分析 C:/Users/me/photo.png
你:识别 https://example.com/cat.jpg

指定后端 / 模型

你:用豆包分析这张图 C:/Users/me/photo.png

工具说明

vision_analyze_image

分析一张或多张图片,返回文字描述。参数:

参数

类型

必填

说明

images

string[]

图片引用列表(1 张或多张),每项为本地绝对路径或 http(s) URL

prompt

string

对图片的问题/指令,默认"详细描述图片内容,多张时对比分析"

provider

string

qwen / doubao / zhipu,覆盖默认后端

model

string

具体模型名,留空用该后端默认模型

temperature

number

0~2,默认 0.3

vision_list_providers

列出当前各后端配置状态(是否已填 API key)与可用模型。


环境变量

变量

默认值

说明

VISION_DEFAULT_PROVIDER

qwen

默认后端:qwen / doubao / zhipu

DASHSCOPE_API_KEY

-

通义千问 key

ARK_API_KEY

-

火山方舟 key

ZHIPU_API_KEY

-

智谱 key

VISION_CACHE_ENABLED

true

是否启用结果缓存

VISION_CACHE_SIZE

128

缓存最大条数

VISION_CACHE_TTL

3600

缓存有效期(秒)

VISION_MAX_RETRIES

2

失败重试次数

VISION_RETRY_BASE_DELAY

1.0

首次重试等待秒数(之后指数翻倍,上限 10s)


常见问题

Q: 粘贴图片后没有任何反应? A: 确认插件已放入 ~/.config/opencode/plugins/ 并重启 opencode;确认 vision MCP 已启用(/mcp 查看)。

Q: 提示"后端未配置"? A: 检查 .env 中对应 key 是否填写正确,vision_list_providers 可查看配置状态。

Q: 图片能上传但识别失败? A: 单张图片限制 20MB;本地路径必须是绝对路径;URL 需可公开访问(部分网站有防盗链)。

Q: 识别结果能缓存吗? A: 默认开启。同图同参数(含 prompt/temperature)重复调用直接命中缓存。

Q: API key 会泄露到代码库吗? A: 不会。.env 已被 .gitignore 排除,key 仅存本地。


License

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • MCP server for Flux AI image generation

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jsliu28/opencode-vision-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server