Skip to main content
Glama
miracorhan

Open Google Image Generator MCP

by miracorhan

Open Google Image Generator MCP

This project is a Model Context Protocol (MCP) server that exposes Google Cloud Vertex AI and Google GenAI SDK capabilities—Gemini (Nano Banana) image models, Gemini 3.x / 4 text models, Veo, Lyria, and Gemini TTS—to MCP-compatible clients. Built with the MCP Python SDK (FastMCP on mcp 1.x, MCPServer on mcp 2.x — both supported).

Current version: 3.3.0 — Image generation migrated from the shut-down Imagen 4 to the Gemini image family (gemini-3.1-flash-lite-image, gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image) served from the Vertex AI global endpoint; Gemini 3.8 Flash / 4 Argon text models; Gemini 3.8 TTS with all 30 prebuilt voices; Lyria 3.5; mcp 2.x compatibility.

Features & Tools

Image Tools

Tool

Description

Backend

tool_generate_image

Text-to-image generation. Supports aspect ratio, multiple images, and WebP/AVIF output. Negative prompt / seed / watermark / GCS output apply to legacy Imagen IDs only

Gemini image (gemini-3.1-flash-lite-image)

tool_edit_image

Mask-guided inpaint/outpaint, background swap, product image, and prompt-driven edit (mask is sent to Gemini as a reference image). See Edit modes below

Gemini image (gemini-3.1-flash-image) ⁴

tool_transform_image

Free-form image + text → image transformation: style transfer, scene rewriting, multi-reference composition

Gemini image (gemini-3.1-flash-image)

tool_analyze_image

Multimodal image understanding and Q&A. Supports thinking_level (MINIMAL/LOW/MEDIUM/HIGH) and media_resolution (LOW/MEDIUM/HIGH/ULTRA_HIGH)

Gemini (gemini-3.8-flash)

tool_upscale_image

Upscale to 2K or 4K (target_resolution), keeping the aspect ratio

Gemini image (gemini-3.1-flash-image) ⁴

tool_remove_background

Remove the background and save a transparent PNG. Optional subject (what to keep) and key_color (green/blue/magenta)

Gemini image + local chroma key ⁴

tool_batch_generate

Parallel batch text-to-image generation (up to 10 prompts, max 4 concurrent). All tiers supported

Gemini image

tool_run_pipeline

Sequential multi-step image processing pipeline (generate → edit → transform → …)

Mixed

⁴ These three tools used Imagen until v3.3.0. As of 2026-10-16 every Imagen model (imagen-3.0-capability-001, imagen-4.0-*, imagen-4.0-upscale-preview) returns HTTP 404 on Vertex AI in us-central1, us-west1, us-east4, europe-west4 and global (and Imagen 4 was shut down on the Gemini API on 2026-08-17), so they now run on Gemini image models. Gemini cannot emit an alpha channel, so tool_remove_background asks the model to paint everything except the subject in a flat chroma-key colour and keys it out locally with Pillow. Gemini edits are instruction-guided, not pixel-exact: content outside the mask is preserved closely but not bit-for-bit. Legacy imagen-* IDs are still accepted as model_name.

Video Tools

Tool

Description

Backend

tool_generate_video

Text-to-video generation. Supports audio_enabled for Veo 3+

Veo (veo-3.1-fast-generate-001) ⁵

tool_image_to_video

Animate a still image into video. Supports optional last_frame_path for first+last frame mode

Veo ⁵

tool_extend_video

Extend an existing video clip by 4, 6, or 8 seconds

Veo ⁵

tool_video_object_edit

Insert or remove an object in a video via operation (insert/remove) and prompt

Veo ⁵

tool_analyze_video

Video understanding and Q&A (max 20MB; mp4, mov, avi, webm, mkv)

Gemini GenAI SDK

⁵ The four Veo tools are still placeholder stubs: they validate input and write a text placeholder to the output path instead of calling Veo. Note that Veo 3.1 is served from us-central1 and global but returns 404 in other regions such as us-west1.

Audio Tools

Tool

Description

Backend

tool_generate_speech

Text-to-speech with any of the 30 prebuilt Gemini voices (Kore, Puck, Zephyr, Charon, Aoede, …). Supports model_tier (fast/quality). Outputs WAV

Gemini TTS (gemini-3.8-flash-lite-tts / gemini-3.8-flash-tts)

tool_generate_music

Music generation from a text prompt

Lyria 3.5 / Lyria 3 (GenAI SDK)

GenAI SDK Tools

Tool

Description

Backend

tool_embed

Text embeddings as float vectors

Gemini Embedding (gemini-embedding-2 on Gemini API, gemini-embedding-001 on Vertex AI)

tool_live_generate

Streaming text generation — response is accumulated and returned in full

Gemini (gemini-3.5-flash-lite / gemini-3.8-flash / gemini-4-argon)

Utility Tools

Tool

Description

tool_list_available_models

Live-probes every candidate model in the configured project (Gemini models on GOOGLE_CLOUD_GEMINI_LOCATION, Imagen on GOOGLE_CLOUD_LOCATION) and returns only those that respond (200/400 = reachable, 404 = excluded). Cached for the server process lifetime; pass force_refresh=true to rescan. Also reports available update versions.

tool_upload_file

Register a local file for use as a reference image in subsequent tool calls (e.g. tool_transform_image). Returns a file_uri.


Edit modes (tool_edit_image)

edit_mode

What it does

Mask required?

EDIT_MODE_DEFAULT (default)

Prompt-driven full-image edit, no mask

No

EDIT_MODE_INPAINT_INSERTION

Add an object into the masked region

Yes

EDIT_MODE_INPAINT_REMOVAL

Remove content in the masked region

Yes

EDIT_MODE_OUTPAINT

Extend the image beyond its original bounds

Yes

EDIT_MODE_BGSWAP

Swap the background

No

EDIT_MODE_PRODUCT_IMAGE

Product reference styling

No

All modes work with the Gemini image models (default gemini-3.1-flash-image; use gemini-3-pro-image for the most faithful edits). tool_edit_image also accepts model_tier.

When to use which "image + text → image" tool

Need

Use

Mask-guided inpaint/outpaint/BG-swap, or a specific edit mode

tool_edit_image

"Make it look like X" / style transfer / scene rewriting / multi-reference compositions

tool_transform_image (Gemini multimodal)

Model tiers

Most tools accept a model_tier parameter:

Tier

Description

fast (default)

Lowest latency, lowest cost

balanced

Quality / speed trade-off

quality

Higher quality, moderate latency

ultra

Maximum quality (Nano Banana Pro / Veo quality models)

Model resolution by tier and tool

Tier

tool_generate_image / tool_batch_generate / tool_transform_image

tool_generate_video

fast

gemini-3.1-flash-lite-image

veo-3.1-fast-generate-001

balanced

gemini-3.1-flash-image

veo-3.1-fast-generate-001

quality

gemini-nano-banana-2.1

veo-3.1-generate-001

ultra

gemini-3-pro-image

veo-3.1-generate-001

tool_edit_image and tool_remove_background use the same tier mapping. tool_upscale_image needs 2K/4K output, so its fast/balanced tiers use gemini-3.1-flash-image (the lite model is 1K-only); quality → gemini-nano-banana-2.1, ultra → gemini-3-pro-image. tool_run_pipeline applies the same per-tool mappings.

GenAI SDK tools (tool_live_generate, tool_analyze_video, tool_generate_speech, tool_embed):

Tier

tool_live_generate / tool_analyze_video

tool_generate_speech

tool_embed

fast

gemini-3.5-flash-lite

gemini-3.8-flash-lite-tts

gemini-embedding-2 / gemini-embedding-001 ²

balanced

gemini-3.8-flash

—

—

quality

gemini-4-argon ¹

gemini-3.8-flash-tts

—

¹ gemini-4-argon has no Gemini API free tier (quota limit 0) — it needs a billed key or Vertex AI. ² gemini-embedding-2 is used with a Gemini API key; gemini-embedding-001 with Vertex AI ADC.

Model IDs verified on 2026-10-16 against both catalogs. gemini-2.5-pro/flash/flash-lite retire on Vertex AI on 2026-10-20 and are no longer used as defaults.


Model availability: Vertex AI vs. Gemini API

Google exposes models through two separate endpoints with different model catalogs:

Endpoint

Auth

Image models

Text/speech models

Vertex AI (aiplatform.googleapis.com, global location)

ADC / Service Account

gemini-3.1-flash-lite-image, gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, gemini-2.5-flash-image

gemini-4-argon, gemini-3.8-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.1-flash-lite, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts

Gemini API (generativelanguage.googleapis.com)

GOOGLE_CLOUD_API_KEY / GOOGLE_GENAI_API_KEY

same Gemini image family

same text/TTS models plus lyria-3.5 (Gemini API only)

³ The Gemini 3.x image models (gemini-3-pro-image, gemini-3.1-flash-lite-image, gemini-nano-banana-2.1) are served by Vertex AI only from the global location — verified on 2026-10-16: they return HTTP 404 from us-west1 and HTTP 400 (exists) from global. The same holds for gemini-4-argon, gemini-3.8-flash, gemini-3.5-flash(-lite), gemini-3.1-flash-lite and the 3.8 TTS models. This server therefore sends every Gemini :generateContent call to GOOGLE_CLOUD_GEMINI_LOCATION (default global), and keeps Imagen/Veo on GOOGLE_CLOUD_LOCATION.

Sources:

Output formats

tool_generate_image, tool_edit_image, tool_transform_image, and tool_upscale_image accept a save_format / output_format parameter:

Format

Notes

PNG (default)

Lossless

JPEG

Smaller files, lossy. compression_quality (0-100, default 85) applies only to JPEG

WEBP

Modern lossless/lossy, wide browser support

AVIF

Best compression, requires Pillow>=10


Error handling

All tools return a uniform error shape:

{
  "success": false,
  "error": {
    "code": 404,
    "model": "gemini-9.9-nonexistent",
    "endpoint": ":generateContent",
    "message": "Publisher Model `...` is not found.",
    "hint": "Model '...' not found in project '...' / location '...'. Try: gemini-3.1-flash-image.",
    "docs_url": "https://docs.cloud.google.com/...",
    "log_path": ".../logs/vertex_ai_mcp.log",
    "duration_s": 0.42
  }
}

HTTP code

What you'll see in error.hint

400

Vertex's parameter-validation message verbatim

401

"Run gcloud auth application-default login and retry."

403

IAM role hint (roles/aiplatform.user) + Vertex AI API enablement check

404

Live alternatives from the probe cache (tool_list_available_models)

429

Retry after N (from Retry-After header) + quota-increase pointer

500/502/503/504

"Safe to retry once"

TIMEOUT

After 90s — suggests a -fast- variant

VALIDATION

Client-side validation failure (mask missing, file not found, etc.); no HTTP call is made

Full request/response logs are written to logs/vertex_ai_mcp.log.

Resources & Prompts

  • Local Resources (local://outputs/{filename}): Generated and processed media files are exposed as MCP resources for seamless display in MCP clients (Claude Desktop, Cursor, etc.).

  • Pre-built Prompts: Includes specialized prompt templates for character_design, logo_concept, and UI_UX_mockup.


Related MCP server: nano-banana-mcp

Prerequisites & Resources

  1. Python 3.10 or newer

  2. Google Cloud Account with an active project

  3. Vertex AI API enabled in your project

  4. Google Cloud CLI (gcloud) installed and configured

For GenAI SDK tools (tool_embed, tool_analyze_video, tool_generate_speech, tool_live_generate, tool_generate_music), you additionally need one of:

  • A Cloud API Key (GOOGLE_CLOUD_API_KEY) — created in GCP Console, uses your existing GCP billing. Enables newer models like gemini-3.5-flash. (Recommended)

  • A Gemini API key (GOOGLE_GENAI_API_KEY) — from AI Studio, separate billing.

  • Vertex AI ADC — set GOOGLE_GENAI_BACKEND=vertexai, uses gcloud auth application-default login.

  • Service Account JSON (GOOGLE_APPLICATION_CREDENTIALS) — see below.

Cloud API Key setup: Run gcloud services enable generativelanguage.googleapis.com apikeys.googleapis.com then gcloud services api-keys create --display-name="GeminiKey". The key string appears in the command output — copy it directly to .env.


Installation & Setup

Option A: Install from PyPI

pip install open-google-image-generator-mcp

Option B: Clone the Repository

git clone https://github.com/miracorhan/OpenGoogleImageGeneratorMCP.git
cd OpenGoogleImageGeneratorMCP
pip install -r requirements.txt

Authentication

Choose one of the following methods:

Option A — User account (interactive login):

gcloud auth application-default login

Opens a browser. Use an account that has access to your Google Cloud project.

Option B — Service Account JSON key:

# Download key: GCP Console → IAM & Admin → Service Accounts → Keys → Add Key → JSON
# Required role: Vertex AI User (roles/aiplatform.user)

Set in .env:

GOOGLE_APPLICATION_CREDENTIALS=C:\path\to\service-account-key.json

Both vertex_ai_tools (Imagen, Veo, Lyria) and genai_tools (embed, speech, video analysis, live) pick up the SA JSON automatically. No gcloud CLI required when using a service account key.

Environment Configuration

Create a .env file in the project root:

# Required
GOOGLE_CLOUD_PROJECT=your-google-cloud-project-id
GOOGLE_CLOUD_LOCATION=us-central1

# Optional: location for Gemini :generateContent calls (Gemini 3.x image/text
# models are served from `global` only). Imagen/Veo keep GOOGLE_CLOUD_LOCATION.
# GOOGLE_CLOUD_GEMINI_LOCATION=global

# Output directory for generated media
DEFAULT_OUTPUT_DIR=./outputs

# --- GenAI SDK (for embed, speech, live, music, video-analysis tools) ---
# Option A: Cloud API Key (recommended — uses GCP billing, enables gemini-3.5-flash)
# Create: gcloud services enable generativelanguage.googleapis.com apikeys.googleapis.com
#         gcloud services api-keys create --display-name="GeminiKey"
GOOGLE_CLOUD_API_KEY=AIza...

# Option B: Gemini API key (AI Studio, separate billing, free tier available)
# GOOGLE_GENAI_BACKEND=gemini_api
# GOOGLE_GENAI_API_KEY=AIza...

# Option C: Vertex AI ADC (no key needed, uses gcloud auth application-default login)
# GOOGLE_GENAI_BACKEND=vertexai

# Option D: Service Account JSON key (no gcloud CLI required)
# Download: GCP Console → IAM & Admin → Service Accounts → Keys → Add Key → JSON
# Required role: Vertex AI User (roles/aiplatform.user)
# GOOGLE_APPLICATION_CREDENTIALS=C:\path\to\service-account-key.json

# --- Advanced Vertex AI Authentication (Optional) ---
# Direct OAuth 2.0 Access Token
# GOOGLE_ACCESS_TOKEN=ya29.a0AfB_by...

# Service Account Impersonation
# IMPERSONATE_SERVICE_ACCOUNT=your-service-account@your-project.iam.gserviceaccount.com

Usage

Running as a Standalone Script

python mcp_server.py

Integrating with MCP Clients

For Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "OpenGoogleImageGenerator": {
      "command": "python",
      "args": ["/absolute/path/to/OpenGoogleImageGeneratorMCP/mcp_server.py"],
      "env": {
        "GOOGLE_CLOUD_PROJECT": "your-google-cloud-project-id",
        "GOOGLE_CLOUD_LOCATION": "us-central1",
        "GOOGLE_GENAI_API_KEY": "AIza..."
      }
    }
  }
}

Replace /absolute/path/to/your/... with the actual path, and use the correct Python executable if using a virtual environment.

Example prompts

  • "Generate an image of a futuristic city at sunset."

  • "Edit this banner — add a glowing cyan halo around the logo." (tool_edit_image, EDIT_MODE_DEFAULT)

  • "Transform this photo into a hand-drawn pencil sketch." (tool_transform_image)

  • "Remove the background from the image I just generated."

  • "Analyze this image and tell me what objects are present."

  • "Generate 8 product shots in parallel with different backgrounds." (tool_batch_generate)

  • "Run a pipeline: generate → remove background → upscale." (tool_run_pipeline)

  • "Convert this text to speech using the Kore voice." (tool_generate_speech)

  • "Generate a 30-second ambient music track." (tool_generate_music)

  • "Embed this sentence for semantic search." (tool_embed)

  • "Animate this product photo into a 5-second video." (tool_image_to_video)

  • "Generate a video of a sunset with audio." (tool_generate_video, audio_enabled=true)


Troubleshooting

Symptom

Cause

Fix

RefreshError / "Reauthentication needed"

ADC token expired

gcloud auth application-default login or switch to SA JSON

available: {} from tool_list_available_models

Same ADC expiry, probe skipped

Re-authenticate (above)

403 PERMISSION_DENIED with SA JSON

Service account missing role

Grant roles/aiplatform.user to the service account

FileNotFoundError for SA JSON

Wrong path in GOOGLE_APPLICATION_CREDENTIALS

Use an absolute path; forward slashes or escaped backslashes

401 UNAUTHENTICATED with GOOGLE_CLOUD_API_KEY

Key used with Vertex AI endpoint (rejects keys)

Ensure GOOGLE_GENAI_BACKEND is not set to vertexai when using a Cloud API key

403 PERMISSION_DENIED — "Gemini API has not been used"

generativelanguage.googleapis.com not enabled

gcloud services enable generativelanguage.googleapis.com

400 INVALID_ARGUMENT — "API key not valid" even with a brand-new key

Google's key-validation error is identical whether the key is dead or generativelanguage.googleapis.com just isn't enabled on that project — the message doesn't distinguish the two

Confirm with gcloud services list --project=YOUR_PROJECT --filter="config.name:generativelanguage.googleapis.com"; if missing, gcloud services enable generativelanguage.googleapis.com --project=YOUR_PROJECT and allow a few minutes for propagation before retrying

403 PERMISSION_DENIED — "API Keys API disabled"

apikeys.googleapis.com blocked by org policy

gcloud services enable apikeys.googleapis.com

tool_generate_speech / tool_embed / tool_live_generate / tool_analyze_video return 404 NOT_FOUND under GOOGLE_GENAI_BACKEND=vertexai

The TTS-preview, live-preview, and embedding-preview models used by these tools are not published to the Vertex AI publisher catalog — Vertex AI/ADC is not a usable fallback for them, unlike image models

Use GOOGLE_CLOUD_API_KEY or GOOGLE_GENAI_API_KEY (Gemini API endpoint) for these four tools specifically

Worried a GenAI SDK call will charge your Cloud Billing / free-trial credit

Once billing is enabled on a project, the Gemini API free tier is gone entirely for that project — every call becomes billable from the first token, and some promotional/free-trial credits explicitly exclude Gemini API usage regardless

For risk-free testing, create a separate GCP project with no billing account attached at all and generate its AI Studio key there (GOOGLE_GENAI_API_KEY); verify with gcloud billing projects describe YOUR_PROJECT → billingEnabled: false. Keep your billed project for Vertex AI (Imagen/Veo/Lyria) only

Edited .env but the exact same auth error keeps happening

config.py loads .env once at process start and genai_tools._genai_client is cached for the process lifetime — editing the file does not affect an already-running server

Reconnect the MCP server (/mcp → reconnect, or restart the client) after any .env change

404 NOT_FOUND for text-embedding-004

text-embedding-004 was shut down on the Gemini API (2026-01-14) and retires on Vertex AI on 2027-04-01

Omit model to use the default (gemini-embedding-2 / gemini-embedding-001)

404 NOT_FOUND for gemini-3-pro-image, gemini-3.1-flash-lite-image or gemini-nano-banana-2.1 on Vertex AI

These models are served from the global location only

Leave GOOGLE_CLOUD_GEMINI_LOCATION unset (defaults to global)

404 / NOT_FOUND for imagen-4.0-*

Imagen 4 has been shut down (Gemini API: 2026-08-17)

Use model_tier or a Gemini image model (gemini-3.1-flash-lite-image, gemini-nano-banana-2.1, gemini-3-pro-image)

400 INVALID_ARGUMENT mentioning thinking_budget / MINIMAL on gemini-3.8-flash / gemini-4-argon

These models only accept thinkingLevel LOW/MEDIUM/HIGH

Handled automatically by tool_analyze_image since v3.3.0 — update the server

429 RESOURCE_EXHAUSTED with limit: 0 for gemini-4-argon

The model has no Gemini API free tier

Use a billed key, Vertex AI, or a lower tier (fast / balanced)

ModuleNotFoundError: No module named 'mcp.server.fastmcp'

Server older than v3.3.0 installed with mcp 2.x

Update the server (v3.3.0 supports both mcp 1.x and 2.x)

404 NOT_FOUND for a model

Model not available in your project/region

Run tool_list_available_models and pick from available list

gcloud api-keys command not found

Wrong command prefix

Use gcloud services api-keys list/create/delete

Security: The Cloud API Key string appears in plaintext in gcloud services api-keys create output. Copy it directly to .env — never paste it into a chat, commit, or log. Revoke a leaked key immediately with gcloud services api-keys delete KEY_ID.


Author & License

Available Tools

19 tools
tool_analyze_imageC

Analyze an image using a multimodal prompt with Vertex AI.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.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 carries the full disclosure burden. It reveals only that a multimodal prompt is sent to Vertex AI; it says nothing about whether this is a read-only operation, whether the image must already be uploaded, latency/cost behavior, or what the returned analysis looks like.

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?

A single front-loaded sentence with no filler or padding. It is efficient, though arguably under-specified rather than truly concise.

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

Completeness2/5

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

With no annotations, no output schema, and no parameter guidance, this is too thin for a tool that takes a configurable vision model and reasoning level. An agent cannot tell what it receives back or how to interpret the result.

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

Parameters2/5

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

Reported schema description coverage is 0%, and the description adds no parameter meaning at all — it never mentions the prompt, image path, model selection, thinking level, or media resolution. Whatever documentation exists is buried in nested $defs, so the description fails to compensate for the coverage gap.

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

Purpose4/5

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

The description gives a specific verb (Analyze) plus resource (image) and adds the mechanism ('multimodal prompt with Vertex AI'), which is more than a name restatement. It does not, however, distinguish itself from close siblings like tool_analyze_video, tool_transform_image, or tool_edit_image, leaving that differentiation to the names alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as the image-editing or video-analysis siblings. The agent is left to infer the use case entirely from the tool name.

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

tool_analyze_videoB

Analyze a local video file using Gemini Vision. Supports mp4, mov, avi, webm, mkv. Max 20MB inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden and does contribute real constraints: supported container formats (mp4, mov, avi, webm, mkv) and a 20MB inline size limit. However it says nothing about what is returned (text analysis?), latency, whether the file leaves the machine, or auth requirements for the model backend.

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?

Two short sentences, front-loaded with the action and followed by the hard constraints; no filler. Slightly terse in that it never states an outcome, but every sentence earns its place.

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

Completeness2/5

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

No annotations and no output schema, so the description is the only place a caller could learn what comes back, and it is silent on the return shape. Combined with zero usage guidance against 18 sibling tools, an agent has enough to invoke it but not enough to predict or route confidently.

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 reported at 0% at the top level, so the description must compensate; it does add the format and size semantics for video_path but says nothing about prompt, model, or model_tier selection. The nested $defs do carry descriptions for those params, which partially offsets the gap, keeping this at minimum-viable rather than deficient.

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

Purpose4/5

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

States a specific verb and resource ("Analyze a local video file"), naming the engine (Gemini Vision), which distinguishes it from sibling image/video tools at a glance. It does not explicitly contrast itself with tool_analyze_image or tool_generate_video, so it falls short of the 5-level sibling differentiation.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of when to pick this over tool_analyze_image for still frames or over video-generation siblings, and no prerequisites. The description only describes capability, leaving selection entirely to inference.

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

tool_batch_generateA

Generate images for multiple prompts in a single call (max 10, max 4 concurrent).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does add genuine behavioral facts: a cap of 10 prompts and 4 concurrent generations. It omits what happens on partial failure (does one bad prompt abort the batch?), whether the call is safe/read-only-side-effect-free, and typical latency for a 10-prompt batch.

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?

A single tight sentence with the operation front-loaded and the constraints parenthesized, no filler whatsoever. Every clause earns its place.

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?

For a batch mutation-style tool with no annotations and no output schema, the description is adequate but thin: it never states the return shape (per-prompt results? a list of file paths?), the failure mode, or how output files are named beyond what the schema says. An agent could call it correctly but not predict its response.

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?

Top-level schema description coverage is reported at 0% (the single `params` wrapper), though the nested BatchGenerateParams object does document each field, including its own "max 10" note. The description adds only the concurrency figure, leaving model_tier override behavior, output_prefix naming, and output_dir defaults to the schema.

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

Purpose4/5

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

The description gives a specific verb and resource ("Generate images") plus an explicit scope ("for multiple prompts in a single call"), which cleanly separates it from the single-prompt sibling tool_generate_image. It does not name that sibling explicitly, so it lands just short of a 5.

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?

Batch usage is implied by "multiple prompts in a single call," which tells an agent this is the bulk path, but there is no explicit when-to-use/when-not guidance and no named alternative such as tool_generate_image for single-prompt work or tool_run_pipeline for chained work.

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

tool_edit_imageA

Image editing via Gemini image models — mask-guided inpaint/outpaint, background swap, product image, or mask-free prompt-driven edit. For free-form natural-language transforms (style transfer, scene rewriting), use tool_transform_image instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

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 carries the full behavioral burden. It discloses the mode taxonomy and that some modes are mask-guided versus prompt-driven, which is useful context, but says nothing about side effects (does it overwrite the base image or write only to output_path?), auth/API-key requirements, cost, or latency. That leaves meaningful behavioral gaps for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

Two sentences, zero waste, with the capability enumeration front-loaded and the disambiguation clause placed last. Every phrase earns its place and nothing is repeated from the schema.

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?

The description is adequate for identifying and selecting the tool, and the nested schema covers parameters well. However, with no annotations and no output schema, it omits what the tool returns or where results land, and the requirement that mask-required modes need a mask is only discoverable in the schema. For a file-producing edit tool this leaves a gap.

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?

The top-level coverage metric is 0% because the single 'params' wrapper is undocumented, but every nested property (prompt, edit_mode, model_name, mask_image_path, etc.) carries a rich schema description, so the schema itself does the heavy lifting. The description adds no parameter-level detail beyond what the schema already provides, which is the expected baseline when the schema is self-documenting.

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 ('Image editing via Gemini image models') and enumerates the concrete sub-capabilities: mask-guided inpaint/outpaint, background swap, product image, and mask-free prompt-driven edit. It also names the sibling it is not (tool_transform_image), so an agent can distinguish it without opening a schema.

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?

Explicitly routes free-form natural-language transforms (style transfer, scene rewriting) to tool_transform_image, giving a clear selection condition. It stops short of covering the other plausible alternatives (tool_generate_image, tool_analyze_image, tool_upscale_image) or stating when this tool should not be used.

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

tool_embedC

Generate a float embedding vector for the given text using Gemini Embedding.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.8/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 behavioral burden. It discloses only that a float vector is returned; it says nothing about vector dimensionality, cost/quota implications, authentication requirements, or whether the call is idempotent/cacheable. For an un-annotated tool this is a meaningful gap.

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?

A single, front-loaded sentence with the verb and output type leading. It is efficient with no wasted clauses, though it is arguably under-specified rather than truly concise.

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?

For a simple single-input embedding tool with no output schema and no annotations, the description covers the core purpose but omits output shape (dimension/size of the vector), model selection implications, and any usage context, leaving the agent to infer more than it should.

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

Parameters2/5

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

The description adds no parameter information at all. Reported schema description coverage is 0%, and while the nested schema does carry some per-field text, the description does not compensate by explaining the text input or the model override, which is the one field an agent would most need contextualized.

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

Purpose4/5

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

The description states a specific verb and resource ('Generate a float embedding vector') plus the provider ('Gemini Embedding'), which is enough for an agent to distinguish it from the media-generation siblings (images, video, music, speech). It does not explicitly name or contrast against any sibling, but the embedding task is inherently distinct.

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

Usage Guidelines2/5

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

There is no guidance on when to use embeddings versus other tools, no mention of batch vs single-text usage, no note about when to prefer this over other analysis tools, and no prerequisites or constraints. The agent gets the what but not the when.

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

tool_extend_videoC

Extend an existing video by generating additional seconds at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full behavioral burden and falls short. It does not disclose auth/permission needs, cost, model selection behavior, or what happens to the original file; it only restates the basic extend 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?

A single front-loaded sentence with zero filler, clearly stating the action and result. It is efficient, though its brevity contributes to the gaps elsewhere.

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

Completeness2/5

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

For a generation/mutation tool with no annotations, no output schema, and 7 sub-parameters including an enum and output-path resolution rules, the description is too thin. It should explain output handling, model/tier choice, and length options.

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

Parameters2/5

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

Schema description coverage is reported at 0% and the top-level 'params' object is undocumented. The description only loosely gestures at extra_seconds ('additional seconds') and says nothing about prompt, model_name/model_tier, or the output path/filename distinction.

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

Purpose4/5

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

States a specific verb (extend), resource (existing video), and mechanism (generating additional seconds at the end). An agent can distinguish it from generate_video and image_to_video, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

The description gives no when-to-use or when-not-to-use guidance and never points to alternatives like tool_generate_video or tool_image_to_video. The only implied cue is that the source must already be a video.

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

tool_generate_imageA

Generate an image from a text prompt using Vertex AI Gemini image models (Nano Banana). Use model_tier for simple model selection: fast/balanced/quality/ultra. negative_prompt / seed / watermark / safety / storage_uri apply to legacy Imagen models only.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose a non-obvious behavioral trait — which parameters only take effect on legacy Imagen models — but says nothing about side effects (file written to disk vs. base64 returned), cost, rate limits, or permissions. Partial coverage of a mutation-style tool.

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 short lines, front-loaded with the core action, then the tier shortcut, then the legacy caveat. Every sentence carries distinct information with no filler.

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?

Covers the core action and model-selection path, but with no output schema and no annotations the agent gets no statement of what is produced (saved path vs. base64 payload) or how to choose this over sibling generation/edit tools. Adequate but leaves real gaps for a 16-parameter generation 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 reported 0% coverage is an artifact of the single top-level $ref; the nested GenerateImageParams schema actually describes every field. The description still adds cross-parameter semantics the schema does not: model_tier overrides model_name, and the legacy-only grouping of negative_prompt/seed/watermark/safety/storage_uri (only some of which are marked Imagen-only in the schema itself).

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

Purpose4/5

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

States a specific verb and resource ('Generate an image from a text prompt') plus the backing engine (Vertex AI Gemini image models / Nano Banana). This implicitly separates it from tool_edit_image and tool_transform_image, which operate on existing images, though it never names those siblings explicitly.

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?

Gives conditional guidance ('Use model_tier for simple model selection') and a useful applicability caveat that negative_prompt/seed/watermark/safety/storage_uri are legacy-Imagen-only. However, it never says when to prefer this tool over tool_batch_generate or tool_edit_image, so routing between siblings is left to inference.

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

tool_generate_musicB

Generate music from a text prompt using Lyria. Check tool_list_available_models to verify Lyria is enabled in your project.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.1/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, and it discloses almost nothing behavioral. It never says whether generation is synchronous or long-running, what gets returned (audio bytes vs. a file on disk), how output_path/output_filename interact, or any cost/rate limit. The only non-obvious behavior mentioned is the model-availability prerequisite.

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?

Two short sentences, front-loaded with the core action and followed by the prerequisite. Nothing is padded, though the brevity comes partly at the cost of the missing behavioral detail.

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

Completeness2/5

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

With no annotations, no output schema, and a nested params object, the description should explain at minimum where generated audio goes and what a call returns. Neither is covered, leaving an agent unable to predict the side effects or result of invoking it.

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

Parameters2/5

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

Schema description coverage is reported as 0% at the top level, and the description adds no parameter meaning at all — no mention of prompt, duration, model selection, or the output_path vs. output_filename relationship. It does not compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource ('Generate music from a text prompt using Lyria'), which cleanly separates it from the sibling image/video/speech generators. It does not name or route against any specific alternative, so it stops short of a 5.

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?

Gives a concrete precondition: verify Lyria is enabled via tool_list_available_models before calling. That is real usage context, but there is no when-not-to-use guidance or comparison against sibling generators.

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

tool_generate_speechB

Convert text to speech using Gemini TTS. Returns a WAV file path in outputs/.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.1/5.0
Behavior3/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 does usefully disclose the output artifact ('Returns a WAV file path in outputs/'), which matters because there is no output schema, but it says nothing about text length limits, latency, cost, model-tier behavioral differences, or overwrite behavior when the target path already exists.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and followed by the return value; no filler or restatement of the tool name. Nothing could be removed without losing information.

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

Completeness3/5

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

For a single-parameter wrapper it covers the core action and return type, but with no annotations and no output schema it leaves the agent without guidance on voice/tier selection, text-size constraints, or how output_path and output_filename interact. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is reported at 0%, so the description is expected to compensate for parameter meaning, and it does not: voice, model, model_tier, output_path, and output_filename are never referenced. The only weak tie-in is 'outputs/', which vaguely gestures at the output path parameters without explaining precedence or format.

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

Purpose4/5

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

States a specific verb and resource ('Convert text to speech') plus the engine ('Gemini TTS'), which cleanly separates it from siblings like tool_generate_music, tool_generate_video, and tool_analyze_video. It does not explicitly name or contrast an alternative, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, no mention of alternatives (e.g. generate_music for audio vs. speech), and no note about when to pick model_tier 'fast' vs 'quality' or which voice to choose. Usage is only inferable from the tool name.

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

tool_generate_videoC

Generate a video from a text prompt using Veo.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.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 carries the full behavioral burden and mostly fails it. It does not disclose that generation is typically long-running/asynchronous, what the output artifact or return value looks like, cost/latency characteristics, or that audio requires a Veo 3+ model — all of which materially affect how an agent should call and wait on this tool.

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?

A single tight sentence with the action, resource, and mechanism front-loaded and no filler. It is well-sized for what little it attempts, though brevity here reflects omission rather than efficiency.

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

Completeness2/5

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

With no annotations, no output schema, and a large sibling set of video-related tools, the description omits too much: no return-value expectations, no async/polling behavior, no model-tier or audio prerequisites, and no disambiguation from adjacent video tools. It is not adequate for a tool with this much surface area.

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

Parameters2/5

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

Schema description coverage is reported at 0%, so the description should compensate, and it adds nothing about prompt, duration, model_name, model_tier, resolution, aspect_ratio, audio_enabled, or the output_path/output_filename priority. The nested schema fields are self-documented, which keeps this above a 1, but the description contributes zero parameter meaning.

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

Purpose4/5

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

Names a specific verb (generate), resource (video), and input modality (text prompt) plus the underlying engine (Veo). It clearly separates itself from image, music, and speech siblings, but never names or contrasts with the closest video siblings such as tool_image_to_video or tool_extend_video.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no routing to alternatives. An agent has no stated basis for choosing this over tool_image_to_video, tool_extend_video, or tool_live_generate, all of which also produce video.

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

tool_image_to_videoC

Generate a video from a still image as the first frame using Veo.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it discloses nothing about generation cost, latency/async behavior, duration or resolution limits, or file/path requirements. 'using Veo' identifies the backend engine but adds little operational context beyond what the name already implies.

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?

One tight, front-loaded sentence with no filler or redundancy. It is efficient, though the brevity is partly under-specification rather than genuine density.

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

Completeness2/5

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

Against a nested ten-field parameter object, no annotations, and no output schema, the description is too thin. Nothing explains the first+last frame mode, output destination behavior, or model selection, leaving the agent without enough to call the tool correctly.

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

Parameters2/5

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

Schema description coverage is reported at 0% for the single required 'params' wrapper, so the description must compensate and does not. It hints that an image supplies the first frame but says nothing about the required first_frame_path, duration options, aspect ratio, model tier, or the output_path/output_filename priority rule.

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

Purpose4/5

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

States a specific verb (generate) and resource (video) with the key constraint 'from a still image as the first frame', which implicitly separates it from plain text-to-video siblings like tool_generate_video and tool_extend_video. It stops short of naming any sibling explicitly, so differentiation relies on the agent's inference.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance and never references the alternatives in a crowded sibling set (tool_generate_video, tool_extend_video, tool_video_object_edit). An agent must guess from the name alone which video tool applies.

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

tool_list_available_modelsA

Live-probe every candidate Vertex AI publisher model in this project/location and return only those that respond (HTTP 200 or 400 = reachable; 404 = not found and excluded). Results are cached for the server process lifetime; pass force_refresh=true to rescan.

Returns: { "available": { "image_generation": [...], "image_transformation": [...], "text": [...], "vision": [...] }, "recommended": <static list, may include models that 404 in this project>, "checked_at": , "project": ..., "location": ... }

ParametersJSON Schema
NameRequiredDescriptionDefault
force_refreshNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well: it discloses that the call live-probes candidates (implying latency/network cost), defines the status-code semantics (200/400 = reachable, 404 = excluded), and documents process-lifetime caching plus the force_refresh escape hatch. This is exactly the behavioral context an agent needs.

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?

Front-loaded with the core action, then the caching caveat, then a structured Returns block. Every sentence earns its place; the HTTP-status parenthetical prevents misreading 'respond' as success-only.

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?

No output schema and no annotations exist, yet the description supplies the full return shape (available categories, recommended, checked_at, project, location) and flags that 'recommended' may include models that 404. An agent has everything needed to call and interpret this 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 description coverage is 0% for the single force_refresh parameter, so the description must compensate. It does: 'pass force_refresh=true to rescan' explains both the effect and the default cached behavior, going beyond the bare boolean in 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?

States a specific verb (live-probe/list) and resource (Vertex AI publisher models in this project/location) with the exact selection rule (only models that respond). It is unmistakably a discovery tool, cleanly distinguished from the generation/editing siblings like tool_generate_image and tool_edit_image.

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 makes the operating context clear (scoped to this project/location, results cached for the server process lifetime) and tells the agent how to force a rescan. It stops short of naming when-not-to-use or an explicit alternative, but the discovery role is unambiguous given the sibling set.

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

tool_live_generateC

Generate text using Gemini streaming. The full streamed response is accumulated and returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does add one genuinely useful behavioral fact — that the stream is accumulated server-side and returned whole rather than as incremental chunks — but it omits auth requirements, latency, rate limits, error behavior, and the default model actually used.

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?

Two sentences with no filler, and the key behavioral fact is front-loaded after the purpose statement. It is lean to the point of under-specification for a tool that exposes a model-tier choice.

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

Completeness2/5

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

No output schema and no annotations mean the description must explain return shape and side effects, which it does only partially. For a generation tool with a tier selector, the agent gets no guidance on tier choice, expected latency, or failure modes.

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

Parameters2/5

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

Schema description coverage is reported at 0% at the top level, so the description would need to compensate, and it says nothing about prompt, model, or model_tier. The model_tier semantics and the 'Live API-only models are not supported' restriction appear only in the nested schema, not in the description.

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

Purpose4/5

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

The description states a specific verb and resource ('Generate text using Gemini streaming'), which distinguishes it from the image/video/audio generation siblings. It does not, however, differentiate it from the other text-producing tools such as tool_batch_generate or tool_run_pipeline.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. An agent cannot tell from the description whether to prefer this over tool_batch_generate for multiple prompts or tool_list_available_models to pick a model first.

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

tool_remove_backgroundB

Remove the background from an image and save a transparent PNG. The Gemini model places the subject on a flat chroma-key colour, which is then keyed out locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, but it does disclose a genuinely useful trait: the two-stage pipeline where Gemini paints the subject on a flat chroma-key colour that is then keyed out locally. That explains why key-colour choice matters and hints at failure modes. It still says nothing about file side effects, overwrite behaviour, permission needs, or cost/latency of the model call.

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

Conciseness5/5

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

Two sentences, zero filler, with the outcome (transparent PNG) front-loaded and the mechanism following as supporting context. Nothing is restated and nothing is padded.

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?

With no annotations and no output schema, the description is the only source for behavior and returns; it covers the output format but not where the file lands by default, whether an existing file is overwritten, or that a base64 return is optional. Adequate for a simple single-parameter tool, but thin given the absence of structured support.

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?

The reported schema coverage for the top-level wrapper is 0%, but the nested parameter object documents every field in detail, so the schema does the heavy lifting. The description contributes mechanism context that motivates key_color's existence, but adds no per-parameter meaning beyond it. A baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource ('Remove the background from an image') and adds the concrete output ('save a transparent PNG'), which is more than a restatement of the name. It does not, however, distinguish this tool from adjacent siblings like tool_edit_image or tool_transform_image, which an agent might reasonably consider for the same request.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no mention of alternatives. The agent is left to infer whether this is preferable to tool_edit_image for a masking request, and nothing tells it what conditions make this tool a poor fit (e.g. subjects containing the key colour, though that is buried in the schema).

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

tool_run_pipelineB

Chain image processing steps sequentially. Each step's output becomes the next step's input. Supported tools: generate, edit, transform, upscale, remove_background. Example: generate → remove_background → upscale.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the chaining data-flow model and enumerates supported tools, but says nothing about failure behavior mid-pipeline, whether it is a write/destructive operation, permissions, latency/cost, or what the return value is. Core semantics are covered; operational behavior is not.

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?

Four short lines, front-loaded with the core mechanic, then supported tools, then a concrete example. Every sentence carries information with no filler. Slightly more could be trimmed, but the structure is efficient and scannable.

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?

For an orchestration tool with a nested steps model, no annotations, and no output schema, the description covers the chaining concept and valid tools but leaves out error handling, output/return expectations, and constraints on step composition. An agent could invoke it, but not without inference on failure and output behavior.

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 reported as 0%, so the description must compensate. It does supply the valid tool names ('generate / edit / transform / upscale / remove_background'), but that list is also present in the schema's `tool` field, and the description never explains the `steps`, `output_path`, or `output_filename` semantics or how per-step `params` should be shaped. Partial compensation only.

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

Purpose4/5

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

States a specific verb and resource ('chain image processing steps sequentially') and clarifies the data flow ('each step's output becomes the next step's input'). It names the supported operations, which map onto sibling tools, so an agent can distinguish this orchestration tool from single-op siblings. It stops short of explicitly contrasting itself with those siblings, so a 4 rather than a 5.

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?

Usage is only implied via the example ('generate → remove_background → upscale'), which shows the chaining pattern without stating when to choose this tool over calling the individual step tools. No when-not guidance, prerequisites, or alternative routing is given. Adequate but with clear gaps.

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

tool_transform_imageA

Free-form 'image + text -> image' transformation via Gemini multimodal models. Use for style transfer, scene rewriting, or any natural-language image edit that does not require pixel-precise masking.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the modality contract and that a third-party multimodal model performs the work (implying a network call), but says nothing about file side effects, cost/latency, auth, or rate limits — all relevant for a tool whose schema includes output_path and return_base64.

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

Conciseness5/5

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

Two tight sentences: the first states what it does and how, the second states when to use it and when not to. Zero filler and front-loaded.

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?

For a tool with nine schema parameters, no annotations, and no output schema, the description covers the core routing decision but omits the multi-reference-image capability, tier selection, and whether a file is written to disk versus returned inline. Adequate for selection, thin for correct invocation.

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

Parameters2/5

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

Schema description coverage is reported at 0% for the top level, and the description never mentions any parameter — no guidance on model_name/model_tier selection, save_format, additional reference images, or output destinations. The nested property descriptions carry the load, but the description itself adds no parameter meaning.

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

Purpose4/5

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

The description names a concrete verb and resource ('image + text -> image' transformation) and even specifies the underlying mechanism (Gemini multimodal models). It also draws a capability boundary against masking-based edits, which distinguishes it from sibling tool_edit_image, though it never names that sibling explicitly.

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 gives explicit use cases (style transfer, scene rewriting, natural-language edits) and a negative condition ('does not require pixel-precise masking'), which routes the agent away from mask-based tools. The alternative is only implied rather than named, so it stops short of a 5.

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

tool_upload_fileA

Register a local file for use as a reference image in other tools (e.g. tool_transform_image). Returns a file_uri to pass as additional_image_paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It does disclose the return artifact (a file_uri for additional_image_paths), which is valuable given there is no output schema. However it is silent on the semantics of 'register' — whether the file is copied or merely referenced, whether the source path must remain valid, size/format limits, or any permission requirements.

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

Conciseness5/5

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

Two tight sentences with the purpose front-loaded and the return value second. No filler or restatement of the tool name.

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 single-argument setup tool with no annotations and no output schema, the description covers the two things an agent most needs: why to call it and what it returns. Missing only edge-case behavior (file lifetime, format restrictions, whether the path is copied), which is minor at this complexity level.

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

Parameters2/5

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

Schema description coverage on the top-level parameter ('params') is 0%, and the description adds no parameter-level detail: it never mentions file_path, mime_type, or display_name. 'Local file' only loosely implies file_path. The nested $defs do document the inner fields, which prevents this from being a 1, but the description does not compensate for the coverage gap.

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?

Specific verb+resource ('Register a local file') plus the exact role it plays: producing a reference image for other tools. It names a concrete sibling (tool_transform_image) as the consumer, so an agent can distinguish this precondition/setup tool from the media-generation siblings without opening a schema.

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?

States the usage context clearly ('for use as a reference image in other tools') and gives a concrete example consumer plus the parameter name downstream tools expect. It does not state when NOT to use it (e.g. when the file is already registered or when a remote URL suffices), so it falls short of full when/when-not guidance.

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

tool_upscale_imageB

Upscale a low resolution image to 2K or 4K by re-rendering it with a Gemini image model.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It helpfully discloses that upscaling happens by re-rendering with a generative model (implying output is synthesized, not a faithful resample), but says nothing about file-side effects (writing to output_path/output_filename), cost, overwrite behavior, or permission needs.

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?

One sentence, front-loaded with the verb and resource, with no filler. Every clause adds information (target resolutions, mechanism).

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?

Covers what the tool does and its output targets, but with no output schema and no annotations the description should say what comes back (saved file path vs. base64) and note the disk-writing side effect. Adequate minimum for calling the tool, incomplete for predicting its effects.

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?

The description contributes zero parameter detail; the reported top-level coverage is 0% only because everything is nested under a single 'params' $ref. The nested schema properties are in fact richly documented (model_name limits, model_tier overrides, output_path precedence, target_resolution aspects), so the schema does the heavy lifting and a baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (upscale), resource (image), the target outputs (2K/4K), and the mechanism (re-render with a Gemini image model), which distinguishes it from generate_image/edit_image/transform_image without naming them. It stops short of explicitly contrasting with those siblings, so it is clear but not self-routing.

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

Usage Guidelines2/5

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

No when-to-use guidance and no acknowledgement of the nearby alternatives (transform_image, edit_image, generate_image). An agent has to infer that this is for low-resolution source images that need resolution increase, rather than being told.

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

tool_video_object_editC

Insert or remove an object in a video using Veo.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.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 behavioral burden, and it discloses almost nothing: no indication of whether the call is synchronous or long-running, where the result is written, cost/latency expectations, or permission requirements. 'Using Veo' at least identifies the backing model, which is the only behavioral fact conveyed.

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?

It is a single front-loaded sentence with zero filler, which is structurally clean, but the brevity reads as under-specification rather than tight writing for a 7-field generative tool.

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

Completeness2/5

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

With no annotations and no output schema, the description should explain return behavior, output file handling (output_path vs output_filename) and any operational constraints, but none of that appears. For a Veo-backed editing tool whose result is a produced file, the agent is left guessing about the outcome.

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

Parameters2/5

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

The description adds no parameter meaning beyond the schema. The nested VideoObjectEditParams definition does document its fields (prompt, operation enum, model_name/model_tier, video_path, output_path/output_filename), but the top-level schema exposes only a single undocumented 'params' object, so the description needed to compensate and does not.

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

Purpose4/5

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

The description names a specific action pair (insert/remove), the resource (an object in a video) and the engine (Veo), so an agent can immediately tell this is an object-level video edit rather than a full generation. It stops short of distinguishing itself from neighbors such as tool_generate_video, tool_image_to_video or tool_extend_video, which all operate on video.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no mention of the alternatives in the sibling set (e.g. generate_video for new footage, extend_video for lengthening). The only contextual cue is 'using Veo', which implies a source video exists but is not stated.

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

Tool Schema Changelog

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

  1. 19 tool updatesv3.3.0
    • First observedtool_analyze_image
    • First observedtool_analyze_video
    • First observedtool_batch_generate
    • First observedtool_edit_image
    • First observedtool_embed
    • First observedtool_extend_video
    • First observedtool_generate_image
    • First observedtool_generate_music
    • First observedtool_generate_speech
    • First observedtool_generate_video
    • First observedtool_image_to_video
    • First observedtool_list_available_models
    • First observedtool_live_generate
    • First observedtool_remove_background
    • First observedtool_run_pipeline
    • First observedtool_transform_image
    • First observedtool_upload_file
    • First observedtool_upscale_image
    • First observedtool_video_object_edit

TDQS

B3.3/5.0

Scored across 19 tools

Disambiguation4/5

Most tools target clearly distinct resource/action pairs across image, video, audio, and text. However, tool_edit_image and tool_transform_image overlap: edit_image mentions 'mask-free prompt-driven edit' while transform_image is for free-form natural-language transforms, so the boundary between them is slightly blurry despite the descriptions attempting to redirect.

Naming Consistency5/5

All 19 tools use the same tool_ prefix with snake_case verb_noun or verb_noun_phrase pattern, e.g. tool_generate_image, tool_remove_background, tool_run_pipeline. No mixed conventions or inconsistent verb styles.

Tool Count3/5

19 tools is on the heavy side for a single MCP server, even accounting for the broad multimodal scope. Some tools, such as batch_generate and run_pipeline, are convenience wrappers that an agent could orchestrate by calling individual generation tools, making the surface feel somewhat inflated.

Completeness4/5

The surface covers generation, editing, transformation, upscaling, background removal, video create/extend/edit/analyze, music, speech, text, embeddings, model discovery, batch, and pipeline. Minor gaps include no explicit output management/history tool and no non-streaming text generation, but core multi-modal workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers