Skip to main content
Glama

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

Related MCP server: universal-image-mcp

Quick Start

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

# 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

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

Environment Variables

Variable

Required

Description

OPENAI_API_KEY

At least one provider key

OpenAI API key — enables image, video, audio generation, and transcription via gpt-image-1, sora-2, tts-1, and whisper-1

XAI_API_KEY

At least one provider key

xAI API key — enables image and video generation via grok-imagine-image and grok-imagine-video

GEMINI_API_KEY

At least one provider key

Gemini 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_KEY

At least one provider key

ElevenLabs API key — enables audio generation (TTS, sound effects) and transcription via Flash v2.5 and Scribe v1

BFL_API_KEY

At least one provider key

BFL API key — enables image generation and editing via FLUX Pro 1.1 and FLUX Kontext

MEDIA_OUTPUT_DIR

No

Directory for saved media files. Defaults to the current working directory

Available Tools

generate_image

Generate an image from a text prompt.

Parameter

Type

Required

Description

prompt

string

Yes

Text description of the image to generate

provider

string

No

Provider to use: openai, xai, google, bfl. Auto-selects if omitted

aspectRatio

string

No

Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4

quality

string

No

Quality level: low, standard, high

outputDirectory

string

No

Directory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd

providerOptions

object

No

Provider-specific parameters passed through directly

generate_video

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

Parameter

Type

Required

Description

prompt

string

Yes

Text description of the video to generate

provider

string

No

Provider to use: openai, xai, google. Auto-selects if omitted

duration

number

No

Video duration in seconds (provider limits apply)

aspectRatio

string

No

Aspect ratio: 16:9, 9:16, 1:1

resolution

string

No

Resolution: 480p, 720p, 1080p

outputDirectory

string

No

Directory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd

providerOptions

object

No

Provider-specific parameters passed through directly

generate_audio

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

Parameter

Type

Required

Description

text

string

Yes

Text to convert to speech, or a description of the sound effect to generate

provider

string

No

Provider to use: openai, google, elevenlabs. Auto-selects if omitted

voice

string

No

Voice name (provider-specific). OpenAI: alloy, ash, coral, echo, fable, nova, onyx, sage, shimmer. Google: Kore, Charon, Fenrir, Aoede, Puck, etc. ElevenLabs: voice ID

speed

number

No

Speech speed multiplier (OpenAI only): 0.25 to 4.0

format

string

No

Output format (OpenAI only): mp3, opus, aac, flac, wav, pcm

outputDirectory

string

No

Directory to save the generated file. Absolute or relative path. Defaults to MEDIA_OUTPUT_DIR or cwd

providerOptions

object

No

Provider-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).

Parameter

Type

Required

Description

audioPath

string

Yes

Absolute path to the audio file to transcribe

provider

string

No

Provider to use: openai, elevenlabs. Auto-selects if omitted

language

string

No

Language code (e.g., en, fr, es) to hint the transcription language

providerOptions

object

No

Provider-specific parameters passed through directly

list_providers

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

Provider Capabilities

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

Image Aspect Ratios

Provider

1:1

16:9

9:16

4:3

3:4

OpenAI

xAI

Gemini

BFL

Video Aspect Ratios & Resolutions

Provider

16:9

9:16

1:1

480p

720p

1080p

OpenAI

xAI

Gemini

Audio Formats

Provider

mp3

opus

aac

flac

wav

pcm

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

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

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:

{
  "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):

{
  "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:

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

Windsurf

Add to ~/.codeium/windsurf/mcp_config.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:

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

License

MIT

Available Tools

6 tools
edit_imageB

Edit an existing image using AI. Provide the path to an image and a text prompt describing the desired edits. Providers: openai, xai, google, bfl (FLUX Kontext). Available: none configured

ParametersJSON Schema
NameRequiredDescriptionDefault
imagePathYesAbsolute path to the source image file to edit
promptYesText description of the edits to apply to the image
providerNoProvider to use: openai, xai, google, bfl. Auto-selects if omitted.
outputDirectoryNoDirectory to save the edited file. Supports absolute or relative paths (resolved from cwd). Defaults to MEDIA_OUTPUT_DIR env var or cwd.
providerOptionsNoProvider-specific parameters passed through directly

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should cover behavioral traits. It mentions providers and 'none configured' but does not disclose whether edits are destructive, if the original is preserved, or what happens on failure. Key mutability and safety information is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded. The second sentence about 'Available: none configured' is ambiguous and may confuse agents, slightly reducing conciseness. Otherwise efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, nested objects, and multiple providers, the description lacks details on providerOptions, outputDirectory behavior, and what happens when no providers are configured. Output schema absence increases need for description, which is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The tool description adds little beyond restating path and prompt, and listing providers already described in schema. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool edits existing images using AI, with specific references to providing a path and prompt. It distinguishes from sibling tools like generate_image which create new images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for editing existing images but does not explicitly exclude create-focused tools or mention when to use alternatives. It lacks guidance on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_audioB

Generate audio from text using AI. Supports text-to-speech and sound effects. Providers: openai, google, elevenlabs. ElevenLabs: use providerOptions.mode = "sound-effect" for sound effects. Available: none configured

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to convert to speech, or a description of the sound effect to generate
providerNoProvider to use: openai, google, elevenlabs. Auto-selects if omitted.
voiceNoVoice name (provider-specific). OpenAI: alloy, ash, coral, echo, fable, nova, onyx, sage, shimmer. Google: Kore, Charon, Fenrir, Aoede, Puck, etc. ElevenLabs: voice ID.
speedNoSpeech speed multiplier (OpenAI only): 0.25 to 4.0
formatNoOutput format (OpenAI only): mp3, opus, aac, flac, wav, pcm
outputDirectoryNoDirectory to save the generated file. Supports absolute or relative paths (resolved from cwd). Defaults to MEDIA_OUTPUT_DIR env var or cwd.
providerOptionsNoProvider-specific parameters passed through directly

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only mentions providers and a cryptic 'Available: none configured'. It fails to mention that the tool generates audio files, uses external APIs, saves files to outputDirectory, or any rate limits or costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences. It front-loads the core purpose. However, the last sentence 'Available: none configured' is vague and potentially confusing, slightly detracting from clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, multiple providers, nested objects) and no output schema, the description is incomplete. It omits the overall workflow (e.g., saving audio files) and does not explain how providerOptions work beyond a single example.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal value: it highlights ElevenLabs mode for sound effects and lists providers. It does not expand on voice, speed, format, or outputDirectory beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate audio from text using AI' and specifies text-to-speech and sound effects. It distinguishes itself from sibling tools like transcribe_audio (speech-to-text) and other media generators (image, video) by focusing on audio output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists providers and mentions ElevenLabs sound effect mode, implying use cases. However, it does not explicitly state when to use this tool versus alternatives like transcribe_audio or when not to use it, nor does it provide clear context for selecting providers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageB

Generate an image from a text prompt using AI. Providers: openai (DALL-E), xai (Aurora), google (Imagen), bfl (FLUX). Available: none configured

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesText description of the image to generate
providerNoProvider to use: openai, xai, google, bfl. Auto-selects if omitted.
aspectRatioNoAspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4
qualityNoQuality level: low, standard, high
outputDirectoryNoDirectory to save the generated file. Supports absolute or relative paths (resolved from cwd). Defaults to MEDIA_OUTPUT_DIR env var or cwd.
providerOptionsNoProvider-specific parameters passed through directly

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description does not disclose behavioral traits such as what the tool returns, side effects, rate limits, or authentication needs. It only states the basic function and available providers, which is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very short and to the point, with no redundant words. However, the phrase 'Available: none configured' is cryptic and could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 6 parameters and no output schema, the description does not explain what the tool returns (e.g., file path, base64), nor does it clarify behavior for optional parameters like provider auto-selection. It is insufficient for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds provider names with model aliases (e.g., openai (DALL-E)) and mentions availability, but this is marginal value beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool generates an image from a text prompt using AI, listing supported providers. It distinguishes from sibling tools like edit_image, generate_audio, generate_video, transcribe_audio, and list_providers by focusing on image generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description lacks guidance on when to use this tool versus alternatives like edit_image. It lists providers but does not explain selection criteria, nor does it specify prerequisites or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoC

Generate a video from a text prompt using AI. Optionally provide an image as the first frame. Available providers: none configured

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesText description of the video to generate
providerNoProvider to use: openai, xai, google. Auto-selects if omitted.
durationNoVideo duration in seconds (provider limits apply)
aspectRatioNoAspect ratio: 16:9, 9:16, 1:1
resolutionNoResolution: 480p, 720p, 1080p
imagePathNoPath to an image to use as the first frame of the video (OpenAI and Google only)
outputDirectoryNoDirectory to save the generated file. Supports absolute or relative paths (resolved from cwd). Defaults to MEDIA_OUTPUT_DIR env var or cwd.
providerOptionsNoProvider-specific parameters passed through directly

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions generation from text and optional image, but does not disclose any side effects, authentication needs, rate limits, or the impact of 'none configured' providers. The mutation nature is implied but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the primary purpose, and avoids redundancy. It is concise but could be slightly more informative without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, nested objects, no output schema, no annotations), the description is too brief. It lacks details on behavior, return values, provider limits, duration constraints, and error conditions, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds context about the optional image (aligns with imagePath) and notes provider configuration status, but otherwise does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a video from a text prompt using AI, with an optional image as the first frame. It does not explicitly differentiate from sibling tools like generate_image, but the purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance: it notes the optional image and the lack of configured providers. It does not specify when to use this tool vs alternatives (e.g., when to use generate_image instead) or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_providersA

List all configured media generation providers and their capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It only restates the tool's action ('list all...') without revealing any behavioral traits (e.g., if it is read-only, rate limits, or data freshness). This is insufficient for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the tool's purpose with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (0 params, no output schema, no annotations), the description is adequate but lacks additional context such as what exactly 'capabilities' entails or how the response is structured. It could be slightly more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage. As per guidelines, baseline for 0 parameters is 4. The description does not need to add parameter details since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing all configured media generation providers and their capabilities. It uses a specific verb ('List') and resource ('providers') and is well-distinguished from sibling tools that perform actions (edit, generate, transcribe).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when needing to see providers and capabilities) but does not explicitly state when not to use it or mention alternatives. While siblings are action-oriented, no direct exclusions or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audioA

Transcribe audio to text using AI (speech-to-text). Providers: openai (Whisper), elevenlabs (Scribe). Available: none configured

ParametersJSON Schema
NameRequiredDescriptionDefault
audioPathYesAbsolute path to the audio file to transcribe
providerNoProvider to use: openai, elevenlabs. Auto-selects if omitted.
languageNoLanguage code (e.g., 'en', 'fr', 'es') to hint the transcription language
providerOptionsNoProvider-specific parameters passed through directly

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses providers and configuration state but omits details like supported formats, file size limits, or error behavior. Only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. Every sentence provides essential information: purpose and provider availability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing key details such as output format (text), supported audio formats, and error cases. With no output schema, the description should be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. The description adds value by listing providers and noting 'none configured', providing context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool transcribes audio to text using AI, lists specific providers (openai, elevenlabs), and distinguishes it from sibling tools like generate_audio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Available: none configured' but does not explicitly state when to use this tool vs alternatives or provide prerequisites. Usage context is implied but not thorough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.4.0
    • First observededit_image
    • First observedgenerate_audio
    • First observedgenerate_image
    • First observedgenerate_video
    • First observedlist_providers
    • First observedtranscribe_audio

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct media type and action (edit_image, generate_audio, etc.), with no overlap in purpose. An agent can easily distinguish them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., generate_image, list_providers), making the API predictable and easy to navigate.

Tool Count5/5

Six tools cover image, audio, video, and transcription domains. This is a well-scoped set for a multimodal server, not too few or too many.

Completeness4/5

Core generation and transcription tasks are covered, and editing is available for images. Missing audio/video editing and image-to-video, but overall it's a reasonable surface for common multimodal workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers