ai-media-mcp
ai-media-mcp
Ein MCP-Server in einer einzigen Datei ohne Abhängigkeiten für die Bild- und Videogenerierung über GPT-Image / Gemini / Grok / Jimeng – mit Zero Base64: Alles wirt auf der Feestplatte gespeichert und es werden nur Dateipfade zurükgegeben.
Node.js 18 erforderlich. Kein
npm install, kein Build-Schritt. Führen Sie einfach die.mjsaus.
✨ Funktionen
🖼 Bildgenerierung –
generate_image: ein OpenAI-kompatiber Pfad, Modellname-Durchreichung (gpt-image-1/gemini-3-pro-image/grok-imagine-image-quality/doubao-seedream/ Jimeng-Bildmodelle …)🎬 –
genera_video(nur einreichen) /get_vodeo_status(abfragen) /genera_video_and_wait(eirsten → abfragen → herunterladen). Automatisches Routting für Grok-Video und Jimeng-Video.🔑 Multi-Key-Routing – mehrere Modelle verwenden automatisch ihren eigenen API-Schlüssel und ihre eigenenBase-URL (häufig bei Relay- oder Aggregator-Gateways).
🚫 Zero- Base64 – Bilder/Videos werden lokal auf der Festplatte gespeichert; Antworten enthalten nur
Saved to: ...(..* bytes vs. ~3 MB bei typischen MCP-Wrappern).**📚 Capability-Nachsch## –
list_modal_capablities: unterstützte Auflösungen / Seitenverhältnisse / Modellurunden pro Modell abfragen; Reverse-Lookup (size: "720p",aspect_ratio: "21:9"). Zwei Kosten.🖼 Multi-Referenzbild (Bild-zu-Bild) –
images-Array bis zu 5: Gemini-natives-Multi-Channel über mehrereinlineData; GPT/Gemini-Arrays mit automatischem Fallbackedits → generations. Das angeforderte Modell bleibt erhalten; GPT, Gemini und Grok haben jeweils Zwei-Referenz-Gateway-Tests bestanden.🎬 Reference-Image-Video (Bild-zu-Video)– einzeln
image(GrokimageURL, Jimgfirst_frame_url) oder mehrreimages(Jimengreference_image_urlsbis zu 9, Grokimage_url-Arrays als Fallback).✍️ Autoprompt-Verbesserung – mit
auto_prompt: true(Standard): der Fallback – falls der Prompt kürzer als 15 Zeichen ist und Referenzbilder vorhanden sind – wendet eine interne Vorlage für „nahtlose Fusion“ an (Beleuchtungs- / Perspektiv- / Farb-Korrektur- / Anti-Freistellungs-Anweisungen, verifiziert durch echte Generationen).🧪
@chatbox-latest– übergeben Sieimage: "@chatbox-latest",um das zuletzt in das Chatbox-Fenster gezogene Bild automatisch zu lesen (chatbox-blobs\pictureinput-*). Wiederholte Aliase inimageserhalten die UI-Anhangungs-Reihenfolge.🔎 Verifizierbare Referenzen – jedes erzeugte Bild meldet geordnete
reference_images-Metadaten, die aus den genauen Bytes abgeleitet werden, die an den Anbieter gesendet wurden: sichere Quelle, MIME, Byte-Nummer, Abmessungen und SHA-256.📥 Sandbox-Zustellung –
Aufrufer können ihre beschreibbare Sandbox alsoutput_dirübergeben,return_mode: "path"` beibehalten und erhaltene Dateien in Download-Karten umwandeln, ohne Dateien aus nicht dazugehörigen externen Verzeichnissen zu verschieben.
Related MCP server: Gemini Image Generation MCP Server
📦 Installation
# Just clone/copy the mjs and run it directly
node ai-media-mcp.mjsKeine Abhängigkeiten. Fügen Sie es als stdio-Server zu Ihrem MCP-Cient hinzu (z. B. Chatbox / Claude Desktop):
{
"command": "node",
"args": ["/path/to/ai-media-mcp.mjs"],
"env": { "...": "see .env.example" }
}##⚙️ Konfiguration
Alle Variablen sind optional. Eine Gruppe greift nur auf die vereinheitlichen AI_MEDIA_API_KEY / AI_MEDIA_BASE_URL zu, ween die Gruppenvariable fehlt. Wenn die Schlüssel der Gruppe explizit vorhanden ist, aber leer sind (z. B. AI_MEDIA_JIMENG_API_KEY), istdiese Gruppe deaktivert und verwendet die Schlüssel keine andeen Anbieters.
Variabl | Gruppe | Beschreibung |
| GPT |
|
| Gemini | nativ GeminiAPI ( |
| Grok |
|
| Jineng |
|
| einheitlich | Fallback für alleGruppe |
| - | Standard-Bildmodell ( |
| - | Standard-Video-Modelle ( |
| - | Ausgegebenverzeichnisse |
| - |
|
| - |
|
| - | Timeoutss |
🧭 Routing
Nach Modellpräfix:
Modell-Präfix | Gruppe | API | |
| Gemini | native zertifikate nativ ( | |
| Grok | OpenAI-kompatible | |
| Jimeng | task-based | |
andere ( | GPT | OpenAI- | kompatible |
🛠 Tools
| Tool | Zweck |
| ---- ------ |
| generate_image | Bilder generieren (n, size/aspect_ratio/quality, referenzete images/images, auto_prompt) |
| generate_video | Nur Video-Aufgaben einlete (Grok/Jimeng auto-route, learn image/images unterstützt) |
| get_video_status | Abfragen des Video-Aufgabenstatus |
| generate_video_and_wait | einreichen → Abfragen → Herunterladen nach output_dir (oder dem konfigurierten Standardwert) und Dateipfade zurückgeben |
| list_model__capabilities | Abfragen der Modellfähigkeiten (Videos/Dateien), each/rückwärtssuche mit Größe oder Seitenhabitätigkeit |
| probe_capabilities | Prüfen der tatsächlich unterstützten Größe / Seitenverhältnissen durch minimale echte Aufrufe; -esultate im Cache |
📄 Lizenz
MIT
Available Tools
6 toolsgenerate_imageA
生成/编辑图片(OpenAI 兼容 /images/generations,模型名透传:gpt-image-2、gemini-3-pro-image、grok-imagine-image-quality、即梦、doubao-seedream 等)。默认保存到本地并只返回文件路径(零 base64)。
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | 可选,生成数量(部分供应商支持)。 | |
| size | No | 可选,例如 1024x1024、1536x1024。 | |
| image | No | 可选,参考图(单张):公网 URL、Data URL、Base64、本地图片路径,或 @chatbox-latest(自动读取 Chatbox 最近拖入的图片)。提供后为图生图(部分模型支持)。 | |
| model | No | 可选,默认取 AI_MEDIA_IMAGE_MODEL。模型名透传。 | |
| images | No | 可选,多张参考图(图生图/多模态):每项为公网 URL、Data URL、Base64、本地图片路径或 @chatbox-latest(自动取最新拖入图)。例:["D:\a.png", "https://..."]。 | |
| prompt | Yes | 图片内容描述,越具体效果越好。 | |
| quality | No | 可选,standard/hd/high/medium/low。 | |
| output_dir | No | 可选,保存目录(默认 AI_MEDIA_IMAGE_OUTPUT_DIR)。 | |
| resolution | No | 可选,如 1k、2k(部分 xAI/grok 网关支持)。 | |
| auto_prompt | No | 自动提示词增强(默认开启)。当你只上传了参考图、提示词不足 15 字时,自动套用内置'无缝融合'增强模板(光影/透视/色调一致性,解决贴图感)。false=关闭。 | |
| return_mode | No | path=仅返回路径(默认);inline=返回图片数据;both=两者。注意 inline 会把 base64 带入对话上下文。 | |
| aspect_ratio | No | 可选,如 1:1、16:9、9:16(仅当未指定 size 时发送)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses key behaviors: it saves to local storage by default, returns a file path with '零 base64', supports model name passthrough, and claims both generation and editing capabilities. It does not mention cost, rate limits, or auth dependencies, but the most operationally critical side effects are stated.
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 dense sentence that front-loads the action, names the API compatibility and key models, then states the default output behavior. Every clause carries useful information and there is no filler, making it efficient and well-structured.
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 12-parameter tool without annotations or output schema, the description covers the main decision-relevant topics: purpose, default return mode, and local saving. The remaining gaps (relationships such as size vs aspect_ratio, image vs images) are largely handled by the very detailed schema, so the calling context is nearly complete, but not fully self-contained.
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?
All parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description only restates 'model name passthrough', which the 'model' property already explains. There is no additional param-level meaning added beyond what the schema already provides.
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 action, '生成/编辑图片' (generate/edit images), and anchors it to the OpenAI-compatible /images/generations endpoint with examples of model names. It is a specific verb+resource that is unmistakably distinct from its sibling video and capability-inspection tools.
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 text implies the usage window (image generation/editing) but does not explicitly state when to choose this tool over alternatives such as generate_video, nor does it provide exclusions, prerequisites, or 'when not to use' guidance. A clear enough scope is inferable from purpose and sibling names, but no direct routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoA
提交视频生成任务(不等待)。grok-imagine-video* 走 /videos/generations;即梦 as-sd2.0-fast / video-ds-2.0* 走 /videos。自动按模型名路由。
| Name | Required | Description | Default |
|---|---|---|---|
| image | No | 可选,图生视频:公网 URL、Data URL、Base64 或本地图片路径。 | |
| model | No | 可选,默认取 AI_MEDIA_VIDEO_MODEL。 | |
| images | No | 可选,多张参考图生视频(最多 9 张):即梦 reference_image_urls / grok image_url 数组。无 image 时生效。 | |
| prompt | No | 视频内容与运动描述。文生视频必填;图生视频可选。 | |
| seconds | No | 可选,即梦视频时长,字符串,例如 "15"。 | |
| duration | No | 可选,grok 视频时长(秒)。 | |
| resolution | No | 可选,如 720p、1k、2k。 | |
| aspect_ratio | No | 可选,如 16:9、9:16、1:1。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses two useful behavioral traits: the task is submitted without waiting, and model names map to different endpoints. Since no annotations are present, this behavior burden is only partially carried; it does not describe what the function returns, how to track the task, or side effects beyond creation.
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 text is one efficient block with no fluff. The most important distinction (no wait) is front-loaded, and routing details are placed exactly where they support the 'model' parameter. Every sentence earns its place.
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 covers the key capabilty and routing behavior, but with no annotations and no output schema, it leaves gaps: return representation, subsequent status-check flow, and model restrictions/limitations. The agent can infer most call mechanics from a 100% schema, but the async feedback loop is not fully explained; it relies on the sibling tools to fill the 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 descri completeness is 100%, so baseline is 3. The description adds meaning by explaining that the 'model' parameter determines routing, and that model families are routed to different endpoints. It also makes the image/prompt/video mode distinctions easier to reason about.
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 uses a specific verb and resource combination ('提交视频生成任务' submit video generation task) and explicitly states that it is non-blocking ('不等待'). It also states the automatic route by model name, distinguishing it from both image generation and waiting variants.
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 clearly establishes that this is an asynchronous submission operation, which implies that callers needing a completed video should use the waiting sibling. It does not explicitly name 'generate_video_and_wait' or 'get_video_status' as alternatives, but the routeing logic gives practical guidance for model selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_video_and_waitA
提交视频任务、轮询到完成并下载到本地,返回本地文件路径(零 base64)。可能需要数分钟。
| Name | Required | Description | Default |
|---|---|---|---|
| image | No | 可选,图生视频本地图片路径 / URL / Base64。 | |
| model | No | 可选,默认取 AI_MEDIA_VIDEO_MODEL。 | |
| images | No | 可选,多张参考图生视频(最多 9 张)。无 image 时生效。 | |
| prompt | No | 视频内容与运动描述。文生视频必填;图生视频可选。 | |
| seconds | No | 可选,即梦视频时长,字符串,例如 "15"。 | |
| duration | No | 可选,grok 视频时长(秒)。 | |
| output_dir | No | 可选,视频保存目录(默认 AI_MEDIA_VIDEO_OUTPUT_DIR)。 | |
| resolution | No | 可选,如 720p、1k、2k。 | |
| aspect_ratio | No | 可选,如 16:9、9:16、1:1。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal important behavior: long-running (possibly minutes), waits via polling, downloads to disk, and returns a path rather than base64. However, it does not mention failure behavior, cleanup, disk-space side effects, or whether the call consumes significant quota, so it is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact, front-loaded sentence: it states the action (submit, poll, download, return), the key output format ('零 base64'), and the critical operational constraint ('可能需要数分钟'). There is no filler, repetition, or unnecessary detail.
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 complex tool with 9 optional parameters and no output schema, the description gives enough context — it clarifies the return format, the conceptual pipeline, and the time cost — to allow an agent to invoke it correctly. It is slightly incomplete because it doesn't state what happens on failure/timeout, but the schema would already need to cover parameters.
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 schema description coverage is 100%, so the baseline is 3. The description does not add much parameter-level meaning beyond the schema; the only added value is the promise of returning a local path and zero base64, which relates to the output rather than the parameters. The parameters themselves are already sufficiently documented in 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?
The description states a clear verb chain: submit video task, poll until completion, download locally, and return the local file path (zero base64). This distinguishes it from sibling tools such as generate_video (which likely just submits) and get_video_status (which just polls). It loses one point for not naming the sibling explicitly, but the unique combined flow is unmistakable.
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 phrase 'poll until completion and download locally' implies this is the correct tool when the agent needs the finished video available as a file, not merely a task ID or status. The sibling context further supports this inference. It lacks explicit 'use X instead when...' guidance, so it is good but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_statusA
查询视频任务状态(自动兼容即梦 /videos/{id} 与 grok /videos/{id} 两种路由)。
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | 提交任务后返回的 task_id / request_id。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one meaningful behavior: automatic compatibility with both Jimeng and grok routes. However, it does not state the return payload shape, whether the operation is purely read-only, or any platform-specific edge cases.
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 packs all essential behavior into one compact sentence, with the routing-compatibility qualifier in parentheses. There is no redundant content or repetition of schema 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?
For a tool with a single required parameter and no nested structures, the description is mostly complete: it names the action, the target, and the underlying routing abstraction. The only meaningful gap is the absence of output/status structure details, but that is minor given no output schema was declared.
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 schema description fully covers task_id as the id returned after submission, achieving 100% schema description coverage. The outer description does not add parameter-level semantics beyond referencing the task, so the baseline score of 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 states a specific verb and object ('查询视频任务状态') that clearly identifies the tool's function as querying video task status. It also distinguishes the operation by mentioning automatic compatibility with Jimeng and grok '/videos/{id}' routes, which clarifies its scope beyond generation tools.
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 this tool should be used to check video task status after submission, but it does not explicitly contrast it with the sibling generate_video_and_wait tool or describe when polling by status is preferable. No exclusions or explicit alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_model_capabilitiesA
查询各模型支持的图片/视频分辨率、宽高比、时长等能力清单(纯本地查询,不调用 API、不收费)。可指定 model 精确查询某模型,或传 aspect_ratio/size/resolution 反查可用模型。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 可选,只看图片或视频。 | |
| size | No | 可选,反查:哪些模型支持这个分辨率(如 1536x1024、1024x1536、1k、2k、720p、1080p)。 | |
| model | No | 可选,精确查询某个模型(如 gpt-image-2、gemini-3-pro-image、grok-imagine-image-quality、grok-imagine-video、as-sd2.0-fast)。不传则返回全部。 | |
| aspect_ratio | No | 可选,反查:哪些模型支持这个比例(如 16:9、9:16、1:1、21:9)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden here. It discloses that the tool is a pure local query with no API call and no cost, making its read-only, non-destructive behavior clear. It does not describe exact output formatting or pagination, but that is a minor gap for a simple lookup 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 compact yet information-dense: it states the resource, the supported capability dimensions, the local/non-charging property, and the two main lookup modes in two sentences. No tautology or filler.
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?
All four parameters are optional, and the description still covers the default behavior of returning all capabilities, explicit model lookup, reverse lookup for restrictions, and the split between image/video. For a static catalog query with no output schema or annotations, this is complete enough for an agent to call it 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 coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining the 'reverse lookup' semantics for aspect_ratio/size and by giving concrete examples like resolution and ratio formats. This clarifies intent rather than merely repeating property names.
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 uses a specific verb+resource ('查询...能力清单') and clearly states the scope: image/video resolutions, aspect ratios, and durations. It also distinguishes itself from generation tools and similar capabilities by emphasizing '纯本地查询,不调用 API、不收费'.
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 gives explicit usage patterns: exact model lookup via the 'model' parameter, or reverse lookup via aspect_ratio/size/resolution to find available models. It does not explicitly name sibling alternatives or exclusion conditions, so it stops just short of complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
probe_capabilitiesA
实测各模型当前支持的分辨率/宽高比(真实调用试探,会消耗少量生成配额,默认只试探少量组合)。结果写入本地缓存,list_model_capabilities 自动合并。可选 model 只探测指定模型。
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | 提示:探测会真实调用生成接口(少量费用),视频仅提交不等待。 | |
| model | No | 可选,只探测某个模型(如 gemini-3-pro-image、gpt-image-2、grok-imagine-image-quality、grok-imagine-video、as-sd2.0-fast)。不传则探测全部已配置模型。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It clearly says real API calls happen, a small amount of generation quota is consumed, only a small default set is probed, and results are written into a local cache. The schema note adds that video is submitted but not waited on, which is also useful behavioral context.
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 compact and front-loaded. It states the core behavior first, then covers cost/default scope, then cache merging, then the optional model argument. Every sentence contributes relevant operational information without repetition.
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 side-effectful probe tool with no output schema, the description is mostly complete: it explains cost, default behavior, caching, merging with `list_model_capabilities`, and the optional model filter. One minor gap is that it doesn't explicitly say what the probe call itself returns, relying on the cache-merge behavior to infer where results end up.
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 schema already documents the `note` and `model` parameters well. The tool description adds the useful context that `model` optionally restricts probing to a specified model and defaults to all configured models, but it doesn't go beyond what the schema already suggests.
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 states a clear active purpose: it actually probes the current supported resolutions/aspect ratios for each model, which is distinct from simply listing them. It also differentiates from the sibling `list_model_capabilities` by explaining that probe results are merged into that list.
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 makes the usage context clear: use it when real probing is needed, consume a small amount of quota, default to a few combinations, and optionally restrict with `model`. It also implies the alternative—`list_model_capabilities` merges the probe results—but it does not explicitly state when to avoid this tool and use the list instead.
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.
6 tool updates
v1.3.1- First observed
generate_image - First observed
generate_video - First observed
generate_video_and_wait - First observed
get_video_status - First observed
list_model_capabilities - First observed
probe_capabilities
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: local capability lookup vs. live probing, image generation vs. video generation, async submission vs. status polling vs. synchronous wait-and-download. Even related pairs like generate_video and generate_video_and_wait are cleanly separated by behavior.
All tool names follow a consistent verb_noun snake_case pattern: list_, probe_, generate_, get_. The longer generate_video_and_wait is still a predictable extension of generate_video without mixing conventions.
With six tools, the server is well-scoped for an AI media generation service. Each tool addresses a distinct part of the workflow: capability discovery, image generation, video submission, status polling, and synchronous video generation.
The surface covers the core workflow: check capabilities, generate an image, submit/synchronously wait for video, and poll video status. Minor gaps exist, such as no way to cancel a pending video job or list/manage previously generated files, but these are not critical to the server's stated purpose.
Maintenance
Related MCP Connectors
Generate images, videos, voiceovers, and captions from a chat prompt.
AI image + video generation for agents: --flag prompt DSL, async generate/poll, x402 pay-per-use.
Turn any LLM multimodal; generate images, voices, videos, 3D models, music, and more.
Image, video, music and text generation across 100+ models through one endpoint.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables intelligent multi-provider image generation through OpenAI and Google Gemini APIs with automatic provider selection, support for reference images, real-time data grounding, and conversational refinement.8MIT
- FlicenseNot gradedqualityDmaintenanceEnables image generation, editing, and refinement using Google's Gemini 2.5 Flash Image model with support for multi-image composition and style transfer.-
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered image generation using Google's Gemini 2.5 Flash Image Preview model, supporting text-to-image and image-to-image generation through the MCP interface.-
- AlicenseAqualityBmaintenanceEnables AI assistants to generate real images via multiple models (OpenAI, Gemini, Recraft, Seedream, Grok, Arrow) and returns usable file paths instead of base64 data.1260 npmMIT