There's an issue with the selected model (mimo-v2.5-pro). It may not exist or you may not have access to it.【已解决】

解决 Claude Code 接入 MIMO 模型后无法识别图片、音频、视频的问题

从模型限制到 MCP 开发,完整记录我的解决方案

问题背景

最近我在 Claude Code 中接入了小米的 MIMO 大模型,遇到了和 这位博主 类似的问题:

MIMO-v2.5-pro 无法识别多媒体文件。

当我尝试发送图片、音频或视频时,模型要么报错:

There's an issue with the selected model (mimo-v2.5-pro).
It may not exist or you may not have access to it.

要么直接忽略文件内容,只回复文本部分。这对于需要处理多媒体内容的场景来说,几乎是致命的。

问题排查

第一步:理清模型功能分类

在排查问题之前,必须先搞清楚一个关键概念:识别(输入) vs 生成(输出)

小米的模型家族很庞大,但功能定位完全不同:

🔍 可以识别的模型(输入/理解)

模型 识别能力
MiMo-V2.5-Pro ✅ 文本理解、推理、代码(纯文本基座模型)
MiMo-V2.5 ✅ 文本理解、推理(基础版本)
MiMo-V2-Pro ✅ 文本理解、推理
MiMo-V2-Omni 全模态理解:文本、图像、视频、音频理解、音频-视觉联合推理

🔊 只能生成/合成,不能识别的模型(输出)

模型 功能说明
MiMo-V2.5-TTS ❌ 只能生成语音(文字→语音)
MiMo-V2.5-TTS-VoiceClone ❌ 只能克隆语音音色(生成特定人声音)
MiMo-V2.5-TTS-VoiceDesign ❌ 只能设计语音(创建虚拟音色)
MiMo-V2-TTS ❌ 只能生成语音(上一代TTS)

重要提醒:所有 TTS 模型(语音合成)都是单向输出的,只能把文字变成语音,不能反过来识别语音

第二步:确认模型能力

查阅 MIMO 官方文档后,我整理了各模型的多媒体支持情况:

模型 图片 音频 视频
mimo-v2.5-pro
mimo-v2.5
mimo-v2-omni

真相大白:pro 版本虽然推理能力强,但根本不支持多媒体输入!

如果你需要"识别"功能:

需求场景 推荐模型
语音识别(语音→文字) MiMo-V2.5-ASR(专门的语音识别模型)
音频理解(环境声、音乐分析) MiMo-V2-Omni
图像/视频理解 MiMo-V2-Omni
纯文本理解/推理 MiMo-V2.5-ProMiMo-V2-Pro

第三步:尝试切换模型

按照网上的方案,我尝试用 ccswitch 切换到 mimo-v2.5mimo-v2-omni

ccswitch --model mimo-v2-omni

但问题来了

  1. 上下文丢失:切换模型后,原来的对话历史全部清空
  2. 能力降级:omni 虽然支持多媒体,但推理能力不如 pro
  3. 频繁切换:想识图用 omni,想推理用 pro,来回切换体验极差

第四步:寻找更好的方案

我需要一种方式:

  • 保持 pro 模型作为主对话模型(推理能力强)
  • 需要识图/听音频/看视频时,临时调用支持多媒体的模型
  • 不丢失对话上下文

这正是 MCP (Model Context Protocol) 的设计目标!

解决方案:开发 MIMO Media Recognition MCP

什么是 MCP?

MCP 是 Anthropic 推出的开放协议,让 AI 模型可以通过标准化接口调用外部工具。简单说,就是给 Claude 装上"手脚",让它能执行代码、查询数据库、识别图片...

我的 MCP 设计

我决定写一个 MCP Server,专门负责多媒体识别:

Claude Code (mimo-v2.5-pro) 
    ↓ 发现需要识图/音频/视频
    ↓ 调用 MCP
MIMO Media Recognition MCP
    ↓ 调用 MIMO API (mimo-v2-omni)
    ↓ 返回识别结果
Claude Code 继续对话

核心优势

  • 主对话始终用 pro 模型,不中断上下文
  • 多媒体识别交给 omni 模型,专业对口
  • 一次配置,所有项目通用

功能实现

最终实现了三个核心工具:

1. understand_image - 图片识别

# 使用示例
understand_image(
    prompt="描述这张图片里有什么",
    image_path="/path/to/photo.jpg"
)

支持:JPEG、PNG、WebP、GIF、BMP

2. understand_audio - 音频识别

# 使用示例
understand_audio(
    prompt="转录这段音频中的语音",
    audio_path="/path/to/recording.mp3"
)

支持:MP3、WAV、M4A、OGG、FLAC、AAC

3. understand_video - 视频识别

# 使用示例
understand_video(
    prompt="描述这个视频里发生了什么",
    video_path="/path/to/video.mp4"
)

支持:MP4、MOV、AVI、MKV、WebM、FLV

技术亮点

  1. 统一抽象:图片、音频、视频共用一套底层逻辑
  2. 批量处理:支持一次传入多个文件
  3. 重试机制:网络抖动自动重试 3 次
  4. 灵活配置:文件大小、数量限制可通过环境变量调整

安装使用

快速开始

# 1. 克隆项目
git clone https://github.com/congxxx/mimo-media-recognition-mcp.git
cd mimo-media-recognition-mcp

# 2. 安装依赖
pip install uv
uv venv .venv
uv pip install -e .

# 3. 添加到 Claude Code(全局)
claude mcp add mimo-media \
  --scope user \
  --env MIMO_API_KEY="your-api-key" \
  --env MIMO_API_BASE="https://token-plan-cn.xiaomimimo.com/v1" \
  --env MIMO_MODEL="mimo-v2-omni" \
  -- "F:\Learning\mimo-media-recognition-mcp\.venv\Scripts\python.exe" \
  -m mimo_media_recognition_mcp.server

验证安装

claude mcp get mimo-media
# 应显示:Status: ✓ Connected

实际使用

安装完成后,直接在 Claude Code 对话中使用:

帮我分析这张截图里的错误信息:C:\Users\xxx\error.png

转录这段会议录音的关键内容:D:\recordings\meeting.mp3

这个视频讲了什么,值得看吗?E:\videos\tutorial.mp4

Claude 会自动识别需求,调用对应的 MCP 工具,然后把结果整合到回复中。

踩坑记录

坑 1:中文路径乱码

现象:配置完成后 MCP 启动失败,检查发现路径变成了乱码

原因.claude.json 文件编码问题,中文路径被损坏

解决:将项目移到纯英文路径,如 F:\Learning\

坑 2:作用域冲突

现象:同时存在 userlocal 两个作用域的配置,导致冲突

解决:删除 local 配置,只保留 user

claude mcp remove mimo-media -s local

坑 3:模型名称写错

现象:API 调用返回 404

解决:确认使用正确的模型名称 mimo-v2-omni,不是 mimo-v2.5-pro

效果对比

方案 上下文保留 推理能力 多媒体支持 使用体验
纯 pro 模型 ⭐⭐⭐ 无法识图
纯 omni 模型 ⭐⭐ 推理弱
频繁切换模型 ⭐⭐⭐ 极繁琐
MCP 方案 ⭐⭐⭐ 最佳

项目地址

GitHub: https://github.com/congxxx/mimo-media-recognition-mcp

如果对你有帮助,欢迎 Star 🌟

总结

通过这次开发,我深刻体会到 MCP 的价值:

  1. 解耦能力:不同模型各司其职,发挥各自优势
  2. 无缝集成:用户无感知,对话流畅自然
  3. 可扩展性:未来可以轻松添加更多工具(如 OCR、翻译等)

对于需要频繁处理多媒体内容的开发者来说,这个 MCP 能显著提升工作效率。希望我的分享对你有帮助!


参考链接

posted @ 2026-05-19 22:10  congxxx  阅读(3902)  评论(0)    收藏  举报