mimo-vision-mcp
OfficialProvides image recognition capabilities using Xiaomi's MiMo v2.5 multimodal model, allowing text-based agents to describe images, perform multi-image analysis, and extract text from images.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mimo-vision-mcpdescribe this screenshot: C:\Users\me\Desktop\bug.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mimo-vision-mcp
MCP Server:用小米 MiMo v2.5 多模态模型,为纯文本主模型(如 deepseek-v4-flash)补齐图像识别能力。
主模型没有视觉能力时,通过本 Server 把截图、UI 图、报错图、设计稿、照片等转成文字描述,
主模型据此继续推理。二次开发自 Mriestac/mimo-image-recognition-mcp(选型记录见下文)。
功能
工具 | 说明 |
| 单图理解(默认给详细描述) |
| 多图联合分析(前后对比 / A/B 方案) |
| 纯 OCR,保留换行缩进 |
| 只做本地校验,不调 API(排查输入问题) |
| 查看脱敏配置 |
图片输入支持:本地路径、http(s):// URL、file://、data:image/...;base64,...;
格式仅限 jpg/jpeg/png/gif/webp/bmp,单张 ≤10MB(官方限制)。
Related MCP server: DeepSeek Eyes
架构
主模型(纯文本)─ 图片路径/URL → MCP 工具
→ server 读图转 base64 → POST https://api.xiaomimimo.com/v1/chat/completions (mimo-v2.5)
→ 纯文本描述 → 主模型继续推理安装
cd <仓库路径> # 例如 C:\path\to\mimo-vision-mcp
uv sync --dev # 创建 .venv 并安装依赖(mcp[cli]<2、httpx、python-dotenv)
Copy-Item .env.example .env
# 编辑 .env 填入 MIMO_API_KEY注册到 Claude Code(全局)
cd <仓库路径> # 例如 C:\path\to\mimo-vision-mcp
$key = ((Get-Content .env | Where-Object { $_ -match '^MIMO_API_KEY=' }) -split '=', 2)[1]
claude mcp add mimo-vision -s user `
-e "MIMO_API_KEY=$key" `
-e "MIMO_BASE_URL=https://api.xiaomimimo.com/v1" `
-e "MIMO_VISION_MODEL=mimo-v2.5" `
-- "$PWD\.venv\Scripts\python.exe" "$PWD\server.py"验证:
claude mcp list # 应列出 mimo-vision
claude mcp get mimo-vision
claude mcp inspect mimo-vision # 协议级连通性自检主会话中需 重启 Claude Code 或 /mcp 重连 后工具才出现。
两种 Key 的差异
Key 类型 | 前缀 |
|
普通按量付费 |
|
|
Token Plan |
|
|
mimo-v2.5-pro 是纯文本推理模型,视觉理解必须用 mimo-v2.5。
使用
主会话中对模型说,例如:
描述这张图:C:\path\to\your\image.png 提取这张报错截图里的文字:C:\path\to\error.png
模型会自动调用对应工具。
验证
uv run --env-file .env pytest tests/test_image_utils.py tests/smoke_test.py # 离线单测
uv run --env-file .env pytest tests/test_api.py # 真实 API 直连踩坑记录
MiMo API 硬性要求:content 数组必须同时包含
image_url与text对象, 角色必须user,否则返回400 Param Incorrect - text is not set(见api_client.build_vision_message)。mcp SDK 2.x 移除了
mcp.server.fastmcp:pyproject 锁定mcp[cli]>=1.2,<2.0。mcp 1.29 lifespan 是构造函数参数(非
@mcp.lifespan_context);工具/资源通过参数注解Context注入。resource 有函数参数会被注册为模板资源(
_templates)而非普通资源,list_resources看不到——配置资源改为无参数函数。认证头用
Authorization: Bearer(base 项目 Mriestac 原用api-key,已修正);单图大小上限按官方改 10MB;补充file://输入支持。
配置项(.env)
变量 | 默认 | 说明 |
| — | 必填 |
|
| Token Plan 需改 |
|
| 视觉模型名 |
|
| 最大输出 token |
|
| 请求超时(秒) |
|
| 是否输出思考过程(更慢) |
|
| 单图上限(10MB) |
选型记录
候选仓库(均已 clone 审阅后删除 _ref/):
选定 base:
Mriestac/mimo-image-recognition-mcp—— 天然用 OpenAIchat/completions格式 +api.xiaomimimo.com,依赖轻(httpx),async 实现,工具/资源写法为标准 FastMCP。备选:
kuohao233/mimo-vision-mcp—— 工具更全(describe/analyze/ocr)但走 Anthropic/v1/messages格式,重写请求层成本高;其工具设计(默认 prompt、OCR 提示词)已借鉴到本项目。
修复自 base 的 3 处问题:认证头、10MB 上限、file:// 支持,并新增 read_image_info 工具与 4 个独立工具拆分。
Available Tools
4 toolsanalyze_imagesA
对多张图片做联合分析,例如前后对比、A/B 方案比较、多帧序列分析。
Args: images: 图片路径或 URL 列表(建议 2-5 张,每张 ≤10MB)。 question: 比较或汇总的指令,例如 "这些截图之间发生了什么视觉变化?" / "这两套 UI 稿风格是否一致?"。
Returns: 联合分析文本。
| Name | Required | Description | Default |
|---|---|---|---|
| images | Yes | ||
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explains input constraints (size, count) and return type (joint analysis text), but does not explicitly mention side effects, safety, or error behavior. This is moderate transparency for an analysis tool that likely has none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured with an intro sentence, Args section, and Returns section. Every line adds value, including practical example questions, without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple two-parameter interface and the presence of an output schema, the description is complete. It covers purpose, parameter semantics, return type, and usage constraints. No critical information about the tool's operation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates by explaining both parameters in detail. It describes images as a list of paths or URLs with practical size/count limits, and question as a comparison or summary instruction with concrete examples, adding significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs joint analysis of multiple images with concrete examples (before/after, A/B comparison, multi-frame sequence). This distinguishes it from sibling tools like describe_image which handle single images, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context through examples and constraints (recommended 2-5 images, each ≤10MB), implying it should be used for comparative or multi-image tasks. However, it does not explicitly name alternatives or state when not to use this tool, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_imageA
识别单张图片并返回文字描述。
适用于截图、UI 图、设计稿、报错图、照片、图表等任意图片。当用户让你"看/读/识别" 一张图片、截图或报错时,调用本工具。请勿用文件读取工具直接读图片(纯文本模型不支持)。
Args: image: 图片的本地路径、http(s):// URL、file:// 或 data:image/...;base64,...。 prompt: 具体要提取什么,越具体越好;留空返回通用描述。
Returns: 图片的文字描述。
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | ||
| prompt | No | 请详细描述这张图片的内容,包括主体、颜色、可见文字、布局结构等。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses supported image sources (local paths, URLs, file://, data URIs) and states that it returns a text description. It does not mention potential limitations or side effects, but for a simple read-only vision tool, this is mostly sufficient. A note about accuracy or model behavior could push it higher.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured into purpose, usage cases, args, and returns. It is front-loaded with the core purpose, and every sentence adds value. The formatting uses clear paragraph breaks and a simple Args list, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no annotations, output schema present), the description covers all necessary aspects: what it does, when to use it, parameter semantics, and return value. It is complete and self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an Args section that explains image formats (本地路径, http(s)://, file://, data:image/...;base64,...) and prompt guidance ('越具体越好;留空返回通用描述'), adding significant value beyond the schema, which has zero descriptions for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '识别单张图片并返回文字描述' – a specific verb (识别) + resource (单张图片) + output (文字描述). It clearly distinguishes from siblings by emphasizing '单张' and '任意图片' coverage, making it unambiguous when this tool should be selected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: '当用户让你"看/读/识别"一张图片...' and provides an exclusion: '请勿用文件读取工具直接读图片'. However, it does not name sibling alternatives like extract_text_from_image or analyze_images, so the distinction from those tools is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_text_from_imageA
纯 OCR:逐字提取图片中的全部文字,保留换行缩进,不做解读。
最适合日志、终端、代码、报错弹窗、文档扫描的截图。
Args: image: 图片的本地路径、http(s):// URL、file:// 或 data:image/...;base64,...。
Returns: 逐字转录的文字内容。
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that it preserves line breaks/indentation and does not interpret content, which goes beyond the obvious 'extract text' behavior. It does not mention limitations like image quality sensitivity or language support, but for a simple OCR tool the key behavioral aspects are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a one-line core definition, a practical use-case sentence, and clearly labeled Args/Returns sections. Every sentence adds value, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with a simple text return, the description covers the purpose, input formats, output behavior, and use cases. The presence of an output schema further reduces the need to explain return details. It is self-contained and complete for typical OCR usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only gives 'image' as a required string with zero description. The description fully compensates by enumerating accepted formats: local path, http(s) URL, file://, and base64 data URI. This is essential for correct invocation and makes the parameter semantics complete despite 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states '纯 OCR:逐字提取图片中的全部文字' (pure OCR: extract all text character-by-character), which is a specific verb+resource with clear scope. It also adds '不做解读' (no interpretation), distinguishing it from sibling tools like describe_image or analyze_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists clear use cases (logs, terminal, code, error dialogs, document scans), giving specific context for when to use it. However, it does not explicitly name alternative tools for when interpretation is needed; it only implies this through '不做解读', so it lacks explicit exclusions or alternative tool recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_image_infoA
只校验图片输入是否可被识别(不调用 MiMo API),返回格式信息,用于排查图片输入问题。
Args: image: 图片的本地路径、http(s):// URL、file:// 或 data:image/...;base64,...。
Returns: 校验结果与图片 MIME 类型。
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it only validates (read-only) and does not call MiMo API, indicating it's a lightweight, non-invasive operation. It also states the return type (validation result and MIME type), but omits potential error behavior or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured. It begins with a clear one-sentence summary, then provides organized Args and Returns sections. Every part earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with one parameter and an output schema, the description is complete. It explains the purpose, input format, and return concept. Since an output schema exists, detailed return fields are not required in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. The Args section fully explains the 'image' parameter, enumerating accepted formats: local path, http(s):// URL, file://, or data:...;base64,... This adds complete meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to validate whether an image input can be recognized and return format information, explicitly noting it does not call the MiMo API. This distinguishes it from sibling tools like describe_image and analyze_images, which likely perform deeper analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: for troubleshooting image input issues. It implies this is the diagnostic tool to use before attempting more complex operations, but it does not explicitly mention alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.2.0- First observed
analyze_images - First observed
describe_image - First observed
extract_text_from_image - First observed
read_image_info
TDQS
Each tool has a clear, distinct purpose: single-image description, multi-image comparison, OCR text extraction, and input validation. No overlap or ambiguity between them.
All tool names follow a consistent verb_noun snake_case pattern (describe_image, analyze_images, extract_text_from_image, read_image_info), making the naming pattern predictable.
4 tools is well-scoped for an image vision server. Each tool addresses a distinct need without unnecessary padding, making the set easy to navigate.
The tool surface covers the core vision tasks: describing images, analyzing multiple images, OCR, and input validation. There are no obvious missing operations for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for MiniMax H3 multimodal video generation
MCP server for NanoBanana AI image generation and editing
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for image recognition, supporting multiple vision backends (Anthropic, Zhipu, Ollama) to describe, answer questions, and analyze images.3401MIT
- AlicenseAqualityCmaintenanceAn MCP server that grants image recognition to text-only models like DeepSeek by forwarding images to vision models and returning text descriptions. Supports clipboard, pasted session images, and batch folder image recognition.53MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for image recognition and OCR via OpenAI-compatible vision APIs, supporting local files, URLs, and data URLs. Enables natural language image description and text extraction.212MIT
- AlicenseNot gradedqualityCmaintenanceA universal MCP server that adds image recognition and OCR capabilities to text-only LLMs like DeepSeek, supporting any OpenAI-compatible multimodal provider.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jack4862/mimo-vision-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server