Skip to main content
Glama

Amazon listing image and video MCP server (Amazon Agent Iris) by Kuudo

Create Amazon listing images and product video from live catalog data, real product references, Amazon rules, and secure, human-approved workflows.

MCP Registry License: MIT Community

Product page: https://www.kuudo.com/features/amazon-agent-iris/ · Docs: https://www.kuudo.com/docs/amazon-agent-iris/ · Pricing: https://www.kuudo.com/pricing.md

Connect

Kuudo runs in your own cloud. The Community plan deploys one instance of each Amazon MCP server into your account, and your client connects to that deployment:

{
  "mcpServers": {
    "amazon-agent-iris-mcp": {
      "url": "https://<your-host>/mcp",
      "headers": {
        "Authorization": "Bearer <your Kuudo API key>"
      }
    }
  }
}

Replace <your-host> with the hostname of your deployment and the bearer value with your Kuudo API key.

Related MCP server: Amazon All-in-One Scrape MCP

What this repository is

This repository holds registry metadata and a catalog-only stub. Live execution runs in your Kuudo deployment. The server source is not published. The stub in src/ answers tools/list with the catalog below, serves the same catalog as one resource (kuudo://catalog/tools.json), offers one prompt (connect) carrying the setup guidance, and returns an error with that guidance on any call, so registries and clients can inspect the surface without any access to Amazon.

Inspect the catalog locally with Docker

The image runs the same catalog-only stub over stdio. It is not the live server.

docker build -t amazon-agent-iris-mcp .
docker run -i --rm amazon-agent-iris-mcp

Point a client at it with a stdio entry:

{
  "mcpServers": {
    "amazon-agent-iris-mcp-catalog": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "amazon-agent-iris-mcp"]
    }
  }
}

Tools

12 tools, read from a running instance of this server. Four of the twelve mirror the MCP resource and prompt methods, and two more are onboarding and server health. The remaining six generate images and video, hand back an upload URL for local source bytes, and track video jobs.

Each tool carries the argument schema the live server publishes, so a client can inspect the full call signature here before it connects to your deployment.

Tool

Access

What it does

start_here

read

Call this FIRST to understand how to use this image and video generation server. Returns workflow documentation for: - Available tools - HTTP image uploads - Editing photos - Long-running, resumable video generation - Generating new images - Downloading results

generate_image

write

Generate or edit images with Google Gemini (Nano Banana) from natural language instructions. For OpenAI gpt-image-2, use the sibling generate_openai_image tool. For Amazon / Seller Central listing images, FIRST read the skill://amazon-product-image/SKILL.md resource (via read_resource) for the marketplace image-compliance rules, then generate/audit against them. ## CHARACTER CONSISTENCY Use public image handles for character-consistent image generation: generate_image( input_images=["agent-iris://images/img_12"], mode="generate", prompt="PRESERVE EXACTLY: character's facial features. NEW: Professional headshot...", model="gemini-3-pro-image" ) Explicit generate mode uses the image handle as conditioning rather than an edit source. ## EDITING AN EXISTING IMAGE For local bytes, upload with POST /images first, then pass the returned handle. For a public hosted image, pass the HTTPS URL directly: generate_image( input_images=["https://example.com/source.jpg"], mode="edit", prompt="Change the background to a beach sunset" ) ## ITERATING ON A RESULT (high-fidelity chained edit) — PREFERRED Every generate/edit response returns an interaction_id. Pass it back to refine the SAME image while preserving the rest of the composition — no need to re-send the source. This beats re-editing from bytes for edit fidelity: generate_image( interaction_id="v1_Chd...", # from the previous response prompt="Recolor the mug to beige. Change nothing else." ) TTL: ~55 days (paid) / 1 day (free). ## COMPOSITING (Person from image A into scene B) Use multiple references with generate mode: generate_image( input_images=["agent-iris://images/img_12", "gemini://files/beachRef"], mode="generate", prompt="Place character from image 1 into the beach scene from image 2..." ) ## OPERATION PRESETS Use operation="icon", "pattern", "diagram", "storyboard", or "photo_repair" for strict defaults around model, aspect ratio, and prompt framing. ## Mode Auto-Detection: - interaction_id → EDIT mode - operation="photo_repair" → EDIT mode - operation="icon"/"pattern"/"diagram"/"storyboard" → GENERATE mode - operation="general" with one input image → EDIT mode - Multiple input images or pure prompt → GENERATE mode Returns both MCP image content blocks and structured JSON with metadata.

generate_openai_image

write

Generate images with OpenAI gpt-image-2 via the Responses API. The additive OpenAI provider, sibling to generate_image (Google Gemini). Send your OpenAI key as Authorization: Bearer <key> — the tool name implies the provider. Iterate on a result with previous_response_id (OpenAI's analog of Gemini's interaction_id).

create_upload_url

write

Create the expiring signed URL needed to upload LOCAL image bytes. Use this when you have an image on disk (or raw bytes) to feed into generate_image: call this tool, then HTTP POST the bytes to the returned upload_url (no auth header needed — the URL's signed token authorizes it). The upload responds with a agent-iris://images/{id} handle to pass in generate_image's input_images. Hosted http(s) image URLs do NOT need this — pass them to generate_image directly.

server_status

read

Return server diagnostics for auth, models, storage, uploads, resources, and health.

generate_video

write

Generate video with Google Veo 3.1 from text, a first image, first/last frames, up to three reference images, or a Veo-generated video to extend. Inputs are bounded handles or http(s) URLs, never inline data; references, extensions, and 1080p/4k output require an 8-second request. Before planning or generating video, read the canonical skill://amazon-video/SKILL.md resource. It covers mode and model selection, prompt craft, recovery, and the additional compliance workflow for Amazon listing videos. Renders take 11 s to several minutes. Task-capable clients run this in the background; other clients receive pending and resume with get_video_status(recovery_id). Reuse the same recovery_id after a timeout. If submission is reported as unknown, do not retry under a new id because Google may already have accepted the billed request. Results are signed download URLs and agent-iris://videos/vid_N handles.

get_video_status

read

Probe one video operation (exactly one of recovery_id / operation_name). Makes at most one Google status call and never waits for rendering. When the render is finished it downloads and stores the video in this call. Owner-scoped: only the key that submitted the operation can see it.

list_video_operations

read

List the video operations submitted with this key, newest first. Reads only the local operation store — no Google call. Use a listed recovery_id with get_video_status to resume or collect.

list_resources

read

List all available resources and resource templates. Returns JSON with resource metadata. Static resources have a 'uri' field, while templates have a 'uri_template' field with placeholders like {name}.

read_resource

read

Read a resource by its URI. For static resources, provide the exact URI. For templated resources, provide the URI with template parameters filled in. Returns the resource content as a string. Binary content is base64-encoded.

list_prompts

read

List all available prompts. Returns JSON with prompt metadata including name, description, and optional arguments.

get_prompt

read

Get a prompt by name with optional arguments. Returns the rendered prompt as JSON with a messages array. Arguments should be provided as a dict mapping argument names to values.

Set up your client

Playbooks

Operator guides grounded in Amazon's own documentation, each with the artifact the agent produces:

How it compares

Reads, writes, approvals

Read tools are safe to call freely. Write tools do work inside your deployment: they generate media, run a chained query, or hand back an upload URL. Each tool's access is recorded beside it in tools.json.

Kuudo

Generated from KuudoAI/marketing. Do not edit by hand; changes are overwritten on the next sync.

Available Tools

12 tools
create_upload_urlA

Catalog entry. Runs in your Kuudo deployment, not here. Create the expiring signed URL needed to upload LOCAL image bytes. Use this when you have an image on disk (or raw bytes) to feed into generate_image: call this tool, then HTTP POST the bytes to the returned upload_url (no auth header needed — the URL's signed token authorizes it). The upload responds with a agent-iris://images/{id} handle to pass in generate_image's input_images. Hosted http(s) image URLs do NOT need this — pass them to generate_image directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Despite having no annotations, the description fully discloses the tool's behavior: it returns an expiring signed URL, the URL itself carries the auth token ('no auth header needed'), the upload response provides an agent-iris://images/{id} handle, and the tool runs locally in the user's deployment. It even tells the agent that the upload is a separate HTTP POST step, so the tool only creates the URL.

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 dense but efficient, with each sentence adding distinct information: purpose, usage, auth, response, and exclusion. The opening 'Catalog entry.' is slightly cryptic and not fully self-explanatory, costing a point, but the rest is well-organized and front-loaded with the core purpose.

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

Completeness5/5

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

For a zero-parameter tool with no output schema and no annotations, the description is remarkably complete. It covers the full workflow: when to call, what the tool returns, how to upload, what the upload response looks like, how to pass the handle to generate_image, and which cases do not need this tool. Nothing essential is missing.

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 tool takes zero parameters and the input schema is an empty object with 100% coverage, so the description has no parameters to explain. It goes beyond the baseline by describing the returned upload_url and the handling of the upload response, making the workflow clear even though no params 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 opens with a specific verb and resource: 'Create the expiring signed URL needed to upload LOCAL image bytes.' It clearly distinguishes the tool from generate_image by stating hosted http(s) URLs should be passed directly to generate_image instead. The 'Runs in your Kuudo deployment, not here' line also clarifies the execution context.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance: 'Use this when you have an image on disk (or raw bytes) to feed into generate_image.' It also provides an exclusion rule: 'Hosted http(s) image URLs do NOT need this — pass them to generate_image directly.' This leaves no ambiguity about which sibling handles which case.

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

generate_imageA

Catalog entry. Runs in your Kuudo deployment, not here. Generate or edit images with Google Gemini (Nano Banana) from natural language instructions. For OpenAI gpt-image-2, use the sibling generate_openai_image tool. For Amazon / Seller Central listing images, FIRST read the skill://amazon-product-image/SKILL.md resource (via read_resource) for the marketplace image-compliance rules, then generate/audit against them. ## CHARACTER CONSISTENCY Use public image handles for character-consistent image generation: generate_image( input_images=["agent-iris://images/img_12"], mode="generate", prompt="PRESERVE EXACTLY: character's facial features. NEW: Professional headshot...", model="gemini-3-pro-image" ) Explicit generate mode uses the image handle as conditioning rather than an edit source. ## EDITING AN EXISTING IMAGE For local bytes, upload with POST /images first, then pass the returned handle. For a public hosted image, pass the HTTPS URL directly: generate_image( input_images=["https://example.com/source.jpg"], mode="edit", prompt="Change the background to a beach sunset" ) ## ITERATING ON A RESULT (high-fidelity chained edit) — PREFERRED Every generate/edit response returns an interaction_id. Pass it back to refine the SAME image while preserving the rest of the composition — no need to re-send the source. This beats re-editing from bytes for edit fidelity: generate_image( interaction_id="v1_Chd...", # from the previous response prompt="Recolor the mug to beige. Change nothing else." ) TTL: ~55 days (paid) / 1 day (free). ## COMPOSITING (Person from image A into scene B) Use multiple references with generate mode: generate_image( input_images=["agent-iris://images/img_12", "gemini://files/beachRef"], mode="generate", prompt="Place character from image 1 into the beach scene from image 2..." ) ## OPERATION PRESETS Use operation="icon", "pattern", "diagram", "storyboard", or "photo_repair" for strict defaults around model, aspect ratio, and prompt framing. ## Mode Auto-Detection: - interaction_id → EDIT mode - operation="photo_repair" → EDIT mode - operation="icon"/"pattern"/"diagram"/"storyboard" → GENERATE mode - operation="general" with one input image → EDIT mode - Multiple input images or pure prompt → GENERATE mode Returns both MCP image content blocks and structured JSON with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoRequested image count (model may return fewer).
modeNoOperation mode: 'auto' (default), 'generate', or 'edit'. AUTO BEHAVIOR: interaction_id or photo_repair → edit mode; generation presets → generate mode; one general input image → edit mode. USE 'generate' FOR: Creating new images with character reference, style transfer, conditioning. USE 'edit' FOR: Modifying a specific existing image (change background, outfit, add text). You can override auto-detection by explicitly setting mode='generate' or mode='edit'.auto
modelNoModel selection. gemini-3.1-flash-image: Nano Banana 2 (DEFAULT), supports grounding, 14 aspect ratios, and 0.5K-4K output. gemini-3-pro-image: Nano Banana Pro, professional asset production, grounding, 14 total references, 1K-4K output. gemini-2.5-flash-image: Original Nano Banana — fast drafts ($0.039/image), no grounding support. Legacy -preview aliases are accepted and normalized to current model IDs.
promptYesClear, detailed image prompt. Include subject, composition, action, location, style, and any text to render. Add 'Square image' or '16:9' in the text to influence aspect ratio.
operationNoStrict operation preset: general, icon, pattern, diagram, storyboard, or photo_repair.general
resolutionNoOptional resolution. gemini-3.1-flash-image supports 0.5K, 1K, 2K, and 4K. gemini-3-pro-image supports 1K, 2K, and 4K. gemini-2.5-flash-image supports 1K only.
output_nameNoOptional base name for output file(s). If provided, files will be named '<output_name>.png' (or '<output_name>_1.png', '<output_name>_2.png' for multiple images). Use descriptive names like 'brand-linkedin-headshot' or 'product-hero-banner'. If not provided, defaults to timestamped names like 'gen_20251217_120000_1_1_abc123.png'.
aspect_ratioNoOptional output aspect ratio. Standard: 1:1 (square), 3:4, 4:3, 2:3, 3:2, 4:5, 5:4, 9:16 (portrait), 16:9 (landscape), 21:9 (ultra-wide). New in Nano Banana 2: 1:4 (tall strip), 4:1 (wide banner), 1:8 (ultra-tall), 8:1 (ultra-wide).
input_imagesNoImages for editing or conditioning. Accepts agent-iris://images/{image_id}, gemini://files/{name}, and http(s) image URLs. Hosted URLs are fetched server-side inside this authenticated tool call; upload local bytes with POST /images when a durable server handle is needed.
use_groundingNoEnable Google Search grounding for real-time data retrieval before generation. REQUIRED for infographics, charts, current events, statistics, or any real-world data. IMPORTANT: Grounding works with 'gemini-3.1-flash-image' (default) and 'gemini-3-pro-image'. Default: False.
interaction_idNoInteractions API id from a PRIOR generate/edit call (e.g., 'v1_Chd...'). PREFERRED way to iterate on an image: pass it to chain a high-fidelity edit that preserves the rest of the composition (no need to re-send the source image). Implies edit mode. TTL ~55 days (paid) / 1 day (free).
thinking_levelNoOptional thinking level for Gemini 3 image models. Allowed values: low or high. Use high for complex compositions, text-heavy images, or unusual prompts. Leave unset for the model default.
include_previewNoWhether to ALSO embed the inline base64 thumbnail preview block(s). Default false (link-first): the response is the text summary + signed download URLs (including a signed thumbnail URL) + structured metadata, with no base64 — saving context tokens. Set true to additionally embed the inline thumbnail for a quick interactive visual check on a single image. Thumbnails are always stored server-side and reachable via the signed thumbnail URL regardless of this flag.
negative_promptNoThings to avoid (style, objects, text).
system_instructionNoOptional system tone/style guidance.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and delivers: it discloses that the tool runs in the Kuudo deployment, defines mode auto-detection behavior, notes interaction_id TTL (~55 days paid/1 day free), explains handle-as-conditioning vs edit-source semantics, requires POST /images for local bytes, and states the return format. It omits rate limits, failure behavior, and storage/cleanup details, so it is strong but not exhaustive.

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?

Long, but structured with section headers and code blocks so each block earns its place; overview and sibling routing are front-loaded. There is minor redundancy with the schema's mode auto-detection text and the cryptic 'Catalog entry' opener, but the length is justified by the tool's 15 parameters and multiple workflows.

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

Completeness4/5

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

No output schema exists, yet the description states that responses include MCP image content blocks plus structured JSON metadata, covers handle types, upload flow, iteration workflow, presets, and the Amazon compliance prerequisite. Minor gaps remain in exact metadata fields, error semantics, and rate limits, so it falls just short of fully complete for so complex a tool.

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%, so baseline is 3. The description adds meaning beyond the schema through executable examples: character-consistency conditioning with agent-iris:// handles, HTTPS URL editing, interaction_id-only iteration, and multi-reference compositing, plus operation preset semantics. These clarify how mode, input_images, interaction_id, and prompt interact.

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?

States a specific verb and resource: 'Generate or edit images with Google Gemini (Nano Banana) from natural language instructions.' It also names the sibling it is not, saying 'For OpenAI gpt-image-2, use the sibling generate_openai_image tool,' so an agent can route correctly without opening schemas.

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

Usage Guidelines5/5

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

Explicitly routes to generate_openai_image for OpenAI, prescribes reading skill://amazon-product-image/SKILL.md before Amazon/Seller Central work, marks the interaction_id chained edit as 'PREFERRED', and lays out mode auto-detection rules with explicit override guidance. This is explicit when/when-not/alternatives guidance.

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

generate_openai_imageA

Catalog entry. Runs in your Kuudo deployment, not here. Generate images with OpenAI gpt-image-2 via the Responses API. The additive OpenAI provider, sibling to generate_image (Google Gemini). Send your OpenAI key as Authorization: Bearer <key> — the tool name implies the provider. Iterate on a result with previous_response_id (OpenAI's analog of Gemini's interaction_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoNumber of images. Implemented as N server-side calls (the OpenAI image tool has no native count).
sizeNo'auto' or a 'WIDTHxHEIGHT' string. gpt-image-2 takes flexible sizes: both edges multiples of 16, aspect 1:3-3:1, max 3840x2160.auto
promptYesImage prompt for OpenAI gpt-image-2 via the Responses API. Describe subject, composition, style, and any text to render.
qualityNoRender quality.auto
backgroundNoBackground. gpt-image-2 does not support 'transparent'.auto
moderationNoModeration strictness.auto
input_imagesNoReference/edit images. Accepts agent-iris://images/{id} handles, http(s) URLs (including signed server URLs), and data: URLs — all resolved to base64 data URLs server-side before the OpenAI call.
output_formatNoOutput image format.png
output_compressionNoCompression 0-100 (jpeg/webp only).
system_instructionNoOptional system tone/style guidance.
previous_response_idNoA prior generate_openai_image response id to iterate on (the OpenAI analog of Gemini's interaction_id). Chains a follow-up edit.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden. It discloses deployment location ('Runs in your Kuudo deployment, not here'), the auth mechanism (Bearer key), and the iteration semantics via previous_response_id. These are substantive behavioral traits, though rate limits, error behavior, and storage/retention are not covered.

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?

Three front-loaded sentences with zero filler. Purpose first, then sibling distinction, then auth, then iteration — each sentence earns its place and the key usage signal is stated up front.

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

Completeness4/5

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

For an 11-parameter tool with no output schema, the description covers purpose, sibling routing, auth, and iteration. The schema handles parameter details. The main gap is the absence of return-value or error-behavior context, but that is partly mitigated by the absence of an output schema.

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 schema already documents every parameter richly (n as N server-side calls, size constraints, input_images URL resolution). The description adds only marginal meaning by framing previous_response_id as the OpenAI analog of Gemini's interaction_id.

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?

States a specific verb and resource: 'Generate images with OpenAI gpt-image-2 via the Responses API.' It distinguishes itself from the sibling generate_image (Google Gemini) by naming the provider explicitly, so an agent can tell the two apart immediately.

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

Usage Guidelines4/5

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

Names the sibling generate_image and positions this tool as 'the additive OpenAI provider,' giving the selection criterion (which provider/API you want). It also discloses the auth prerequisite (Bearer key). The when-to-choose condition is slightly implied via provider naming rather than spelled out as an explicit rule.

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

generate_videoA

Catalog entry. Runs in your Kuudo deployment, not here. Generate video with Google Veo 3.1 from text, a first image, first/last frames, up to three reference images, or a Veo-generated video to extend. Inputs are bounded handles or http(s) URLs, never inline data; references, extensions, and 1080p/4k output require an 8-second request. Before planning or generating video, read the canonical skill://amazon-video/SKILL.md resource. It covers mode and model selection, prompt craft, recovery, and the additional compliance workflow for Amazon listing videos. Renders take 11 s to several minutes. Task-capable clients run this in the background; other clients receive pending and resume with get_video_status(recovery_id). Reuse the same recovery_id after a timeout. If submission is reported as unknown, do not retry under a new id because Google may already have accepted the billed request. Results are signed download URLs and agent-iris://videos/vid_N handles.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageNoFirst frame: agent-iris://images/img_N, a catalog-known gemini://files/{name}, or an http(s) URL. No data URLs.
modelNoveo-3.1-generate-preview (default), -fast-, or -lite-.
videoNoagent-iris://videos/vid_N to extend by 7 s (Veo 3.1 / Fast only; 720p; up to 20 times; source must be recent).
promptNoWhat to generate. Required for text and reference modes; optional when animating an image, interpolating between frames, or extending a video.
last_frameNoLast frame (interpolation); requires image.
resolutionNo720p, 1080p, or 4k (not on Lite).720p
recovery_idNoOptional idempotency / resume key (8-64 chars). Defaults to task_<task_id> when run as a background task. Reuse it with get_video_status.
aspect_ratioNo16:9 or 9:16.16:9
enhance_promptNoGoogle SDK prompt rewriting control for the standard Veo 3.1 model. Fast and Lite accept only omitted/false.
negative_promptNoWhat to avoid. Supported only by the standard Veo 3.1 model.
duration_secondsNo4, 6, or 8. 1080p / 4k / references / extension require 8.
reference_imagesNoUp to 3 asset reference images (not on Lite; forces 8 s).
person_generationNoallow_all (text / extend) or allow_adult (image-driven modes). Omit to use the only legal value for the mode.

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries full behavioral burden. It discloses that it runs in the Kuudo deployment (remote), render times from 11 seconds to minutes, background vs. pending behavior for task-capable clients, the idempotency/resume mechanism, the warning not to retry with a new recovery_id after unknown submission, and the result format (signed URLs and agent-iris://videos/vid_N handles). This is exceptionally transparent.

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 long but front-loaded with the core purpose and input types. Each sentence adds essential information: constraints, async behavior, recovery, compliance. It is structured and not wasteful, though it could be tightened by moving some operational details to the skill reference. Still, given the tool's complexity, the length is justified.

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

Completeness5/5

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

Given 13 optional parameters, no output schema, and no annotations, the description covers all necessary aspects: input formats, constraints, timing, async handling, recovery, compliance, and result format. It also directs to the skill for deeper mode/model selection. Nothing an agent needs to call it correctly is missing.

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 description coverage is 100%, so the schema already documents each parameter. The description adds cross-parameter constraints (references/1080p/4k require 8 seconds, inputs must be bounded handles or http(s) URLs, never inline data) that are not fully captured per-parameter. This adds meaningful semantic value 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 generates video with Google Veo 3.1 from text, images, frames, reference images, or video extension. It names the specific resource and action, and the verb 'generate' distinguishes it from sibling tools like generate_image and generate_openai_image. The scope is precise.

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

Usage Guidelines4/5

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

The description directs agents to read the canonical skill://amazon-video/SKILL.md before planning or generating, covering mode/model selection and compliance. It also explains async behavior with get_video_status and recovery_id. However, it doesn't explicitly say 'when not to use this' versus alternatives like generate_image, leaving that inference to the agent, though the skill reference partially compensates.

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

get_promptA

Catalog entry. Runs in your Kuudo deployment, not here. Get a prompt by name with optional arguments. Returns the rendered prompt as JSON with a messages array. Arguments should be provided as a dict mapping argument names to values.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the prompt to get
argumentsNoOptional arguments for the prompt

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses that the tool runs in the Kuudo deployment, returns rendered JSON with a messages array, and expects arguments as a dict. This is meaningful behavioral context, though it doesn't explicitly state side-effect safety or error behavior.

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 three short sentences and each one adds information: execution context, retrieval purpose, output shape, and argument format. The opening 'Catalog entry.' is minor filler, but overall the description is efficient and front-loaded.

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

Completeness4/5

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

Given no output schema, the description adequately explains the return format and argument usage. It also adds the important deployment context. It doesn't describe the messages array's inner structure or error cases, but for a simple fetch-by-name tool it is sufficient for an agent to invoke it correctly.

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 restates the arguments parameter as 'a dict mapping argument names to values,' which adds slight clarity but mostly mirrors the schema's anyOf object/null definition. It does not add substantial new meaning for either parameter.

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 states a specific verb and resource: 'Get a prompt by name with optional arguments.' It also clarifies the tool's product by saying it 'Returns the rendered prompt as JSON with a messages array,' which separates it from siblings like list_prompts.

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 gives useful context such as 'Runs in your Kuudo deployment, not here' and implies the use case of fetching a prompt by name. However, it does not explicitly say when to use this tool versus list_prompts or any other alternative, leaving the agent to infer the distinction.

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

get_video_statusA

Catalog entry. Runs in your Kuudo deployment, not here. Probe one video operation (exactly one of recovery_id / operation_name). Makes at most one Google status call and never waits for rendering. When the render is finished it downloads and stores the video in this call. Owner-scoped: only the key that submitted the operation can see it.

ParametersJSON Schema
NameRequiredDescriptionDefault
recovery_idNoThe recovery_id echoed by generate_video.
operation_nameNoAlternatively, the Google operation name.
retry_collectionNoRetry a backed-off collection now instead of waiting.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses that it runs remotely, makes at most one Google status call, never waits for rendering, downloads/stores the video when finished, and is owner-scoped. This is far beyond a minimal mutation warning and gives an agent an accurate mental model of side effects and access.

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 only three sentences and each sentence contributes: environment, operation scope, behavior, and ownership. The opening 'Catalog entry.' is slightly cryptic but not wasteful. It is front-loaded with the most important scoping information and avoids redundancy.

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?

There is no output schema, so the description should clarify what the call returns; it does not explicitly say the response includes status or progress information. It explains the side effect (download/stores video) but not the return value or retry_collection's effect on the response. For an agent to fully consume the result, this is a notable gap.

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 already covers all three parameters (100% coverage), so the baseline is 3. The description adds value by stating the mutual exclusion between recovery_id and operation_name, which is not enforced in the schema. It does not add much about retry_collection, but the schema description already covers it.

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 uses a specific verb ('Probe') and resource ('one video operation'), and it explicitly contrasts with the sibling list_video_operations by emphasizing 'one' rather than a list. It also clarifies the execution environment ('Runs in your Kuudo deployment'), making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description clearly indicates this tool is for probing a single video operation and gives a concrete constraint: exactly one of recovery_id or operation_name. It does not name an alternative tool explicitly, but the context makes the intended use clear. It also states it never waits, which helps an agent decide when to call it.

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

list_promptsA

Catalog entry. Runs in your Kuudo deployment, not here. List all available prompts. Returns JSON with prompt metadata including name, description, and optional arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format (JSON with metadata) and the execution environment, but it does not state whether the operation is read-only, safe to call repeatedly, or requires any permissions. For a tool with zero annotation coverage, this is a significant omission that could lead an agent to assume incorrectly about side effects or safety.

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

Conciseness3/5

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

The description is short, but it includes a fragment 'Catalog entry.' that adds little value and is not the most informative. The core action 'List all available prompts' appears after the fragment, making it less front-loaded than ideal. It is concise but could be restructured to lead with the key action and remove redundancy.

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

Completeness4/5

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

For a parameterless list tool, the description provides enough information to call it correctly: it states the action, the resource, the output format (JSON with prompt metadata including name, description, and optional arguments), and the execution environment. Although there is no output schema, the description compensates by detailing the expected fields. It is sufficiently complete for a simple tool.

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 tool has no parameters, so the input schema (empty object) fully covers the parameter space. The description adds no parameter-specific information, which is appropriate. With no parameters, the baseline score of 4 is justified because there is nothing to clarify.

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 action 'List all available prompts' and specifies the resource (prompts). It also mentions the return type (JSON with prompt metadata), distinguishing it from sibling tools like get_prompt (which retrieves a single prompt) and list_resources (which lists a different resource type). The verb and resource are 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 Guidelines3/5

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

The description provides context that the tool runs in the Kuudo deployment, which is a useful contextual clue, but it does not explicitly compare to alternatives or state when not to use it. While the name and action imply when to use it, there is no explicit guidance on exclusions or alternative tools. This is a moderate gap.

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

list_resourcesA

Catalog entry. Runs in your Kuudo deployment, not here. List all available resources and resource templates. Returns JSON with resource metadata. Static resources have a 'uri' field, while templates have a 'uri_template' field with placeholders like {name}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden. It discloses that execution happens remotely, returns JSON, and details the resource/template distinction. However, it omits obvious behavioral aspects like read-only nature, potential pagination, authentication needs, or error behavior—though these are often implied for a listing operation.

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 (three sentences) and front-loaded with the core listing purpose. The opening 'Catalog entry.' is somewhat redundant with the name, but the remaining content is dense and useful. No filler.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description covers the essential return format (JSON metadata) and the distinction between static resources and templates. It also notes the remote execution context. While it doesn't address auth or errors, those are minor for a read-only list operation, and the description is adequate.

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 tool has zero parameters, so schema coverage is trivially 100%. The description doesn't need to explain parameters; the baseline for 0 params is 4. It adds no parameter-related content, which is 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?

States a specific verb ('List'), resource ('all available resources and resource templates'), and clearly distinguishes from siblings like read_resource and list_prompts. The description explicitly names the two output categories (static resources vs templates) and their fields.

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?

Implies usage for enumerating resources but does not explicitly contrast with read_resource (which fetches a specific resource) or list_prompts. No when-not-to-use guidance or alternative routing; the context note 'Runs in your Kuudo deployment, not here' is a deployment hint, not usage direction.

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

list_video_operationsA

Catalog entry. Runs in your Kuudo deployment, not here. List the video operations submitted with this key, newest first. Reads only the local operation store — no Google call. Use a listed recovery_id with get_video_status to resume or collect.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1-100).
statusNoOnly operations in this stored status (default: every status).

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It clearly states it runs in the Kuudo deployment (not here), reads only the local operation store, and makes no Google call. The phrase 'reads only' implies a read-only, non-destructive operation. This provides sufficient context about execution environment and side-effect profile, though it does not mention authorization or error behavior.

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?

Three sentences with no redundancy. The most important facts (catalog entry, local execution, ordering, alternative tool) are front-loaded. Every sentence adds value, and the description is appropriately concise for a simple list operation.

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

Completeness4/5

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

There is no output schema, so the description must hint at return contents. It mentions the recovery_id and its use with get_video_status, which implies the output includes recovery identifiers. It also states ordering and filtering options indirectly via the schema. While it does not fully enumerate all returned fields, it covers the essential usage context 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.

Parameters3/5

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

Schema description coverage is 100%, so the parameters (limit and status) are fully documented in the schema itself. The tool description adds no additional meaning beyond what the schema provides, so the baseline of 3 applies.

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?

States a specific verb ('list'), resource ('video operations'), and scope ('submitted with this key'), and adds ordering ('newest first'). It differentiates from the sibling get_video_status by explicitly pointing to that tool for resuming/collecting via recovery_id. This leaves no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

Provides explicit direction to use get_video_status with a recovery_id for resuming/collecting, which is a clear alternative. It also notes the tool reads only the local operation store and makes no Google call, implying it is for local operations only. It does not exhaustively contrast with all siblings, but the key alternative is addressed.

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

read_resourceA

Catalog entry. Runs in your Kuudo deployment, not here. Read a resource by its URI. For static resources, provide the exact URI. For templated resources, provide the URI with template parameters filled in. Returns the resource content as a string. Binary content is base64-encoded.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesThe URI of the resource to read

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that execution happens in the user's Kuudo deployment rather than the local environment, that the return value is a string, and that binary content is base64-encoded. It does not describe error/not-found behavior or permissions, but the read-only nature is clear from the verb.

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 compact and front-loads the execution context before the core action. Each sentence carries useful information, though the opening 'Catalog entry.' is an opaque fragment that adds little for an agent.

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

Completeness4/5

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

For a one-parameter read tool with no output schema, the description covers input format, execution environment, and return encoding, which is enough to call it correctly. It stops short of being fully complete by omitting error behavior and not pointing to list_resources for URI discovery.

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 schema already documents the uri parameter with 100% coverage, so the baseline is 3. The description adds value by distinguishing static URIs (exact URI) from templated URIs (parameters filled in), which is important for correct invocation.

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 states a specific action—'Read a resource by its URI'—and clarifies the resource type. It differentiates from resource-management siblings by focusing on reading a single resource, and it adds useful scope guidance for static versus templated URIs. The initial 'Catalog entry.' phrase is vague but does not obscure the core purpose.

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?

It gives clear context about how to format the URI for static vs templated resources, telling an agent what value to provide. However, it does not explicitly mention when to prefer this over list_resources or how to discover resource URIs, so usage guidance is implied rather than explicit.

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

server_statusA

Catalog entry. Runs in your Kuudo deployment, not here. Return server diagnostics for auth, models, storage, uploads, resources, and health.

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 must carry the full burden. It does not state whether the operation is read-only, requires special permissions, or has side effects. The 'Runs in your Kuudo deployment' note is environmental, not behavioral.

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

Conciseness3/5

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

The description is short, but the opening 'Catalog entry.' is cryptic and may confuse agents into thinking it is a placeholder rather than a functional tool. The second sentence is clear and front-loaded, but the first sentence wastes space.

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?

It lists the diagnostic areas, giving an idea of the scope, but does not describe the output format, error handling, or any prerequisites. Without an output schema, the description should provide more detail on the return value to be fully 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?

There are zero parameters, so the description has nothing to add. Baseline of 4 is appropriate since no parameter documentation is needed.

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 returns server diagnostics and enumerates the specific areas (auth, models, storage, uploads, resources, health). This is a specific verb-resource pair and distinguishes it from all sibling tools, none of which mention diagnostics.

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

Usage Guidelines4/5

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

The purpose is obvious from the name and description, and the note 'Runs in your Kuudo deployment, not here' gives contextual placement. However, it does not explicitly state when to use this over alternatives, though no sibling offers diagnostics, so it's effectively the only choice.

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

start_hereA

Catalog entry. Runs in your Kuudo deployment, not here. Call this FIRST to understand how to use this image and video generation server. Returns workflow documentation for: - Available tools - HTTP image uploads - Editing photos - Long-running, resumable video generation - Generating new images - Downloading results

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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 discloses that the tool runs remotely in the Kuudo deployment, not in the current environment, and that it returns workflow documentation rather than performing generation. 'Catalog entry' itself implies a read-only informational operation, though it does not explicitly state there are no 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.

Conciseness4/5

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

The description is well-structured and front-loaded: 'Catalog entry' and 'Call this FIRST' appear at the beginning. The bullet list organizes the documentation topics efficiently. It is slightly longer than necessary but every sentence contributes context.

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

Completeness4/5

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

Given the empty schema and no output schema, the description covers the essential information: what the tool does, when to call it, where it runs, and what topics the returned documentation covers. It does not specify the output format, but for a zero-parameter documentation entry point this is a minor gap.

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 zero parameters with 100% coverage, so the baseline of 4 applies. The description adds context by explaining that the tool accepts no input and simply returns documentation, which aligns with the empty schema. No parameter descriptions are needed.

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 states a specific purpose: it is a catalog entry that returns workflow documentation for using the image and video generation server. The phrase 'Call this FIRST' clearly marks it as an entry-point tool, which distinguishes it from the generation and upload siblings.

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

Usage Guidelines4/5

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

It explicitly says to call this tool FIRST, providing clear timing guidance. It also notes that it runs in the Kuudo deployment rather than here, which is a useful environment caveat. It does not name specific alternatives or describe when not to use it, but for an overview/documentation tool this is sufficient.

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. 12 tool updatesv1.0.0
    • First observedcreate_upload_url
    • First observedgenerate_image
    • First observedgenerate_openai_image
    • First observedgenerate_video
    • First observedget_prompt
    • First observedget_video_status
    • First observedlist_prompts
    • First observedlist_resources
    • First observedlist_video_operations
    • First observedread_resource
    • First observedserver_status
    • First observedstart_here

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose. The only potential overlap between generate_image and generate_openai_image is explicitly disambiguated in the descriptions, and status/list tools for videos are clearly separated.

Naming Consistency4/5

Most tools follow a verb_noun pattern (generate_image, list_resources, create_upload_url), but server_status and start_here deviate from this convention, causing minor inconsistency.

Tool Count5/5

12 tools is well-scoped for a media generation server covering image, video, upload, status, resources, and prompts.

Completeness5/5

The server covers the full lifecycle: upload, generate (image/video), check status, list operations, and read resources/prompts. No obvious gaps for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables users to analyze, manage, and optimize digital advertising campaigns through natural language conversations in Claude, offering performance insights, interactive visualizations, and campaign management for platforms like Amazon Ads.
    4
    -
  • A
    license
    A
    quality
    A
    maintenance
    Real-time Amazon Sponsored Products (SP) ad placements, keyword tracking, and comprehensive review data for AI Agents. Enables LLMs to autonomously conduct competitor ad audits, consumer sentiment analysis (VOC), and product optimization.
    19
    6
    MIT

Latest Blog Posts

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/KuudoAI/amazon-agent-iris-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server