image-recognition-mcp

image-recognition-mcp

Gives vision-less LLMs the ability to recognize clipboard screenshots and images by proxying to an OpenAI-compatible vision model.

Category
访问服务器

README

clipboard-vision-mcp

中文 | English

如果你的编码助手或 AI 工具用的是纯文本模型,每次截图都得手动描述或者切到带视觉的工具里处理,这个 MCP 服务就是来解决这个问题的。

只需注册一次,它就能让没有视觉能力的 LLM 看懂你剪贴板里的截图——自动把图片转给 OpenAI-compatible 视觉模型,拿回文字描述、OCR 结果或相关分析。

LLM(无视觉)──MCP/stdio──► clipboard-vision-mcp ──OpenAI-compatible API──► 视觉模型 ──► 文本结果

功能

  • 四个专用工具:
    • analyze_clipboard_image:通用截图分析,适合"这张图里有什么"这类问题
    • extract_clipboard_text:偏 OCR,专门提取截图中的文字,保留换行和代码格式
    • diagnose_clipboard_error:调试利器,分析报错截图、堆栈、终端输出或异常的 UI 状态
    • recognize_image:最灵活的工具,支持剪贴板、本地文件、URL、data URL 和 base64 图片输入
  • 四种图片来源:
    • 当前剪贴板图片(默认,也是最常用的方式)
    • 本地文件路径,例如 /Users/x/a.png./pic.jpg~/Desktop/shot.png
    • HTTP/HTTPS URL,直接传给 OpenAI-compatible API
    • Base64 字符串或 data:image/...;base64,... data URL
  • 可配置 OpenAI-compatible provider、模型(默认 gpt-4o-mini)、detail 级别、最大 token 数和超时时间
  • 发送前校验本地、base64 和剪贴板图片的格式与大小
  • 支持关闭本地文件输入,或用 allowlist 限制可读取的目录
  • stdio transport,兼容任意 MCP host(ZCode、Claude Desktop 等)

前置要求

  • Node.js ≥ 20
  • 一个能访问视觉模型的 OpenAI-compatible API key
  • 剪贴板图片读取工具:
    • macOS:pngpastebrew install pngpaste
    • Windows:系统内置 PowerShell(powershell.exe
    • Linux:Wayland 用 wl-clipboardwl-paste,X11 用 xclip

安装

从 npm 安装:

npm install -g clipboard-vision-mcp

或从源码运行:

git clone <this-repo> image-recognition-mcp
cd image-recognition-mcp
npm install
npm run build

配置

复制 .env.example.env,填入你的 key。服务启动时会自动读取项目根目录的 .env,同时保留 MCP host 已传入的环境变量。

cp .env.example .env
环境变量 默认值 说明
OPENAI_API_KEY 必填 OpenAI-compatible API key
OPENAI_MODEL gpt-4o-mini 视觉模型名
OPENAI_BASE_URL OpenAI 默认地址 代理或兼容网关地址
OPENAI_TIMEOUT_MS 60000 请求超时时间(毫秒)
LOCAL_FILE_INPUT_ENABLED true 设为 false 可禁用本地文件路径输入
LOCAL_FILE_ALLOWED_ROOTS 本地路径 allowlist,逗号分隔,例如 /tmp,~/Pictures;空表示允许所有路径

Provider 示例:

# OpenAI
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini

# Gemini OpenAI-compatible 端点
OPENAI_API_KEY=...
OPENAI_MODEL=gemini-2.5-flash
OPENAI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai

# Qwen / DashScope OpenAI-compatible 端点
OPENAI_API_KEY=...
OPENAI_MODEL=qwen-vl-plus
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

# LiteLLM 或自托管 OpenAI-compatible 网关
OPENAI_API_KEY=...
OPENAI_MODEL=your-vision-model
OPENAI_BASE_URL=http://localhost:4000/v1

本地运行

npm run dev      # tsx 直接运行,无需构建
# 或
npm run build && npm start

服务通过 stdio 收发 MCP 消息——从 stdin 读 JSON-RPC,向 stdout 写回响应。

注册到 ZCode

在 ZCode MCP 配置中添加一项。配置文件路径为 ~/.zcode/v2/config.json,找到 mcpServers 字段并加入以下内容。

{
  "mcpServers": {
    "clipboard-vision": {
      "command": "npx",
      "args": ["-y", "clipboard-vision-mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-xxxxxxxxxxxxxxxx",
        "OPENAI_MODEL": "gpt-4o-mini"
      }
    }
  }
}

如果你从本地 clone 的源码运行,则改用 command: "node",并把 args 指向 dist/index.js 的绝对路径。

重启 ZCode,截个图复制到剪贴板,然后可以这样问:

分析我剪贴板里的截图,上面有什么文字?

Agent 通常会调用 analyze_clipboard_image,或使用默认剪贴板输入的 recognize_image,然后用返回的文字内容继续工作。

注册到 Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "clipboard-vision": {
      "command": "npx",
      "args": ["-y", "clipboard-vision-mcp"],
      "env": { "OPENAI_API_KEY": "sk-..." }
    }
  }
}

工具说明

analyze_clipboard_image

参数 类型 必填 默认值 说明
prompt string Describe this image in detail, including any visible text (OCR). 对图片的提问或指令
detail "auto" | "low" | "high" auto 视觉 detail 级别,low 更快更省 token
maxTokens integer 1024 响应最大 token 数

读取当前剪贴板中的图片。

extract_clipboard_text

参数 类型 必填 默认值 说明
prompt string Extract all visible text from this image. Preserve line breaks and code formatting when possible. 对图片的提问或指令
detail "auto" | "low" | "high" auto 视觉 detail 级别,low 更快更省 token
maxTokens integer 1024 响应最大 token 数

读取当前剪贴板中的图片,默认 prompt 针对 OCR 场景优化。

diagnose_clipboard_error

参数 类型 必填 默认值 说明
prompt string Analyze this screenshot for error messages, stack traces, terminal output, or UI failure states. Explain the likely cause and actionable next steps. 对图片的提问或指令
detail "auto" | "low" | "high" auto 视觉 detail 级别,low 更快更省 token
maxTokens integer 1024 响应最大 token 数

读取当前剪贴板中的图片,默认 prompt 针对错误诊断优化。

recognize_image

参数 类型 必填 默认值 说明
image string "clipboard" 路径 / URL / data URL / base64 / "clipboard"
prompt string Describe this image in detail, including any visible text (OCR). 对图片的提问或指令
detail "auto" | "low" | "high" auto 视觉 detail 级别,low 更快更省 token
maxTokens integer 1024 响应最大 token 数

返回 { content: [{ type: "text", text: "..." }] },失败时返回 isError: true 和错误信息。

本地文件、data URL、原始 base64 和剪贴板输入必须是 PNG、JPEG、GIF、WebP 或 BMP 格式,单张不超过 20 MiB。HTTP/HTTPS URL 会作为 URL 直接传给 OpenAI-compatible API。

项目结构

clipboard-vision-mcp/
├── package.json
├── tsconfig.json
├── .env.example
└── src/
    ├── index.ts              # MCP server 入口,注册工具和 stdio transport
    ├── config.ts             # 加载和校验 env 配置
    ├── tools/
    │   └── recognize.ts      # 视觉工具定义和 handler
    ├── providers/
    │   └── openai.ts         # OpenAI-compatible 视觉调用
    └── inputs/
        ├── index.ts          # resolveImage() 分发器
        ├── types.ts
        ├── image.ts          # 图片 MIME、大小、magic-byte 校验
        ├── file.ts           # 本地路径转 base64
        ├── url.ts            # HTTP(S) URL 透传
        ├── base64.ts         # base64 / data URL
        └── clipboard.ts      # macOS / Windows / Linux 剪贴板图片读取

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选