Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Multimodal Proxy

БесплатноНе проверен

为纯文本主模型提供多模态能力的MCP服务器,通过外包图像、视频和音频分析给外部多模态模型并回填文字结果。

GitHubEmbed

Описание

为纯文本主模型提供多模态能力的MCP服务器,通过外包图像、视频和音频分析给外部多模态模型并回填文字结果。

README

multimodal-proxy-plugin

「纯文本模型第一次能看图——截屏即分析,只在需要时外包」

License: MIT Codex Plugin ZCode Plugin skills.sh

给纯文本 Agent 模型长眼睛——把图像分析、OCR、视频/音频转字幕、图像生成外包给任意 OpenAI 兼容多模态模型

看效果 · 安装 · 触发方式 · 它和同类有什么不同 · 安全边界


你什么时候需要它?

你的主模型是纯文本模型(glm-5.2、deepseek-v4 等),用户却要看图、做 OCR、分析视频—— 主模型"看不见",Agent 客户端还会硬拦截 Ctrl-V 粘贴截图。这个插件就是解决这个痛点: 截屏到剪贴板 → skill 自动落盘 → 外包给多模态模型 → 文字结果回填

触发方式

  • "分析这张图片"
  • "提取图片中的文字(OCR)"
  • "分析一下我刚截的屏"
  • "对比这两张图"
  • "把这段音频转成字幕"
  • "看看剪贴板里的截图"

它和同类有什么不同

维度 同类 vision MCP 本插件
截屏穿透 假定图片能直接传入 剪贴板落盘绕过纯文本 Agent 主模型对图片输入的硬拦截
智能激活 常驻 仅纯文本主模型才激活,多模态模型自动让位
密钥存储 明文 env keychain / env / plaintext 三选一,默认不入仓库
通用性 多数绑单一 provider 任意 OpenAI 兼容 API(OpenAI / Qwen-VL / 火山 doubao / Ollama)

效果示例

demo

纯文本主模型无法看图时,process_multimodal 把图片外包给多模态模型分析:

输入:两张纯色拼接图(图A左红右蓝,图B左蓝右红)

process_multimodal(
  media=["/tmp/mmp_demo_a.png", "/tmp/mmp_demo_b.png"],
  prompts=["这是图A", "这是图B", "对比这两张图的颜色布局差异"]
)

输出真实运行产物,doubao-seed-2.0-lite):

这两张图都是将画面竖直二等分、两色块各占一半的布局,都仅包含红色、蓝色两种颜色,二者布局差异是左右色块的颜色完全互换

  1. 图A:左侧半区为红色,右侧半区为蓝色,是「红在左、蓝在右」的布局;
  2. 图B:左侧半区为蓝色,右侧半区为红色,是「蓝在左、红在右」的布局。

可复现:bash scripts/demo.sh(需已配置 API key)

组成

部分 路径 作用
ZCode 清单 .zcode-plugin/plugin.json ZCode 插件清单(内联 MCP + 变量路径)
MCP server mcp/multimodal_proxy.py 通用多模态代理,3 个工具
Skill skills/multimodal-proxy/SKILL.md 激活规则与使用规范
安装脚本 scripts/install.sh 虚拟环境 + 依赖 + 配置 + 注册
配置工具 scripts/configure.py 写配置文件 + 管理 api_key 存储方式

MCP 工具

save_clipboard_to_file

读取系统剪贴板内容,如果是图片则保存为临时 PNG 文件并返回路径。

用途:绕过纯文本 Agent 主模型对图片输入的硬拦截。用户 Ctrl-V 粘贴截图会被拦截, 但截图仍在系统剪贴板中。本工具从剪贴板读取图片,落盘为文件,返回路径供后续分析。

跨平台支持

平台 实现方式 依赖
macOS osascript(AppleScript 读 «class PNGf» 系统自带
Windows PowerShell + System.Windows.Forms.Clipboard 系统自带
Linux (Wayland) wl-paste 需安装 wl-clipboard
Linux (X11) xclip 需安装 xclip

工作流:

  1. 用户先截图到剪贴板(macOS: Ctrl-Shift-Cmd-4,Windows: Win-Shift-S,Linux: 桌面截图工具)
  2. 在 Agent 客户端里输入文本指令,如"分析一下我刚截的屏"(不要 Ctrl-V 粘贴图片)
  3. 主模型调用本工具 → 剪贴板图片落盘 → 返回路径
  4. 主模型调用 process_multimodal([路径], [提示词]) 完成分析

process_multimodal(核心)

接收任意数量的图片/视频/音频 + 提示词,按顺序组装成多模态请求交给模型处理。

process_multimodal(
  media: list[str],         # 媒体路径或URL列表(图片/视频/音频可混用)
  prompts: list[str],       # 提示词列表(0~n条,作为任务指令)
  model: str | None,        # 可选,覆盖默认模型
  provider: str | None      # 可选,覆盖默认 provider
)

用法:

  • 单图分析:process_multimodal(["/img.png"], ["描述这张图"])
  • 多图对比:process_multimodal(["/a.png", "/b.png"], ["对比这两张图"])
  • OCR 提取:process_multimodal(["/scan.jpg"], ["提取图中所有文字"])
  • 截屏分析:先 save_clipboard_to_file() 拿到路径,再 process_multimodal([路径], ["分析"])

generate_image

根据文字提示词生成图片。需配置 image_generation 模型。

模型能力(已验证 doubao-seed-2.0-lite, Coding Plan)

媒体类型 支持 说明
图片 image_url 支持多图对比
视频 video_url 需可访问 URL
音频 input_audio ⚠️ lite 260428 元数据标注支持,但 Coding Plan key 实测被拒,需控制台确认开通

安装

cd multimodal-proxy-plugin
bash scripts/install.sh

安装脚本自动探测宿主(可通过 --target zcode|codex|auto 指定,默认 auto):

宿主 探测条件 注册动作
Codex 存在 codex CLI symlink + codex plugin add
ZCode 存在 ~/.zcode/cli/ plugins.dirs(插件根路径加入 config.json)
两者都没有 仅生成 .mcp.json,提示手动配置

交互式引导输入 provider、base_url、模型名,以及 api_key 存储方式(三选一)

选项 方式 说明
1 keychain 存入 macOS 钥匙串,配置文件无明文(推荐,仅 macOS)
2 plaintext 明文写入配置文件(仅兼容场景使用)
3 env 从环境变量读取,配置文件只记录变量名

macOS 默认使用 keychain,其他平台默认使用 env;plaintext 仅在明确选择时启用。安装脚本通过标准输入传递密钥,并通过系统钥匙串接口保存,不会将密钥置于进程参数中。默认值已针对火山引擎 Coding Plan 预填。

配置文件

~/.config/multimodal-proxy/config.json,api_key 有三种存储方式,由 api_key_store 字段指定,严格匹配不回退:

keychain(仅 macOS)

{
  "default_provider": "volcengine",
  "providers": {
    "volcengine": {
      "base_url": "https://ark.cn-beijing.volces.com/api/coding/v3",
      "api_key_store": "keychain",
      "keychain_service": "multimodal-proxy",
      "keychain_account": "volcengine",
      "models": {"vision": "doubao-seed-2.0-lite"}
    }
  }
}

plaintext

仅在无法使用 keychain 或环境变量时使用。配置文件权限会设为仅当前用户可读写(0600),但仍不建议将该文件放入同步盘、备份文件或版本控制。

{
  "default_provider": "volcengine",
  "providers": {
    "volcengine": {
      "base_url": "https://ark.cn-beijing.volces.com/api/coding/v3",
      "api_key_store": "plaintext",
      "api_key": "ark-xxxxxxxxxxxx",
      "models": {"vision": "doubao-seed-2.0-lite"}
    }
  }
}

env

{
  "default_provider": "volcengine",
  "providers": {
    "volcengine": {
      "base_url": "https://ark.cn-beijing.volces.com/api/coding/v3",
      "api_key_store": "env",
      "api_key_env": "MULTIMODAL_PROXY_API_KEY_VOLCENGINE",
      "models": {"vision": "doubao-seed-2.0-lite"}
    }
  }
}

使用 env 模式时,需在运行 Agent 客户端前设置环境变量:

export MULTIMODAL_PROXY_API_KEY_VOLCENGINE='ark-xxxxxxxxxxxx'
# 建议写入 ~/.zshrc 或 ~/.bashrc

skill 激活规则

  1. 主模型是纯文本模型且有多模态需求 → 激活 MCP
  2. 主模型是多模态模型 → 不激活,除非用户显式要求外包
  3. 不确定 → 不自动激活,优先由主模型原生处理;主模型无法接收媒体时再询问用户是否外包

优先级:用户明确要求外包 > 已确认纯文本模型 > 主模型原生多模态 > 能力不明时不自动代理

安全边界

  • 本插件会把图片/视频/音频发送到你配置的外部多模态 API(默认火山引擎),不会发往任何第三方。处理敏感截图前请确认你的 provider 数据政策。
  • api_key 三选一存储:macOS 默认 keychain(不入仓库)、env(只记变量名)、plaintext(仅兼容场景,文件权限 0600)。明文密钥绝不应提交到版本控制。
  • 剪贴板工具只读取、落盘临时文件,不修改、不上传剪贴板文本内容。
  • 不会执行任何删除、git 提交或越权操作。

测试

# 端到端测试(需已配置)
.venv/bin/python scripts/test_e2e.py

验证场景:主模型 glm-5.2 + 图片分析转 doubao-seed-2.0-lite。

from github.com/macgaf/multimodal-proxy-plugin

Установка Multimodal Proxy

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/macgaf/multimodal-proxy-plugin

FAQ

Multimodal Proxy MCP бесплатный?

Да, Multimodal Proxy MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Multimodal Proxy?

Нет, Multimodal Proxy работает без API-ключей и переменных окружения.

Multimodal Proxy — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Multimodal Proxy в Claude Desktop, Claude Code или Cursor?

Открой Multimodal Proxy на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Multimodal Proxy with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development