mcpField
M
multimodal

multimodal

本地服务
github.com/rsmdt媒体与设计234 周前更新

关于 multimodal

multimodal 是一个 MCP 服务,通过统一接口调用多个提供方生成图像、视频和音频,并转录语音。它面向需要在 AI 客户端中使用多种媒体能力的用户,支持自动或按请求选择提供方,并将生成文件保存到磁盘。

主要功能

  1. 01生成和编辑图像
  2. 02生成视频
  3. 03生成语音和音效
  4. 04将音频转录为文本
  5. 05自动发现已配置的提供方
  6. 06将媒体文件保存到磁盘

适用场景

  1. 01从文本提示词创建图像或视频
  2. 02将文字转换为语音或音效
  3. 03转录音频文件中的语音
  4. 04在一次工作流中使用不同媒体提供方

MCP 相关

该 MCP 服务向客户端提供图像生成与编辑、视频生成、音频生成、转录及提供方查询工具。客户端可自动选择已配置的提供方,也可在请求中指定提供方。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rsmdt-multimodal": {
"command": "npx",
"args": [
"-y",
"@r16t/multimodal-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"XAI_API_KEY": "<XAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"ELEVENLABS_API_KEY": "<ELEVENLABS_API_KEY>",
"BFL_API_KEY": "<BFL_API_KEY>",
"MEDIA_OUTPUT_DIR": "<MEDIA_OUTPUT_DIR>"
}
}
}
}
启动命令npx -y @r16t/multimodal-mcp
需要配置的环境变量
OPENAI_API_KEY密钥OpenAI API key for image, video, audio generation and transcription
XAI_API_KEY密钥xAI API key for image and video generation
GEMINI_API_KEY密钥Google Gemini API key for image, video, and audio generation
ELEVENLABS_API_KEY密钥ElevenLabs API key for audio generation and transcription
BFL_API_KEY密钥BFL API key for FLUX image generation and editing
MEDIA_OUTPUT_DIRDirectory for saved media files (defaults to cwd)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@r16t/multimodal-mcp1.3.1

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
promptstring是要生成的图像的文本描述
qualitystring否质量级别:low、standard、high
providerstring否要使用的提供商:openai、xai、google、bfl。若省略,则自动选择。
aspectRatiostring否宽高比:1:1、16:9、9:16、4:3、3:4
outputDirectorystring否保存生成文件的目录。支持绝对路径和相对路径(相对于 cwd 解析)。默认使用 MEDIA_OUTPUT_DIR 环境变量,否则使用 cwd。
providerOptionsobject否直接传递的特定于提供方的参数

详细介绍

multimodal-mcp

多提供商媒体生成 MCP 服务。通过统一接口,使用 OpenAI、xAI、Gemini、ElevenLabs 和 BFL(FLUX),根据文本提示词生成图像、视频、音频和转录文本。

功能

  • 🎨 图像生成 — 使用 OpenAI(gpt-image-1)、xAI(grok-imagine-image)、Gemini(imagen-4)或 BFL(FLUX Pro 1.1)生成图像
  • ✏️ 图像编辑 — 使用 OpenAI、xAI、Gemini 或 BFL(FLUX Kontext)编辑图像
  • 🎬 视频生成 — 使用 OpenAI(sora-2)、xAI(grok-imagine-video)或 Gemini(veo-3.1)生成视频
  • 🔊 音频生成 — 使用 OpenAI(tts-1)、Gemini 或 ElevenLabs(Flash v2.5)进行文本转语音。使用 ElevenLabs 生成音效
  • 🎙️ 音频转录 — 使用 OpenAI(Whisper)或 ElevenLabs(Scribe)进行语音转文本
  • 🔄 自动发现 — 自动检测环境变量中配置的提供商
  • 🎯 提供商选择 — 自动选择提供商,或为每个请求明确指定提供商
  • 📁 文件输出 — 将所有生成的媒体保存到磁盘,并使用描述性文件名

快速开始

至少设置一个提供商的 API 密钥。大多数用户只需要一个;添加更多密钥即可使用其他提供商。

# Using OpenAI
claude mcp add multimodal-mcp -e OPENAI_API_KEY=sk-... -- npx -y @r16t/multimodal-mcp@latest

# Or using xAI
# claude mcp add multimodal-mcp -e XAI_API_KEY=xai-... -- npx -y @r16t/multimodal-mcp@latest

# Or using Gemini
# claude mcp add multimodal-mcp -e GEMINI_API_KEY=AIza... -- npx -y @r16t/multimodal-mcp@latest

# Or using ElevenLabs (audio + transcription)
# claude mcp add multimodal-mcp -e ELEVENLABS_API_KEY=xi-... -- npx -y @r16t/multimodal-mcp@latest

# Or using BFL/FLUX (images)
# claude mcp add multimodal-mcp -e BFL_API_KEY=... -- npx -y @r16t/multimodal-mcp@latest

使用其他编辑器?请参阅 Claude Desktop、Cursor、VS Code、Windsurf 和 Cline 的设置说明。

环境变量

变量必需说明
OPENAI_API_KEY至少一个提供商密钥OpenAI API 密钥 — 启用通过 gpt-image-1、sora-2、tts-1 和 whisper-1 进行的图像、视频、音频生成和转录
XAI_API_KEY至少一个提供商密钥xAI API 密钥 — 启用通过 grok-imagine-image 和 grok-imagine-video 进行的图像和视频生成
GEMINI_API_KEY至少一个提供商密钥Gemini API 密钥 — 启用通过 imagen-4、veo-3.1 和 gemini-2.5-flash-preview-tts 进行的图像、视频和音频生成
GOOGLE_API_KEY—GEMINI_API_KEY 的别名;两个名称均可使用
ELEVENLABS_API_KEY至少一个提供商密钥ElevenLabs API 密钥 — 启用通过 Flash v2.5 和 Scribe v1 进行的音频生成(TTS、音效)和转录
BFL_API_KEY至少一个提供商密钥BFL API 密钥 — 启用通过 FLUX Pro 1.1 和 FLUX Kontext 进行的图像生成和编辑
MEDIA_OUTPUT_DIR否保存媒体文件的目录。默认为当前工作目录

可用工具

generate_image

根据文本提示词生成图像。

参数类型必需说明
promptstring是要生成图像的文本描述
providerstring否要使用的提供商:openai、xai、google、bfl。省略时自动选择
aspectRatiostring否宽高比:1:1、16:9、9:16、4:3、3:4
qualitystring否质量级别:low、standard、high
outputDirectorystring否保存生成文件的目录。可使用绝对路径或相对路径。默认为 MEDIA_OUTPUT_DIR 或当前工作目录
providerOptionsobject否直接传递给提供商的特定参数
generate_video

根据文本提示词生成视频。视频生成是异步的,可能需要几分钟。

参数类型必需说明
promptstring是要生成视频的文本描述
providerstring否要使用的提供商:openai、xai、google。省略时自动选择
durationnumber否视频时长,单位为秒(受提供商限制)
aspectRatiostring否宽高比:16:9、9:16、1:1
resolutionstring否分辨率:480p、720p、1080p
outputDirectorystring否保存生成文件的目录。可使用绝对路径或相对路径。默认为 MEDIA_OUTPUT_DIR 或当前工作目录
providerOptionsobject否直接传递给提供商的特定参数
generate_audio

根据文本生成音频。支持文本转语音和音效。音频生成采用同步方式。

参数类型必填描述
textstring是要转换为语音的文本,或要生成的音效描述
providerstring否要使用的提供方:openai、google、elevenlabs。若省略,则自动选择
voicestring否语音名称(因提供方而异)。OpenAI:alloy、ash、coral、echo、fable、nova、onyx、sage、shimmer。Google:Kore、Charon、Fenrir、Aoede、Puck 等。ElevenLabs:语音 ID
speednumber否语速倍数(仅限 OpenAI):0.25 到 4.0
formatstring否输出格式(仅限 OpenAI):mp3、opus、aac、flac、wav、pcm
outputDirectorystring否保存生成文件的目录。可使用绝对路径或相对路径。默认为 MEDIA_OUTPUT_DIR 或当前工作目录
providerOptionsobject否直接传递给提供方的专属参数。ElevenLabs:设置 mode: "sound-effect" 以生成音效,设置 model 以选择 TTS 模型
transcribe_audio

将音频转录为文本(语音转文本)。

参数类型必填描述
audioPathstring是要转录的音频文件的绝对路径
providerstring否要使用的提供方:openai、elevenlabs。若省略,则自动选择
languagestring否用于提示转录语言的语言代码(例如 en、fr、es)
providerOptionsobject否直接传递给提供方的专属参数
list_providers

列出所有已配置的媒体生成提供方及其功能。不接受任何参数。

提供方功能

提供方图像图像编辑视频音频转录主要模型
OpenAI✅✅✅✅✅gpt-image-1, sora-2, tts-1, whisper-1
xAI✅✅✅——grok-imagine-image, grok-imagine-video
Gemini✅✅✅✅—imagen-4, veo-3.1, gemini-2.5-flash-preview-tts
ElevenLabs———✅✅eleven_flash_v2_5, scribe_v1
BFL✅✅———flux-pro-1.1, flux-kontext-pro
图像宽高比
提供方1:116:99:164:33:4
OpenAI✅✅✅✅✅
xAI✅✅✅✅✅
Gemini✅✅✅✅✅
BFL✅✅✅✅✅
视频宽高比和分辨率
提供方16:99:161:1480p720p1080p
OpenAI✅✅✅✅✅✅
xAI✅✅✅—✅✅
Gemini✅✅——✅✅
音频格式
提供方mp3opusaacflacwavpcm
OpenAI✅✅✅✅✅✅
Gemini————✅—
ElevenLabs✅✅———✅

故障排除

未配置提供方
[config] No provider API keys detected

在 MCP 服务的 env 块中至少设置一个 OPENAI_API_KEY、XAI_API_KEY、GEMINI_API_KEY、ELEVENLABS_API_KEY 或 BFL_API_KEY。

提供方不支持所请求的媒体类型

不同提供方支持的媒体类型不同(参见提供方功能)。如果指定的 provider 未配置(没有 API 密钥)或不支持所请求的媒体类型,就会收到错误。省略 provider 参数,以便从已配置的提供方中自动选择。

视频生成超时

视频生成会轮询最多 10 分钟。如果视频在此时间内未完成,请求将因超时错误而失败。请尝试缩短 duration 或简化 prompt。

xAI 图像生成未返回数据

这表示 xAI API 返回了空响应。请检查 XAI_API_KEY 是否有效,以及提示词是否违反 xAI 内容政策。

Gemini 图像/视频生成失败:403

请确认已在 Google Cloud Console 中为 GEMINI_API_KEY 启用 Generative Language API。

开发

npm run build      # Compile TypeScript to build/
npm test           # Run tests with Vitest
npm run lint       # Lint and auto-fix with ESLint
npm run typecheck  # Type-check without emitting
npm run dev        # Watch mode for TypeScript compilation

编辑器设置

将 OPENAI_API_KEY 替换为你选择的提供商(XAI_API_KEY、GEMINI_API_KEY、ELEVENLABS_API_KEY、BFL_API_KEY)。你可以设置多个密钥以启用多个提供商。

Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "multimodal-mcp": {
      "command": "npx",
      "args": ["@r16t/multimodal-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
Cursor

添加到项目根目录中的 .cursor/mcp.json(或全局配置文件 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "multimodal-mcp": {
      "command": "npx",
      "args": ["@r16t/multimodal-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
VS Code(GitHub Copilot)

添加到项目根目录中的 .vscode/mcp.json:

{
  "servers": {
    "multimodal-mcp": {
      "command": "npx",
      "args": ["@r16t/multimodal-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "multimodal-mcp": {
      "command": "npx",
      "args": ["@r16t/multimodal-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
Cline

添加到 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

{
  "mcpServers": {
    "multimodal-mcp": {
      "command": "npx",
      "args": ["@r16t/multimodal-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。