Multimodal

io.github.rsmdt由 GitHub 账号 rsmdt 发布v1.3.1更新于 Oct 24, 2026

Multi-provider media generation — images, video, audio, and transcription via a unified interface

已验证STDIO仅桌面媒体与设计AI 与机器学习

概览

AI 生成的概览

本地 MCP 服务器,让助手通过 OpenAI、xAI、Gemini、ElevenLabs 或 BFL 生成图像、视频和音频,并转写语音。

可以做什么
根据文本提示生成图像,可指定宽高比、质量和提供商,并通过 OpenAI、xAI、Gemini 或 BFL(FLUX)编辑已有图像。
适用场景
适合需要助手产出媒体素材(插图、短视频、配音、音效)或转写音频文件,又不想逐个对接各提供商 API 的场景。适用于已订阅其中一个或多个提供商的内容创作流程。
运行要求
通过 npx 在本地运行(需要 Node.js)。至少需要一个提供商 API 密钥:OPENAI_API_KEY、XAI_API_KEY、GEMINI_API_KEY(或 GOOGLE_API_KEY)、ELEVENLABS_API_KEY 或 BFL_API_KEY。MEDIA_OUTPUT_DIR 可选,用于指定文件保存目录,默认当前工作目录。需要能访问所选提供商的网络。
安装前请注意
每个提供商密钥都对应可计费的 API 访问,图像、视频和音频生成会消耗付费额度,视频任务可能持续数分钟。生成的文件会写入所选输出目录,提示词以及送交转写的音频会发送给所选的第三方提供商。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Multimodal,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

multimodal-mcp

Multi-provider media generation MCP server. Generate images, videos, audio, and transcriptions from text prompts using OpenAI, xAI, Gemini, ElevenLabs, and BFL (FLUX) through a single unified interface.

Features

  • 🎨 Image Generation — Generate images via OpenAI (gpt-image-1), xAI (grok-imagine-image), Gemini (imagen-4), or BFL (FLUX Pro 1.1)
  • ✏️ Image Editing — Edit images via OpenAI, xAI, Gemini, or BFL (FLUX Kontext)
  • 🎬 Video Generation — Generate videos via OpenAI (sora-2), xAI (grok-imagine-video), or Gemini (veo-3.1)
  • 🔊 Audio Generation — Text-to-speech via OpenAI (tts-1), Gemini, or ElevenLabs (Flash v2.5). Sound effects via ElevenLabs
  • 🎙️ Audio Transcription — Speech-to-text via OpenAI (Whisper) or ElevenLabs (Scribe)
  • 🔄 Auto-Discovery — Automatically detects configured providers from environment variables
  • 🎯 Provider Selection — Auto-selects or explicitly choose a provider per request
  • 📁 File Output — Saves all generated media to disk with descriptive filenames

Quick Start

Set the API key for at least one provider. Most users only need one — add more to access additional providers.

bash
# Using OpenAIclaude 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

Using a different editor? See setup instructions for Claude Desktop, Cursor, VS Code, Windsurf, and Cline.

Environment Variables

VariableRequiredDescription
OPENAI_API_KEYAt least one provider keyOpenAI API key — enables image, video, audio generation, and transcription via gpt-image-1, sora-2, tts-1, and whisper-1
XAI_API_KEYAt least one provider keyxAI API key — enables image and video generation via grok-imagine-image and grok-imagine-video
GEMINI_API_KEYAt least one provider keyGemini API key — enables image, video, and audio generation via imagen-4, veo-3.1, and gemini-2.5-flash-preview-tts
GOOGLE_API_KEY—Alias for GEMINI_API_KEY; either name is accepted
ELEVENLABS_API_KEYAt least one provider keyElevenLabs API key — enables audio generation (TTS, sound effects) and transcription via Flash v2.5 and Scribe v1
BFL_API_KEYAt least one provider keyBFL API key — enables image generation and editing via FLUX Pro 1.1 and FLUX Kontext
MEDIA_OUTPUT_DIRNoDirectory for saved media files. Defaults to the current working directory

Available Tools

generate_image

Generate an image from a text prompt.

ParameterTypeRequiredDescription
promptstringYesText description of the image to generate
providerstringNoProvider to use: openai, xai, google, bfl. Auto-selects if omitted
aspectRatiostringNoAspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4
qualitystringNoQuality level: low, standard, high
outputDirectorystringNoDirectory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd
providerOptionsobjectNoProvider-specific parameters passed through directly

generate_video

Generate a video from a text prompt. Video generation is asynchronous and may take several minutes.

ParameterTypeRequiredDescription
promptstringYesText description of the video to generate
providerstringNoProvider to use: openai, xai, google. Auto-selects if omitted
durationnumberNoVideo duration in seconds (provider limits apply)
aspectRatiostringNoAspect ratio: 16:9, 9:16, 1:1
resolutionstringNoResolution: 480p, 720p, 1080p
outputDirectorystringNoDirectory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd
providerOptionsobjectNoProvider-specific parameters passed through directly

generate_audio

Generate audio from text. Supports text-to-speech and sound effects. Audio generation is synchronous.

ParameterTypeRequiredDescription
textstringYesText to convert to speech, or a description of the sound effect to generate
providerstringNoProvider to use: openai, google, elevenlabs. Auto-selects if omitted
voicestringNoVoice name (provider-specific). OpenAI: alloy, ash, coral, echo, fable, nova, onyx, sage, shimmer. Google: Kore, Charon, Fenrir, Aoede, Puck, etc. ElevenLabs: voice ID
speednumberNoSpeech speed multiplier (OpenAI only): 0.25 to 4.0
formatstringNoOutput format (OpenAI only): mp3, opus, aac, flac, wav, pcm
outputDirectorystringNoDirectory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd
providerOptionsobjectNoProvider-specific parameters passed through directly. ElevenLabs: set mode: "sound-effect" for sound effects, model for TTS model selection

transcribe_audio

Transcribe audio to text (speech-to-text).

ParameterTypeRequiredDescription
audioPathstringYesAbsolute path to the audio file to transcribe
providerstringNoProvider to use: openai, elevenlabs. Auto-selects if omitted
languagestringNoLanguage code (e.g., en, fr, es) to hint the transcription language
providerOptionsobjectNoProvider-specific parameters passed through directly

list_providers

List all configured media generation providers and their capabilities. Takes no parameters.

Provider Capabilities

ProviderImageImage EditingVideoAudioTranscriptionKey Models
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

Image Aspect Ratios

Provider1:116:99:164:33:4
OpenAI✅✅✅✅✅
xAI✅✅✅✅✅
Gemini✅✅✅✅✅
BFL✅✅✅✅✅

Video Aspect Ratios & Resolutions

Provider16:99:161:1480p720p1080p
OpenAI✅✅✅✅✅✅
xAI✅✅✅—✅✅
Gemini✅✅——✅✅

Audio Formats

Providermp3opusaacflacwavpcm
OpenAI✅✅✅✅✅✅
Gemini————✅—
ElevenLabs✅✅———✅

Troubleshooting

No providers configured

[config] No provider API keys detected

Set at least one of OPENAI_API_KEY, XAI_API_KEY, GEMINI_API_KEY, ELEVENLABS_API_KEY, or BFL_API_KEY in the MCP server's env block.

Provider not available for requested media type

Each provider supports different media types (see Provider Capabilities). If you specify a provider that isn't configured (no API key) or doesn't support the requested media type, you'll receive an error. Omit the provider parameter to auto-select from configured providers.

Video generation timeout

Video generation polls for up to 10 minutes. If your video hasn't completed in that window, the request will fail with a timeout error. Try a shorter duration or a simpler prompt.

xAI image generation returned no data

This indicates the xAI API returned an empty response. Check that your XAI_API_KEY is valid and that your prompt does not violate xAI content policies.

Gemini image/video generation failed: 403

Verify your GEMINI_API_KEY has the Generative Language API enabled in Google Cloud Console.

Development

bash
npm run build      # Compile TypeScript to build/npm test           # Run tests with Vitestnpm run lint       # Lint and auto-fix with ESLintnpm run typecheck  # Type-check without emittingnpm run dev        # Watch mode for TypeScript compilation

Editor Setup

Replace OPENAI_API_KEY with your provider of choice (XAI_API_KEY, GEMINI_API_KEY, ELEVENLABS_API_KEY, BFL_API_KEY). You can set multiple keys to enable multiple providers.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Cursor

Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally):

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

VS Code (GitHub Copilot)

Add to .vscode/mcp.json in your project root:

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

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

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

Cline

Add to ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

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

License

MIT

来源:README.md,提交 f37b30d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.3.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分