Multimodal

io.github.rsmdtPublished by GitHub account rsmdtv1.3.1Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

A local MCP server that lets an assistant generate images, video and audio, and transcribe speech, through OpenAI, xAI, Gemini, ElevenLabs or BFL.

What you can do
Generate images from text prompts, with aspect ratio, quality and provider choice, and edit existing images via OpenAI, xAI, Gemini or BFL (FLUX).
When to use it
Useful when you want an assistant to produce media assets — illustrations, short videos, voiceovers, sound effects — or transcribe audio files without wiring up each provider's API separately. It fits creative and content workflows where one or more of these providers is already paid for.
Requirements
Runs locally via npx (Node.js). At least one provider API key is required: OPENAI_API_KEY, XAI_API_KEY, GEMINI_API_KEY (or GOOGLE_API_KEY), ELEVENLABS_API_KEY or BFL_API_KEY. MEDIA_OUTPUT_DIR optionally sets where files are saved; it defaults to the current working directory. Network access to the chosen providers is needed.
Before you install
Each provider key grants billable API access, and image, video and audio generation consumes paid credits; video jobs can run for minutes. Generated files are written to disk at the chosen output directory, and prompts plus any audio sent for transcription go to the selected third-party provider.

Installation

In SourceWeft

  1. Open Multimodal in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

Source: README.md at commit f37b30d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.3.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts