multimodal について
multimodalは、複数のプロバイダーを統一インターフェースで利用し、画像・動画・音声の生成と文字起こしを行うMCPサーバーです。AIクライアントでメディア機能を使いたいユーザー向けで、プロバイダーの自動選択やファイル保存に対応します。
主な機能
- 01画像の生成と編集
- 02動画の生成
- 03音声と効果音の作成
- 04音声のテキスト変換
- 05設定済みプロバイダーの検出
- 06メディアファイルの保存
活用シーン
- 01テキストプロンプトから画像や動画を作成
- 02テキストを音声や効果音に変換
- 03音声ファイル内の発話を文字起こし
- 041つのワークフローで複数プロバイダーを利用
MCP 対応
画像生成・編集、動画と音声の生成、文字起こし、プロバイダー検索のツールをクライアントに公開します。プロバイダーは自動選択するか、リクエストごとに指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @r16t/multimodal-mcpOPENAI_API_KEYシークレットOpenAI API key for image, video, audio generation and transcriptionXAI_API_KEYシークレットxAI API key for image and video generationGEMINI_API_KEYシークレットGoogle Gemini API key for image, video, and audio generationELEVENLABS_API_KEYシークレットElevenLabs API key for audio generation and transcriptionBFL_API_KEYシークレットBFL API key for FLUX image generation and editingMEDIA_OUTPUT_DIRDirectory for saved media files (defaults to cwd)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 生成する画像のテキスト説明 |
| quality | string | いいえ | 品質レベル:low、standard、high |
| provider | string | いいえ | 使用するプロバイダー:openai、xai、google、bfl。省略した場合は自動選択されます。 |
| aspectRatio | string | いいえ | アスペクト比:1:1、16:9、9:16、4:3、3:4 |
| outputDirectory | string | いいえ | 生成ファイルの保存先ディレクトリ。絶対パスまたは相対パスに対応します(cwd を基準に解決)。既定値は MEDIA_OUTPUT_DIR 環境変数、未設定の場合は cwd です。 |
| providerOptions | object | いいえ | プロバイダー固有のパラメーターをそのまま渡します |
詳細
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)を使った音声テキスト変換に対応しています
- 🔄 自動検出 — 環境変数から設定済みのプロバイダーを自動的に検出します
- 🎯 プロバイダーの選択 — リクエストごとにプロバイダーを自動選択するか、明示的に指定できます
- 📁 ファイル出力 — 生成したすべてのメディアを、内容がわかりやすいファイル名でディスクに保存します
クイックスタート
少なくとも1つのプロバイダーの API キーを設定します。ほとんどの場合、必要なのは1つだけです。追加のプロバイダーを利用するには、キーを追加してください。
# 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 | 少なくとも1つのプロバイダーキー | OpenAI API キー — gpt-image-1、sora-2、tts-1、whisper-1 を使った画像・動画・音声の生成と文字起こしが有効になります |
XAI_API_KEY | 少なくとも1つのプロバイダーキー | xAI API キー — grok-imagine-image と grok-imagine-video を使った画像・動画の生成が有効になります |
GEMINI_API_KEY | 少なくとも1つのプロバイダーキー | Gemini API キー — imagen-4、veo-3.1、gemini-2.5-flash-preview-tts を使った画像・動画・音声の生成が有効になります |
GOOGLE_API_KEY | — | GEMINI_API_KEY の別名です。どちらの名前も使用できます |
ELEVENLABS_API_KEY | 少なくとも1つのプロバイダーキー | ElevenLabs API キー — Flash v2.5 と Scribe v1 を使った音声生成(TTS、効果音)と文字起こしが有効になります |
BFL_API_KEY | 少なくとも1つのプロバイダーキー | BFL API キー — FLUX Pro 1.1 と FLUX Kontext を使った画像生成と編集が有効になります |
MEDIA_OUTPUT_DIR | いいえ | メディアファイルの保存先ディレクトリです。デフォルトは現在の作業ディレクトリです |
利用可能なツール
generate_image
テキストプロンプトから画像を生成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
prompt | string | はい | 生成する画像のテキストによる説明 |
provider | string | いいえ | 使用するプロバイダー:openai、xai、google、bfl。省略すると自動選択されます |
aspectRatio | string | いいえ | アスペクト比:1:1、16:9、9:16、4:3、3:4 |
quality | string | いいえ | 品質レベル:low、standard、high |
outputDirectory | string | いいえ | 生成したファイルの保存先ディレクトリです。絶対パスまたは相対パスを指定します。デフォルトは MEDIA_OUTPUT_DIR または cwd です |
providerOptions | object | いいえ | プロバイダー固有のパラメーターをそのまま渡します |
generate_video
テキストプロンプトから動画を生成します。動画生成は非同期で、完了まで数分かかる場合があります。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
prompt | string | はい | 生成する動画のテキストによる説明 |
provider | string | いいえ | 使用するプロバイダー:openai、xai、google。省略すると自動選択されます |
duration | number | いいえ | 動画の長さ(秒)。プロバイダーごとの制限が適用されます |
aspectRatio | string | いいえ | アスペクト比:16:9、9:16、1:1 |
resolution | string | いいえ | 解像度:480p、720p、1080p |
outputDirectory | string | いいえ | 生成したファイルの保存先ディレクトリです。絶対パスまたは相対パスを指定します。デフォルトは MEDIA_OUTPUT_DIR または cwd です |
providerOptions | object | いいえ | プロバイダー固有のパラメーターをそのまま渡します |
generate_audio
テキストから音声を生成します。テキスト読み上げと効果音に対応しています。音声生成は同期的に行われます。
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | 音声に変換するテキスト、または生成する効果音の説明 |
provider | string | No | 使用するプロバイダー:openai、google、elevenlabs。省略した場合は自動選択されます |
voice | string | No | 音声名(プロバイダー固有)。OpenAI:alloy、ash、coral、echo、fable、nova、onyx、sage、shimmer。Google:Kore、Charon、Fenrir、Aoede、Puck など。ElevenLabs:音声 ID |
speed | number | No | 読み上げ速度の倍率(OpenAI のみ):0.25~4.0 |
format | string | No | 出力形式(OpenAI のみ):mp3、opus、aac、flac、wav、pcm |
outputDirectory | string | No | 生成ファイルの保存先ディレクトリ。絶対パスまたは相対パスを指定します。デフォルトは MEDIA_OUTPUT_DIR または cwd です |
providerOptions | object | No | プロバイダー固有のパラメーターをそのまま渡します。ElevenLabs:効果音を生成するには mode: "sound-effect" を、TTS モデルを選択するには model を設定します |
transcribe_audio
音声をテキストに文字起こしします(音声認識)。
| Parameter | Type | Required | Description |
|---|---|---|---|
audioPath | string | Yes | 文字起こしする音声ファイルの絶対パス |
provider | string | No | 使用するプロバイダー:openai、elevenlabs。省略した場合は自動選択されます |
language | string | No | 文字起こしする言語のヒントとして指定する言語コード(例:en、fr、es) |
providerOptions | object | No | プロバイダー固有のパラメーターをそのまま渡します |
list_providers
設定済みのメディア生成プロバイダーとその機能をすべて一覧表示します。パラメーターは不要です。
プロバイダーの機能
| Provider | Image | Image Editing | Video | Audio | Transcription | Key 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 |
画像のアスペクト比
| Provider | 1:1 | 16:9 | 9:16 | 4:3 | 3:4 |
|---|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ |
| xAI | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gemini | ✅ | ✅ | ✅ | ✅ | ✅ |
| BFL | ✅ | ✅ | ✅ | ✅ | ✅ |
動画のアスペクト比と解像度
| Provider | 16:9 | 9:16 | 1:1 | 480p | 720p | 1080p |
|---|---|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| xAI | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Gemini | ✅ | ✅ | — | — | ✅ | ✅ |
音声形式
| Provider | mp3 | opus | aac | flac | wav | pcm |
|---|---|---|---|---|---|---|
| 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 のいずれかを設定してください。
要求されたメディアタイプに対応するプロバイダーが利用できない
プロバイダーによって対応するメディアタイプは異なります(プロバイダーの機能を参照)。設定されていない(API キーがない)プロバイダーや、要求されたメディアタイプに対応していないプロバイダーを provider に指定すると、エラーが返されます。設定済みのプロバイダーから自動選択するには、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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。