Skip to main content
Glama
ChanthMiao

MiMo Multimodal Understanding MCP Server

by ChanthMiao

MiMo Multimodal Understanding MCP Server

MCP server for Xiaomi MiMo multimodal understanding API (image, audio, video).

Features

  • Image Understanding: Single/multiple images, URL and local file support

  • Audio Understanding: Single/multiple audio, URL and local file support

  • Video Understanding: Single/multiple video, URL and local file support, configurable fps and resolution

Related MCP server: MiMo Free API MCP

Setup

1. Install dependencies

uv sync

2. Configure API Key

Copy .env.example to .env and fill in your API key:

cp .env.example .env

Or set environment variable directly:

export MIMO_API_KEY=your_api_key_here

Get your API key from: https://platform.xiaomimimo.com

3. (Optional) Configure API Base URL

The default API endpoint is determined by your API key prefix:

Key Prefix

Default Endpoint

tp-*

https://token-plan-cn.xiaomimimo.com/v1

sk-* or others

https://api.xiaomimimo.com/v1

To use a different API endpoint:

export MIMO_API_BASE=https://your-custom-endpoint/v1

Or add it to your .env file:

MIMO_API_BASE=https://your-custom-endpoint/v1

Usage

Quick Start (with uvx)

export MIMO_API_KEY=your_api_key_here
uvx mimo-multimodal-mcp

Development mode (with MCP Inspector)

uv run mcp dev src/mimo_multimodal_mcp/server.py

Install to Claude Desktop

uv run mcp install src/mimo_multimodal_mcp/server.py

Direct execution

uv run python src/mimo_multimodal_mcp/server.py

Claude Desktop Configuration

Add to ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mimo-multimodal": {
      "command": "uvx",
      "args": ["mimo-multimodal-mcp"],
      "env": {
        "MIMO_API_KEY": "your_api_key_here"
      }
    }
  }
}

Tools

understand_image

Analyze images using Xiaomi MiMo multimodal model.

Parameter

Type

Required

Description

prompt

string

Yes

Image understanding task description

image_url

string

No

Single image URL or data:image base64

image_path

string

No

Single local image file path

image_urls

list[string]

No

Multiple image URLs

image_paths

list[string]

No

Multiple local image file paths

system_prompt

string

No

Custom system prompt

max_tokens

integer

No

Max output length (default: 8192, max: 32768)

Supported formats: JPEG, PNG, GIF, WebP Size limit: 10MB

understand_audio

Analyze audio using Xiaomi MiMo multimodal model.

Parameter

Type

Required

Description

prompt

string

Yes

Audio understanding task description

audio_url

string

No

Single audio URL

audio_path

string

No

Single local audio file path

audio_urls

list[string]

No

Multiple audio URLs

audio_paths

list[string]

No

Multiple local audio file paths

system_prompt

string

No

Custom system prompt

max_tokens

integer

No

Max output length (default: 8192, max: 32768)

Supported formats: MP3, WAV, FLAC, M4A, OGG Size limit: URL 100MB, Base64 50MB

understand_video

Analyze video using Xiaomi MiMo multimodal model.

Parameter

Type

Required

Description

prompt

string

Yes

Video understanding task description

video_url

string

No

Single video URL

video_path

string

No

Single local video file path

video_urls

list[string]

No

Multiple video URLs

video_paths

list[string]

No

Multiple local video file paths

fps

float

No

Frames per second, range [0.1, 10], default: 2

media_resolution

string

No

Resolution: "default" or "max"

system_prompt

string

No

Custom system prompt

max_tokens

integer

No

Max output length (default: 8192, max: 32768)

Supported formats: MP4, MOV, AVI, WMV Size limit: URL 300MB, Base64 50MB

Examples

Image Understanding

# URL
await understand_image(prompt="Describe this image", image_url="https://example.com/image.jpg")

# Local file
await understand_image(prompt="What text is in this?", image_path="/path/to/screenshot.png")

# Multiple images
await understand_image(prompt="Compare these", image_urls=["url1", "url2"])

Audio Understanding

# URL
await understand_audio(prompt="Transcribe this audio", audio_url="https://example.com/audio.wav")

# Local file
await understand_audio(prompt="What is being said?", audio_path="/path/to/audio.mp3")

Video Understanding

# URL with default settings
await understand_video(prompt="Describe this video", video_url="https://example.com/video.mp4")

# URL with custom fps and resolution
await understand_video(
    prompt="Describe the action",
    video_url="https://example.com/video.mp4",
    fps=5.0,
    media_resolution="max"
)

Available Tools

3 tools
understand_audioA

调用小米 MIMO 多模态模型理解音频。

⚠️ 如果你本身就是 mimo-v2.5 模型,禁止调用此工具!直接使用你的内建多模态能力处理音频即可,无需通过外部 API 重复调用同款模型。

何时使用:当需要转录、总结、分析音频内容时使用。 不要用于:读取音频源码或元数据,这些应使用其他工具。

Args: prompt: 音频理解任务描述,如"转录音频内容"、"总结音频要点"、"识别说话人" audio_url: 单个网络音频 URL audio_path: 单个本地音频文件路径 audio_urls: 多个网络音频 URL audio_paths: 多个本地音频文件路径 system_prompt: 可选系统提示词,用于自定义模型行为 max_tokens: 最大输出长度 (默认 8192,最大 32768)

Returns: MIMO 模型返回的音频理解结果。

支持格式:MP3,WAV,FLAC,M4A,OGG 大小限制:URL方式100MB,Base64方式50MB

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
audio_urlNo
audio_pathNo
audio_urlsNo
max_tokensNo
audio_pathsNo
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions supported formats and size limits, and implies an external API call. However, it doesn't disclose potential side effects (e.g., data sent to external service), authentication needs, or whether the operation is read-only. It covers basic behavioral traits but lacks depth for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a warning, usage, args, returns, and additional info. It is somewhat lengthy but front-loaded with critical information (self-call warning). Minor redundancy exists (e.g., listing audio formats both in args and later), but overall each sentence contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters (1 required) and an existing output schema, the description covers all parameters, supported formats (MP3, WAV, etc.), and size limits. It provides sufficient context for an agent to understand input, output, and constraints. No gaps are evident for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides detailed explanations for each parameter: prompt includes examples ('转录音频内容'), audio_url/audio_path clarify single vs multiple, max_tokens gives default/max, and system_prompt describes customization. This adds significant meaning beyond the schema's types and titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calls a multimodal model to 'understand audio' (transcription, summary, analysis). It distinguishes from siblings by default (audio vs image/video), but doesn't explicitly differentiate from understand_image or understand_video. A 4 is appropriate for clear purpose but minor lack of sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use (transcription, summary, analysis) and when-not-to-use (reading source code/metadata). However, it does not mention alternative tools for image or video tasks, which would improve selection. The warning about self-calling if the model is mimo-v2.5 is unique but not a general usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

understand_imageA

调用小米 MIMO 多模态模型理解图片。

⚠️ 如果你本身就是 mimo-v2.5 模型,禁止调用此工具!直接使用你的内建多模态能力处理图片即可,无需通过外部 API 重复调用同款模型。

何时使用:当需要分析、描述、OCR、识别图片内容时使用。 不要用于:读取代码文件、文本文件等非图片文件,这些应使用 Read 工具。

Args: prompt: 图片理解任务描述,如"描述这张图片"、"提取图中的文字"、"解释这个图表" image_url: 单张网络图片 URL 或 data:image base64 image_path: 单张本地图片路径 image_urls: 多张网络图片 URL image_paths: 多张本地图片路径 system_prompt: 可选系统提示词,用于自定义模型行为 max_tokens: 最大输出长度 (默认 8192,最大 32768)

Returns: MIMO 模型返回的图片理解结果。

支持格式:JPEG,PNG,GIF,WebP,BMP 大小限制:单张图片不超过 50MB

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
image_urlNo
image_pathNo
image_urlsNo
max_tokensNo
image_pathsNo
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses use of external API, supports multiple image inputs, has size limits (50MB) and format support. Includes system prompt and max_tokens details. Slightly less transparent on authentication or rate limits, but adequate for a read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with warning, usage guidelines, parameter list, returns, and constraints. However, the warning about not using if same model is repeated, slightly reducing conciseness. Still front-loaded and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no schema descriptions, no annotations, and presence of output schema, the description is comprehensive. Covers all parameters, use cases, constraints, and return value. Handles complexity well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description explicitly explains each parameter's purpose and gives examples (prompt, image_url, etc.). Adds meaning beyond schema, like supported formats and size limits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calls a multimodal model to understand images, specifying use cases like analysis, description, OCR, and recognition. It distinguishes from sibling tools (audio and video) by focusing on images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (analyze images) and when not to (code/text files, use Read tool). Also warns if the model is the same as the underlying model, don't call it, providing clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

understand_videoA

调用小米 MIMO 多模态模型理解视频。

⚠️ 如果你本身就是 mimo-v2.5 模型,禁止调用此工具!直接使用你的内建多模态能力处理视频即可,无需通过外部 API 重复调用同款模型。

何时使用:当需要分析、描述、总结视频内容时使用。 不要用于:读取视频文件元数据或源码,这些应使用其他工具。

Args: prompt: 视频理解任务描述,如"描述视频内容"、"总结视频要点"、"识别视频中的动作" video_url: 单个网络视频 URL video_path: 单个本地视频文件路径 video_urls: 多个网络视频 URL video_paths: 多个本地视频文件路径 fps: 每秒抽帧数,范围 [0.1, 10],默认 2。越高时序越精细 media_resolution: 视频帧分辨率档次,"default" 或 "max" system_prompt: 可选系统提示词,用于自定义模型行为 max_tokens: 最大输出长度 (默认 8192,最大 32768)

Returns: MIMO 模型返回的视频理解结果。

支持格式:MP4,MOV,AVI,WMV 大小限制:URL方式300MB,Base64方式50MB

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNo
promptYes
video_urlNo
max_tokensNo
video_pathNo
video_urlsNo
video_pathsNo
system_promptNo
media_resolutionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses the model used, self-call restriction, supported formats, and size limits. However, it omits potential costs, latency, or authentication requirements, but overall provides sufficient transparency for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Moderately long but well-structured with sections for general info, warning, usage, args, returns, and constraints. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, output schema exists), the description covers all parameters, return description, format support, size limits, and usage guidance. Output schema exists, so return details are sufficient. Comprehensive for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions in schema), so description carries full burden. It explains every parameter in detail (prompt, video_url, video_path, fps, resolution, etc.) with examples, default values, and ranges, adding substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calls the MIMO multimodal model to understand video, with examples of tasks like describing, summarizing, and recognizing actions. It distinguishes from sibling tools (understand_audio, understand_image) by focusing on video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (analyzing, describing, summarizing video content) and when not to use (reading metadata or source code, which should use other tools). Also includes a critical self-call warning for the integrated model.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct modality (audio, image, video) with clear separation of concerns. No overlap in capabilities, and the descriptions explicitly warn against misuse.

Naming Consistency5/5

All tools follow a strict 'understand_<modality>' naming pattern using snake_case, making it predictable and easy for agents to infer functionality.

Tool Count5/5

Three tools is an ideal scope for a multimodal understanding server, covering the three primary non-text media types without bloat or gaps.

Completeness5/5

The tool set fully covers the domain of multimodal understanding by supporting audio, image, and video analysis. No missing operations are expected for this focused purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that uses Xiaomi MiMo v2.5 multimodal model to provide image recognition capabilities (description, multi-image analysis, OCR, and image info validation) for text-only main models like deepseek-v4-flash, accepting local paths, URLs, file://, and base64 data inputs.
    4
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables image understanding and OCR through Xiaomi's MiMo vision language model, providing tools for image description, Q&A, and text recognition via MCP. Supports both image URLs and local file paths.

Latest Blog Posts

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/ChanthMiao/MiMo-Multimodal-Understanding-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server