多模态模型路由服务

omni-mcp是一种多模态MCP服务器,能够根据输入类型(文本、图像或音频)自动将请求路由到合适的本地模型,适用于需要处理多种输入类型的本地AI应用场景。

  • by Dharit13
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Dharit13/omni-mcp

使用说明

omni-mcp

多模态MCP服务器,根据输入模态(视觉、音频或文本)自动将请求路由到正确的本地模型。一台服务器,一种协议,所有模式。

专为 Mac M系列 和 vllm-mlx 和 奥拉玛 作为推理的后端。

为什么

LLM工具不应该关心哪个模型处理请求。发送文本、图像或音频片段——omni-mcp检测模态并自动路由到最佳本地模型。没有模型切换,没有单独的端点,没有配置切换。

模型

形态 型号 后端
正文 问题3.5 Ollama
视觉 Qwen3 VL vllm mlx(Ollama回退)
音频 耳语大v3 Turbo mlx耳语

先决条件

  • 带苹果硅(M1+)的macOS
  • Python 3.12+
  • 紫外线 包管理器
  • 奥拉玛 已安装并正在运行

快速入门

# Install dependencies
uv sync

# Pull the text model
ollama pull qwen3.5

# Run the MCP server
uv run mcp dev src/omni_mcp/server.py

安装

作为Claude Desktop中的MCP服务器

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "omni-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/omni-mcp", "mcp", "run", "src/omni_mcp/server.py"]
    }
  }
}

来源

git clone https://github.com/Dharit13/omni-mcp.git
cd omni-mcp
uv sync

用法

omni-mcp公开了一个 query MCP上的工具:

query(prompt, image?, audio?)
  • 文本:只需通过 prompt
  • 视觉:通过 prompt + image (base64数据URI或文件路径)
  • 音频:通过 prompt + audio (base64数据URI或文件路径)

服务器检测模态并路由到正确的后端。如果同时提供图像和音频,则音频优先。

配置

所有设置都可以通过前缀为的环境变量进行配置 OMNI_:

变量 默认值 描述
OMNI_OLLAMA_BASE_URL http://localhost:11434 API终点
OMNI_OLLAMA_TEXT_MODEL qwen3.5 文本生成模型
OMNI_VLLM_BASE_URL http://localhost:8000 vllm-mlx API终点
OMNI_VLLM_VISION_MODEL Qwen/Qwen3-VL 视觉模型
OMNI_WHISPER_MODEL mlx-community/whisper-large-v3-turbo Whisper型号
OMNI_LOG_LEVEL INFO 日志记录级别
OMNI_REQUEST_TIMEOUT 120.0 请求超时(秒)

发展

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Lint
uv run ruff check src/ tests/

# Type check
uv run ty check

建筑

src/omni_mcp/
├── server.py            # MCP server entry point (FastMCP)
├── router.py            # Modality detection + dispatch
├── config.py            # Settings via environment variables
├── schemas.py           # Pydantic request/response models
├── backends/
│   ├── base.py          # Abstract backend protocol
│   ├── ollama.py        # Ollama HTTP client
│   └── vllm_mlx.py      # vllm-mlx OpenAI-compat client
└── modalities/
    ├── text.py          # Text processing
    ├── vision.py        # Image handling + encoding
    └── audio.py         # Audio transcription via mlx-whisper

许可证

麻省理工学院