mimo-vision-mcp

mimo-vision-mcp

Gives text-only LLMs vision capabilities via MCP, using vision models like Xiaomi MiMo-V2.5 to analyze images, describe content, and extract text through tools such as analyze_image, describe_image, and extract_text_from_image.

Category
Visit Server

README

mimo-vision-mcp

Give text-only LLMs vision capability through MCP, powered by vision models like Xiaomi MiMo-V2.5.

通过 MCP(Model Context Protocol),把视觉模型(如小米 MiMo-V2.5)的图像理解能力暴露给不具备多模态能力的文本 LLM。文本模型遇到图片/截图/图片路径时,可主动调用 analyze_imagedescribe_imageextract_text_from_image 等工具获得视觉能力。

Python License CI

🚀 一键启动(新手也能 1 分钟上手,无需敲任何命令)

本项目内置 WebUI 一键启动,全程鼠标操作,自动完成所有环境配置,零命令行门槛:

  1. 下载 / 克隆本项目到本地
  2. 双击 start-webui.bat(Windows)——脚本会自动创建 .env(从 .env.example)、自动装环境/依赖、启动服务、并自动打开浏览器
  3. 浏览器打开后,在网页里填入你的 API Key → 点「应用到 CLI」,或直接拖一张图片进去 → 选个视觉模型 → 点「预览测试」,即可看到视觉模型"看图说话"

首次启动会自动安装依赖(需联网,约 1~2 分钟),之后双击即秒开。 完全不需要懂 Python、不需要手敲 pip、不需要手动创建 .env——脚本全自动完成。

命令行里的文本 LLM 使用视觉能力的完整接入见下方 接入 opencode

原理

文本模型负责"调度",视觉模型负责"看",MCP 是把两者接起来的接口——图片数据本身不经过文本模型

用户给图片路径/URL
  → ① 文本 LLM 根据工具列表 + 调用指引,决定调用 analyze_image
  → ② opencode / 任意 MCP 客户端(stdio)
  → ③ mimo-vision MCP server(图片归一化 + 转发请求)
  → ④ 视觉模型(MiMo-V2.5 等,经 OpenCode Go / 自定义供应商)真正"看"图
  → ⑤ 文本结果原路返回,文本模型转述给用户

特性

  • 一键启动:双击 start-webui.bat 即可,自动装依赖、起服务、开浏览器,新手零门槛
  • 开箱即用:默认接入 OpenCode Go,填一个 API Key 即可开始,也可切换小米官方 / 任意自定义供应商
  • 基于 OpenAI 兼容协议,stdio 本地传输,可接入 opencode / Claude Desktop / Cursor 等任意 MCP 客户端
  • 图片输入灵活:本地路径 / http(s) URL / base64 data URI / 纯 base64 均可
  • 支持多图输入、图片格式自动识别(JPEG/PNG/GIF/WebP/BMP)、50MB 限制校验
  • 自动按模型选择 API 协议:gpt-*/grok-* 走 Responses API,其余走 chat/completions(可强制指定)
  • 内置 WebUI 配置面板:可视化选模型、预览测试,选择即同步到 CLI,无需重启
  • 无 API key 时返回友好错误提示,不会崩溃

目录结构

mimo-vision-mcp/
├── mimo_vision_mcp/
│   ├── config.py           # 配置读取(.env 实时重读)+ 应用到 MCP
│   ├── image_loader.py     # 图片输入归一化 + MIME 探测
│   ├── providers.py        # 供应商注册表 + call_vision(chat/responses 适配)
│   └── server.py           # FastMCP server + 3 个工具
├── webui/                  # WebUI 配置面板(FastAPI + 单页 HTML)
├── tests/                  # 单元测试
├── .github/workflows/ci.yml
├── opencode.example.json   # opencode 接入配置示例
├── AGENTS.md               # 文本模型的调用指引
├── start-webui.bat           # 🚀 一键启动(Windows,双击即用)
├── LICENSE
└── pyproject.toml

安装

python -m venv .venv
# Windows: .\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.venv/bin/python -m pip install -e ".[dev]"

配置 API Key

本项目默认走 OpenCode Go 套餐调用 MiMo-V2.5(模型 mimo-v2.5,OpenAI 兼容端点 https://opencode.ai/zen/go/v1)。

  1. opencode.ai/auth 订阅 Go,复制 API Key
  2. .env.example 复制为 .env 并填写:
    MIMO_API_KEY=你的-opencode-go-key
    

也可通过环境变量覆盖(config.py 每次调用实时重读 .env):

变量 说明 默认值
MIMO_API_KEY API Key(也可用 OPENAI_API_KEY
MIMO_PROVIDER 供应商 ID opencode-go
MIMO_MODEL 视觉模型 ID mimo-v2.5
MIMO_BASE_URL OpenAI 兼容端点 https://opencode.ai/zen/go/v1
MIMO_API_STYLE chat / responses(空则自动) 自动
MIMO_MAX_TOKENS 单次输出上限 4096
MIMO_TIMEOUT 请求超时(秒) 120

切换视觉模型:OpenCode Go 里更快的多模态模型可把 MIMO_MODEL 改成 gpt-5.6-luna(走 /responses)或 minimax-m3。注意 mimo-v2.5-pro纯文本模型,不能看图。

运行 MCP server

# 方式一:控制台脚本
mimo-vision-mcp
# 方式二:模块运行
python -m mimo_vision_mcp.server

接入 opencode

参考 opencode.example.jsonmimo-vision 注册为本地 stdio MCP server:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mimo-vision": {
      "type": "local",
      "command": ["<你的python路径>", "-m", "mimo_vision_mcp.server"],
      "enabled": true,
      "environment": { "MIMO_API_KEY": "{env:MIMO_API_KEY}" }
    }
  },
  "experimental": { "mcp_timeout": 120000 }
}

注意experimental.mcp_timeout(默认 30s)控制 MCP 工具调用超时。视觉请求可能耗时几十秒,需调到 120s 以上;不要mcp.mimo-vision 里单独设置 timeout,它会覆盖 mcp_timeout 并导致超时。配置改动后需重启 opencode 生效。

本项目还附带 AGENTS.md(文本模型的调用指引),可通过全局配置 "instructions": ["<路径>/AGENTS.md"] 注入每个会话,让纯文本模型遇到图片时主动调用工具。

工具说明

工具 说明
analyze_image(images, prompt, detail?) 通用图片问答,可多图
describe_image(images, detail?) 详细描述图片内容
extract_text_from_image(images, detail?) 提取图中文字(OCR)

images 每项支持:

  • 本地绝对路径:C:/Users/xx/Pictures/a.png
  • 公网 URL:https://example.com/a.jpg
  • base64 data URI:data:image/png;base64,....
  • 纯 base64 字符串

返回 JSON:{ "result": "...", "error": "", "model": "...", "usage": {...} }

WebUI(交互式前端 · 一键启动)

新手首选入口:图形化界面,上传图片、选模型、看效果,全鼠标操作。

一键启动(最简单,无需懂任何命令)

双击 start-webui.bat(Windows)即可:

  1. 脚本自动检查/创建环境、自动安装依赖
  2. 自动启动服务并自动打开浏览器
  3. 若服务已在运行则直接打开浏览器,不会重复启动

非 Windows 用户手动启动:python -m pip install -e ".[web]" && python -m webui.app,然后浏览器打开 http://127.0.0.1:8000(端口可用 MIMO_WEBUI_PORT 修改)。

界面功能

  • 顶部「CLI / MCP 当前生效模型」显示命令行 LLM 实际使用的供应商/模型/风格
  • 选好模型后点**「应用到 CLI(同步到 MCP)」**,配置写入 .env无需重启,CLI 下次调用即用新模型
  • 下方「预览测试(不影响 CLI)」用于先试效果
  • API Key 存于浏览器 localStorage;「应用到 CLI」时可一并写入 .env

测试

python -m pytest -q

常见问题

  • 我不会编程 / 不想敲命令怎么办?:双击 start-webui.bat 即可,脚本会自动创建 .env、装依赖、起服务、开浏览器,全程鼠标操作
  • API Key 填在哪?:clone 后没有 .env(仓库只含空模板 .env.example)。双击启动脚本会自动生成 .env,之后在网页里填 Key 并点「应用到 CLI」,或直接编辑 .envMIMO_API_KEY
  • 返回"未配置 API Key":在 .env 配置 MIMO_API_KEY(或直接在 WebUI 里填写并「应用到 CLI」)
  • 图片格式不支持:仅支持 JPEG/PNG/GIF/WebP/BMP
  • base64 输入报"无法解析":确认输入为合法 base64,且格式在支持范围内
  • MCP 工具调用超时:将 experimental.mcp_timeout 调到 120000ms 以上

许可证

MIT

参考

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured