mcp-media-engine
The mcp-media-engine server provides AI-powered tools for generating images, videos, and audio, plus job management for async workflows.
Image Generation
generate_image— Generate any image from a text prompt using multiple models (DALL-E 3, Stable Diffusion, GPT-Image, etc.) with quality tiers (basic, standard, premium) and options like ControlNet and face swapgenerate_article_hero_image— Create hero banners for blog posts, CMS heroes, and newsletter headersgenerate_email_header_image— Generate wide-format headers optimized for marketing emailsgenerate_social_teaser_image— Produce social graphics optimized for LinkedIn, Twitter/X, Instagram, or Substack with auto-selected aspect ratios
Video Generation
generate_video— General AI video generation with provider-specific parametersgenerate_article_teaser_video— Create short 15–30s teaser videos from article content for YouTube Shorts, TikTok, and Instagram Reels
Audio Generation
generate_audio— Text-to-speech synthesis with multiple voices, formats (MP3, FLAC, AAC, Opus), and speed controlsgenerate_article_narration— Generate podcast-style narration of articles for audio newsletters and accessibility voiceovers
Job Management
wait_for_job— Poll until a media job completes (up to 10 minutes), returning the final resultget_job_status— Check the current status and result of any job by IDlist_jobs— List and filter jobs by type, status, date range, with sorting and pagination
All generation tools return job IDs for non-blocking operation, and support brand/style customization via tone, aspect ratio, target platform, and reference images.
Generates AI-powered images and videos optimized for Instagram, including social teaser images and article teaser videos with appropriate aspect ratios and styles for sharing on the platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-media-engineGenerate an image of a mountain landscape with a lake."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-media-engine
MCP server for MediaEngine — AI-powered image, audio, and video generation for Claude, Cursor, and other MCP clients.
Tools
Tool | Description |
| Generate images from text prompts — full model catalog (Nano Banana, GPT-Image) |
| Hero banner for blog posts and articles |
| Header image for marketing emails |
| Social media graphics for LinkedIn, Twitter, Instagram |
| AI video generation with provider-specific params |
| Short teaser videos from article content |
| Text-to-speech synthesis |
| Audio narration for articles and blog posts |
| Poll until a media job completes |
| Check status of a media job |
| List media jobs with filtering and pagination |
Related MCP server: multimodal-mcp
Installation
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mediaengine": {
"command": "npx",
"args": ["-y", "mcp-media-engine"],
"env": {
"MEDIAENGINE_BASE_URL": "https://your-mediaengine-instance.com",
"MEDIAENGINE_API_KEY": "your-api-key"
}
}
}
}Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"mediaengine": {
"command": "npx",
"args": ["-y", "mcp-media-engine"],
"env": {
"MEDIAENGINE_BASE_URL": "https://your-mediaengine-instance.com",
"MEDIAENGINE_API_KEY": "your-api-key"
}
}
}
}Configuration
Environment Variable | Required | Description |
| Yes | Your MediaEngine API base URL |
| Yes | Your MediaEngine API key |
| No | Log level (debug, info, warn, error). Default: info |
Quality Tiers
Tier | Model | Description |
| Nano Banana | Fast and affordable |
| Nano Banana | Balanced quality (default) |
| GPT-Image | Highest quality — clean text rendering |
License
MIT
Available Tools
11 toolsgenerate_article_hero_imageA
Generate a hero banner image for a blog post, article, or editorial page. Creates an AI-generated visual from the title and summary — ideal for CMS hero banners, newsletter headers, and article thumbnails. Use this when you need to create a featured image, hero graphic, or cover illustration for written content. Supports brand style hints and reference images.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Output image dimensions. Defaults to 1024x1024. | |
| tone | No | Desired emotional tone (e.g. "professional", "playful", "urgent"). Optional. | |
| title | No | Title of the article, email, or post. Used to derive visual style and subject. | |
| summary | No | Short summary or body text to guide image composition. If omitted, title alone is used. | |
| brand_style | No | Brand aesthetic descriptor (e.g. "minimalist dark", "bold colorful"). Optional. | |
| aspect_ratio | No | Explicit aspect ratio override (e.g. "16:9", "1:1", "4:5"). Optional. | |
| content_type | No | Type of content this image supports (blog, newsletter, email, social). Defaults to blog. | |
| target_platform | No | Platform this image targets, used to pick aspect ratio and style conventions. | |
| reference_images | No | Optional reference images with roles (e.g. brand logo, style reference). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description says 'AI-generated visual' but omits behavioral details like async operation, credit cost, or whether it is read-only. With no annotations, the description should disclose more about the generation process and any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences that front-load the purpose and use cases. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention the result format (e.g., URL, base64, job ID). Given sibling tools like get_job_status and wait_for_job, the tool likely returns an async job reference, but this is not indicated. The description should explain the output to help an agent use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds context about brand style hints and reference images, but does not elaborate beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates a hero banner image for blog posts, articles, etc. Lists specific use cases (CMS banners, newsletter headers, thumbnails) and differentiates from siblings like generate_social_teaser_image and generate_email_header_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use it for featured images and cover illustrations. Does not explicitly mention when not to use or alternatives, but the context from sibling tools provides implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_article_narrationA
Generate audio narration of article or blog post content using text-to-speech. Creates podcast-style audio, accessibility voiceovers, and audio newsletters from written text. Pass the article title and body text; the tool selects an appropriate voice and submits an async audio job. Returns a job ID to poll for the finished audio file.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Full article body to narrate (max 4096 characters). | |
| speed | No | Playback speed multiplier 0.25–4.0 (default: 1.0). | |
| title | No | Article title. Prepended to the narration if provided. | |
| voice | No | Narration voice (default: nova — warm and clear for long-form). | |
| format | No | Output format (default: mp3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the async nature, returns a job ID, and automated voice selection, but does not detail error behavior, cost, or length limits beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three succinct sentences cover purpose, use cases, parameters, and workflow. No wasted words; each sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return (job ID) and async behavior. It covers inputs, process, and output, but could briefly mention polling or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by providing context for defaults (e.g., 'warm and clear' for nova voice, prepending title, maxLength for text). This enhances understanding beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates audio narration from article or blog post content, specifying use cases like podcast-style audio, accessibility voiceovers, and audio newsletters. It distinguishes itself from the sibling 'generate_audio' by focusing on article-specific inputs and async job submission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (for article narration) but does not explicitly compare to alternatives like 'generate_audio'. It lacks clear guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_audioA
Generate audio from text using text-to-speech (TTS) synthesis. Create voiceovers, narrations, podcast audio, or any spoken audio from text input. Supports multiple voices (alloy, echo, fable, onyx, nova, shimmer), formats (MP3, FLAC, AAC, Opus), and playback speeds. Use the intent-specific generate_article_narration tool for article content.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize into audio (max 4096 characters). | |
| speed | No | Playback speed multiplier, 0.25–4.0 (default: 1.0). | |
| voice | No | Voice to use for synthesis (default: nova). | |
| format | No | Output audio format (default: mp3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral details. It lists supported voices, formats, and speed range, which are key behavioral traits. However, it does not mention cost, latency, or whether the output is a downloadable file or URL, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core purpose, second lists supported options and provides a usage alternative. No wasted words, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers input parameters well, it does not describe the output format (e.g., returns an audio file, URL, or ID) despite no output schema existing. This omission reduces completeness for an AI agent needing to handle the result. Additionally, the character limit is in the schema but not reinforced in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a description. The description merely enumerates the voices and formats already in the schema, adding no new semantic value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: 'Generate audio from text using text-to-speech (TTS) synthesis.' It specifies the action (generate), resource (audio), and method (TTS), making it distinct from sibling tools, especially by explicitly naming generate_article_narration as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides explicit guidance on when to use this tool vs. alternatives: 'Use the intent-specific generate_article_narration tool for article content.' This helps the agent decide which tool to invoke based on the type of content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_email_header_imageA
Create an AI-generated header image for marketing emails and newsletters. Optimised for wide-format email banners (typically 600px wide) from subject line and body text. Accepts tone and brand_style hints to stay on-brand. Returns a queued media job whose result URL can be embedded in the email template. Use this to create email graphics, newsletter banners, or promotional header visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Output image dimensions. Defaults to 1024x1024. | |
| tone | No | Desired emotional tone (e.g. "professional", "playful", "urgent"). Optional. | |
| title | No | Title of the article, email, or post. Used to derive visual style and subject. | |
| summary | No | Short summary or body text to guide image composition. If omitted, title alone is used. | |
| brand_style | No | Brand aesthetic descriptor (e.g. "minimalist dark", "bold colorful"). Optional. | |
| aspect_ratio | No | Explicit aspect ratio override (e.g. "16:9", "1:1", "4:5"). Optional. | |
| content_type | No | Type of content this image supports (blog, newsletter, email, social). Defaults to blog. | |
| target_platform | No | Platform this image targets, used to pick aspect ratio and style conventions. | |
| reference_images | No | Optional reference images with roles (e.g. brand logo, style reference). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns a 'queued media job' whose result URL can be embedded in email templates, which is critical behavioral information beyond the input schema. It does not mention authentication, rate limits, or potential destructive actions, but given no annotations, this level of detail is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with purpose, then optimization, then parameters, and ending with usage. It is concise at 5 sentences with no unnecessary repetition, though it could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the output is a queued job and mentions that the result URL can be embedded, which is essential for integration. It covers tone and brand style hints, and the 9 parameters are all described in the schema. It does not elaborate on job status or error handling, but sibling tools (get_job_status, wait_for_job) cover that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 minimal extra meaning beyond the schema (e.g., mentioning '600px wide' implies default aspect ratio concerns, but not explicitly tied to parameters). The description does not significantly enhance understanding of parameter behavior or dependencies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create an AI-generated header image for marketing emails and newsletters.' It specifies the resource (email header image) and verb (generate), and distinguishes from siblings by mentioning optimization for wide-format email banners (600px wide), contrasting with tools like generate_social_teaser_image or generate_article_hero_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use this to create email graphics, newsletter banners, or promotional header visuals.' However, it does not explicitly state when not to use this tool or compare it to alternatives, leaving some ambiguity about selection criteria among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageA
Generate an image from a text prompt using the MediaEngine model catalog. Use this for any image creation request: illustrations, photos, AI art, logos, icons, graphics, or visuals. Accepts a raw prompt and optional aspect ratio, quality tier, model id, and advanced style parameters. Quality tiers: basic/standard (Nano Banana — fast, inexpensive default), premium (GPT-Image — strongest prompt adherence and clean text rendering). One integration, every model: new models are added to the catalog server-side, so the same wiring keeps working. Style guidance: put the desired look in the prompt itself (e.g. "black and white archival photograph", "flat vector illustration") and bake negatives into the prompt ("no text, no words, no logos"). Use the intent-specific tools (generate_article_hero_image, etc.) when you know the content type.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Legacy size hint; prefer aspect_ratio. | |
| model | No | Catalog model id (see https://mcpmediaengine.com/models). Overrides quality tier. Default: nano-banana. | |
| prompt | Yes | Text description of the image to generate. Include the desired style in the prompt (e.g. "photorealistic", "watercolor", "pencil sketch") and constraints like "no text, no words, no logos". | |
| quality | No | Quality tier: basic/standard (Nano Banana — fast default), premium (GPT-Image — text rendering, strict adherence) (default: standard). | |
| face_swap | No | Use face swap with reference images (default image model). | |
| hires_fix | No | High-resolution fix with super_resolution (default image model). | |
| scheduler | No | Advanced: sampler/scheduler algorithm (default image model). | |
| controlnet | No | Advanced: structural conditioning mode (default image model). | |
| film_grain | No | Add film grain effect (default image model). | |
| aspect_ratio | No | Output aspect ratio (default: 1:1). | |
| face_correct | No | Apply face correction (default image model). | |
| style_preset | No | Optional style preset (default image model). | |
| color_grading | No | Optional color grading preset (default image model). | |
| inpaint_faces | No | Inpaint faces for better quality (default image model, requires super_resolution). | |
| mask_image_url | No | URL of mask image for inpainting (default image model). | |
| controlnet_txt2img | No | Use structural conditioning for txt2img (default image model). | |
| controlnet_conditioning_scale | No | Conditioning scale 0.0-1.0 (default image model). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description explains model catalog updates, quality tiers, and style guidance. It omits cost/rate limits but adequately discloses behavior for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough and well-structured, front-loading purpose, then parameters, then usage guidance. Slightly long but no redundancy; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return format (e.g., image URL). It covers usage well but misses output details and error handling. Adequate for 17-param tool with good schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond schema: explains quality tiers, style prompt tips, and clarifies that 'size' is legacy. With 100% schema coverage, it adds useful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and resource 'image from a text prompt' using the MediaEngine model catalog. It also distinguishes from sibling tools by mentioning intent-specific tools like generate_article_hero_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for any image creation request' and advises to use intent-specific tools when the content type is known, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoA
Generate a video using AI video generation. Use this for any video creation request when the intent-specific video tools do not fit. Accepts provider-specific generation parameters directly.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Optional provider name. | |
| inputParams | Yes | Provider-specific generation parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description lacks details on behavioral aspects like idempotency, rate limits, authentication, or what 'provider-specific parameters' entail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with main purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and nested object parameters; description could be more complete about expected output or parameter structure, given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds 'accepts provider-specific generation parameters directly', which aligns with inputParams but doesn't significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates videos using AI, and explicitly distinguishes from intent-specific video tools like generate_article_teaser_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this when intent-specific tools do not fit', providing clear when-to-use and implied alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusA
Get the status and result of a media job by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The media job ID (e.g. "mjob_..."). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description must fully disclose behavior. It only states 'get status and result' but does not clarify whether it is read-only, if it returns immediately or blocks, or what the response structure is. This leaves the agent guessing about side effects and output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words; it is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimally adequate to invoke it. However, it lacks details about the return format and behavior (e.g., whether it polls or returns cached status), which would help the agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'jobId' described as 'The media job ID...'. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'status and result of a media job by its ID', making the tool's purpose unambiguous. It distinguishes itself from siblings like 'list_jobs' (multiple jobs) and 'generate_*' (creating jobs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is clear: call with a job ID to get its status. However, no explicit exclusions or alternatives are provided; the context of sibling tools implies when to use this vs. 'wait_for_job' or 'list_jobs'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsA
List media jobs with optional filtering, sorting, and cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for offset-based pagination (1-indexed). | |
| sort | No | Field to sort by (default: createdAt). | |
| type | No | Filter by media type. | |
| limit | No | Max items to return, 1–100 (default: 20). | |
| order | No | Sort direction (default: desc). | |
| cursor | No | Opaque cursor returned by a previous list_jobs call for pagination. | |
| status | No | Filter by job status. | |
| pageSize | No | Items per page for offset-based pagination (default: 20). | |
| createdAfter | No | ISO 8601 datetime — return jobs created after this time. | |
| createdBefore | No | ISO 8601 datetime — return jobs created before this time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions filtering, sorting, and pagination but omits details like whether it is a read-only operation, rate limits, or if it includes all jobs (e.g., only active). The basic behaviors are covered, but deeper transparency is lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence conveys the entire purpose and key features without unnecessary words. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description effectively summarizes capabilities. However, it does not mention return structure (e.g., list of jobs with pagination metadata), leaving a minor gap in completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in schema. The description adds only a high-level summary ('optional filtering, sorting, and cursor-based pagination') without new semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'List', the resource 'media jobs', and key features like filtering, sorting, and pagination. It clearly distinguishes this from sibling tools like get_job_status (single job) and generate_* (creation) by focusing on listing with options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving multiple jobs with various filters, contrasting with sibling tools like get_job_status (singular) and wait_for_job (polling). However, it does not explicitly state when not to use or provide alternative tool names, leaving some guidance to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_jobA
Wait for a media generation job to complete — polls until the image, video, or audio is ready or the timeout is reached. Use this to get the final result without manually calling get_job_status in a loop. Returns the completed job on success or an error if the timeout expires.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The media job ID to wait for (e.g. "mjob_..."). | |
| timeoutSeconds | No | Maximum seconds to wait before giving up (default: 300). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly discloses polling, timeout, and return of completed job or error on timeout. However, it does not mention behavior for job failures (e.g., generation error), which could be misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear, front-loaded sentences with no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity (2 params, no output schema) but description explains return values. Still, it lacks details on error types and the structure of the completed job object. Sibling tool context is well addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description does not add meaning beyond the schema (e.g., no format examples for jobId). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Wait for a media generation job to complete' with specific verb and resource, and explicitly differentiates from 'get_job_status' by avoiding manual polling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to get the final result without manually calling get_job_status in a loop', providing clear when-to-use and naming the alternative sibling tool.
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. Dates show when Glama detected each change.
1 tool update
v1.0.2- Changed
generate_image20 fields changed- added
Input schema / properties / aspect_ratioAdded value: +{ + "description": "Output aspect ratio (default: 1:1).", + "enum": [ + "1:1", + "16:9", + "9:16", + "21:9", + "9:21", + "3:2", + "2:3", + "5:4", + "4:5", + "4:3", + "3:4" + ], + "type": "string" +} - removed
Input schema / properties / astria_styleRemoved value: -{ - "description": "Astria style preset (Astria only).", - "enum": [ - "Cinematic", - "Animated", - "Digital Art", - "Photographic", - "Fantasy art", - "Neonpunk", - "Enhance", - "Comic book", - "Lowpoly", - "Line art" - ], - "type": "string" -} - changed
Input schema / properties / color_grading / descriptionPrevious value: -"Color grading preset (Astria only)."New value: +"Optional color grading preset (default image model)." - changed
Input schema / properties / controlnet / descriptionPrevious value: -"ControlNet model (Astria only)."New value: +"Advanced: structural conditioning mode (default image model)." - changed
Input schema / properties / controlnet_conditioning_scale / descriptionPrevious value: -"ControlNet conditioning scale 0.0-1.0 (Astria only)."New value: +"Conditioning scale 0.0-1.0 (default image model)." - changed
Input schema / properties / controlnet_txt2img / descriptionPrevious value: -"Use ControlNet for txt2img (Astria only)."New value: +"Use structural conditioning for txt2img (default image model)." - changed
Input schema / properties / face_correct / descriptionPrevious value: -"Apply face correction (Astria only)."New value: +"Apply face correction (default image model)." - changed
Input schema / properties / face_swap / descriptionPrevious value: -"Use face swap with training images (Astria only)."New value: +"Use face swap with reference images (default image model)." - changed
Input schema / properties / film_grain / descriptionPrevious value: -"Add film grain effect (Astria only)."New value: +"Add film grain effect (default image model)." - changed
Input schema / properties / hires_fix / descriptionPrevious value: -"Use high-resolution fix with super_resolution (Astria only)."New value: +"High-resolution fix with super_resolution (default image model)." - changed
Input schema / properties / inpaint_faces / descriptionPrevious value: -"Inpaint faces for better quality (Astria only, requires super_resolution)."New value: +"Inpaint faces for better quality (default image model, requires super_resolution)." - changed
Input schema / properties / mask_image_url / descriptionPrevious value: -"URL of mask image for inpainting (Astria only)."New value: +"URL of mask image for inpainting (default image model)." - changed
Input schema / properties / model / descriptionPrevious value: -"Model to use for image generation (default: determined by quality tier)."New value: +"Catalog model id (see https://mcpmediaengine.com/models). Overrides quality tier. Default: nano-banana." - changed
Input schema / properties / model / enumPrevious value: -[ - "astria", - "dall-e-3", - "stable-diffusion", - "chatgpt-image" -]New value: +[ + "nano-banana", + "gpt-image-2" +] - changed
Input schema / properties / prompt / descriptionPrevious value: -"Text description of the image to generate."New value: +"Text description of the image to generate. Include the desired style in the prompt (e.g. \"photorealistic\", \"watercolor\", \"pencil sketch\") and constraints like \"no text, no words, no logos\"." - changed
Input schema / properties / quality / descriptionPrevious value: -"Quality tier: basic (fast/cheap), standard (Nano Banana Gemini 2.5), premium (GPT Image 2.0) (default: standard)."New value: +"Quality tier: basic/standard (Nano Banana — fast default), premium (GPT-Image — text rendering, strict adherence) (default: standard)." - changed
Input schema / properties / scheduler / descriptionPrevious value: -"Scheduler algorithm (Astria only)."New value: +"Advanced: sampler/scheduler algorithm (default image model)." - changed
Input schema / properties / size / descriptionPrevious value: -"Output image dimensions (default: 1024x1024)."New value: +"Legacy size hint; prefer aspect_ratio." - removed
Input schema / properties / styleRemoved value: -{ - "description": "Image style, optional (dall-e-3 only).", - "enum": [ - "natural", - "vivid" - ], - "type": "string" -} - added
Input schema / properties / style_presetAdded value: +{ + "description": "Optional style preset (default image model).", + "enum": [ + "Cinematic", + "Animated", + "Digital Art", + "Photographic", + "Fantasy art", + "Neonpunk", + "Enhance", + "Comic book", + "Lowpoly", + "Line art" + ], + "type": "string" +}
11 tool updates
v1.0.0- First observed
generate_article_hero_image - First observed
generate_article_narration - First observed
generate_article_teaser_video - First observed
generate_audio - First observed
generate_email_header_image - First observed
generate_image - First observed
generate_social_teaser_image - First observed
generate_video - First observed
get_job_status - First observed
list_jobs - First observed
wait_for_job
TDQS
Tools are generally distinct with specific intent-based variants (e.g., generate_article_hero_image vs. generate_image). Overlap exists between general and specific generators, but descriptions clearly guide usage, reducing confusion.
All tool names follow a consistent verb_noun pattern (generate_*, get_*, list_*, wait_for_*). No mixing of conventions, making the set predictable.
11 tools cover the core media operations (generate images, audio, video in general and specific forms, plus job management) without being excessive. Scope is well-balanced.
The tool set covers generation and job lifecycle (status, listing, waiting). Missing delete/abort jobs is minor. Specific media types (article, email, social) are well-represented, leaving few gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Wan AI video generation
MCP server for Qwen Image 3 AI image generation
MCP server for Google Veo AI video generation
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for the XBrush AI media generation API, enabling image, video, audio generation, editing, and more directly from Claude Code via async polling.2128MIT
- AlicenseAqualityCmaintenanceMulti-provider media generation MCP server that generates images, videos, audio, and transcriptions from text prompts using OpenAI, xAI, Gemini, ElevenLabs, and BFL through a single unified interface.6741MIT
- AlicenseAqualityCmaintenanceOpen-source MCP server for AI image and video creation, enabling prompt library search, prompt enhancement, and media generation from Claude Code, Cursor, and other MCP hosts.8MIT
- AlicenseAqualityAmaintenancemediamcp is an MCP server that connects your AI assistant — Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, or anything else that speaks MCP — to cloud media models (Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) via OpenRouter or any OpenAI-compatible API.6763MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tr1ckyMag1ca1/mcp-media-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server