npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

clipboard-vision-mcp

v0.2.0

Published

Clipboard-first MCP server that gives vision-less LLMs image recognition via OpenAI-compatible vision models.

Readme

clipboard-vision-mcp

LINUX DO

中文 | English

给你的编码助手或 AI 工具装上"眼睛"——注册这个 MCP 服务,它就能看懂你剪贴板里的截图。自动把图片发给 OpenAI-compatible 视觉模型,拿回文字描述或对图片问题的回答。

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

快速开始

1. 准备运行环境

需要 Node.js ≥ 20,以及一个能访问视觉模型的 OpenAI-compatible API key(可在下面的 MCP Host 配置中填入)。这里的 OPENAI_* 变量名只是沿用 OpenAI-compatible 接口习惯,不代表只能使用 OpenAI 官方模型。

最简单的用法是直接在 MCP Host 配置里用 npx -y clipboard-vision-mcp,不需要提前全局安装。想先在本机装好命令,也可以执行:

npm install -g clipboard-vision-mcp

从源码调试时再 clone 仓库运行:

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

2. 准备剪贴板工具

系统需要能读取剪贴板中的图片:

  • macOS:安装 pngpastebrew install pngpaste
  • Windows:系统内置 PowerShell,无需额外安装
  • Linux Waylandwl-clipboardwl-paste
  • Linux X11xclip

3. 配置 MCP Host

在你的 MCP Host(ZCode、Claude Desktop 等)配置文件中找到 mcpServers 字段,添加以下内容。

下面用 Qwen / DashScope 举例;如果你用 Gemini、LiteLLM、one-api、New API 或其他 OpenAI-compatible 网关,只需要替换 OPENAI_API_KEYOPENAI_MODELOPENAI_BASE_URL

{
  "mcpServers": {
    "clipboard-vision": {
      "command": "npx",
      "args": ["-y", "clipboard-vision-mcp"],
      "env": {
        "OPENAI_API_KEY": "your-api-key",
        "OPENAI_MODEL": "qwen-vl-plus",
        "OPENAI_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1"
      }
    }
  }
}

如果你确实使用 OpenAI 官方接口,可以删掉 OPENAI_BASE_URL,并把模型改成支持视觉的 OpenAI 模型,例如 gpt-4o-mini

配置路径参考:ZCode 在 ~/.zcode/v2/config.json,Claude Desktop 在 ~/Library/Application Support/Claude/claude_desktop_config.json

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

4. 验证

复制一张截图到剪贴板,然后向你的 AI 助手提问:

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

如果 MCP Host 已正确加载服务,助手会调用默认读取剪贴板的 recognize_image,然后返回图片内容。

功能

  • 单个通用工具 recognize_image,支持剪贴板、本地文件、URL、data URL 和 base64 图片
  • 通过 prompt 自定义问题,例如描述图片、提取文字或询问截图细节
  • 四种图片来源:剪贴板(默认)、本地文件路径、HTTP(S) URL、base64 / data URL
  • 可配置 OpenAI-compatible provider、模型(默认 gpt-4o-mini)、detail 级别、最大 token 数和超时
  • 发送前校验本地、base64 和剪贴板图片的格式与大小
  • 支持关闭本地文件输入,或用 allowlist 限制可读取的目录
  • stdio transport,兼容任意 MCP Host

配置项

除在 MCP Host 的 env 中直接设置外,也支持项目根目录的 .env 文件:

cp .env.example .env

服务启动时会自动加载 .env,同时保留 MCP Host 已传入的环境变量。

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

Provider 示例:

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

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

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

# OpenAI 官方接口
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini

工具说明

recognize_image

| 参数 | 类型 | 必填 | 默认值 | 说明 | | --- | --- | --- | --- | --- | | image | string | 否 | "clipboard" | 路径 / URL / data URL / base64 / "clipboard" | | prompt | string | 否 | Describe this image in detail, including any visible text. | 对图片的提问或指令 | | 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。

本地运行

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

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

项目结构

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