Skip to main content
Glama

Imagen MCP Server

A Model Context Protocol (MCP) server for image generation using Google's Imagen model and other models supported by the Nexos.ai platform.

Features

  • Simple Image Generation: Generate a single image from a text prompt

  • Batch Image Generation: Generate multiple images with background processing

    • First image is returned immediately

    • Remaining images are generated in the background

    • Query for additional images as they become available

  • Model Catalog: Access comprehensive information about all available models

Related MCP server: Nano Banana MCP Server

Supported Models

Model

Provider

Description

imagen-4

Google

Flagship model with excellent prompt following and photorealistic output

imagen-4-fast

Google

Faster variant optimized for speed

imagen-4-ultra

Google

Highest quality for premium image generation

dall-e-3

OpenAI

High-quality model with excellent artistic capabilities

gpt-image-1

OpenAI

Strong prompt understanding and versatile output

Installation

# Install directly from the repository
pipx install git+https://github.com/your-username/Imagen-MCP.git

# Or install from local directory
cd Imagen-MCP
pipx install .

# Run the server
imagen-mcp
# Clone the repository
git clone <repository-url>
cd Imagen-MCP

# Install dependencies with Poetry
poetry install

# Run the server
poetry run imagen-mcp
# Or
poetry run python -m Imagen_MCP.server

Option 3: Install with pip

# Install from the repository
pip install git+https://github.com/your-username/Imagen-MCP.git

# Or install from local directory
pip install .

# Run the server
imagen-mcp

Environment Variables

Set up your Nexos.ai API key:

export NEXOS_API_KEY=your-api-key-here

Or create a .env file:

NEXOS_API_KEY=your-api-key-here

Usage

Running the Server

# If installed with pipx or pip
imagen-mcp

# If using Poetry (development)
poetry run imagen-mcp

# Alternative: run as Python module
poetry run python -m Imagen_MCP.server

# With FastMCP CLI (more options)
poetry run fastmcp run Imagen_MCP/server.py --transport http --port 8000

CLI Options

When using the fastmcp run command, you have additional options:

Option

Description

--transport, -t

Transport protocol: stdio (default), http, sse, streamable-http

--host

Host to bind to (default: 127.0.0.1)

--port, -p

Port for HTTP/SSE transport (default: 8000)

--log-level, -l

Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL

--no-banner

Don't show the server banner

MCP Client Configuration

To use this MCP server with an AI agent, add the following configuration to your MCP client.

Claude Desktop (pipx installation)

If you installed with pipx, add to your Claude Desktop configuration file (~/.config/claude/claude_desktop_config.json on Linux, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "imagen": {
      "command": "imagen-mcp",
      "env": {
        "NEXOS_API_KEY": "your-nexos-api-key-here"
      }
    }
  }
}

Claude Desktop (Poetry installation)

If you're using Poetry for development:

{
  "mcpServers": {
    "imagen": {
      "command": "poetry",
      "args": ["run", "imagen-mcp"],
      "cwd": "/path/to/Imagen-MCP",
      "env": {
        "NEXOS_API_KEY": "your-nexos-api-key-here"
      }
    }
  }
}

Cline / Roo Code

Add to your VS Code settings or Cline MCP configuration:

{
  "mcpServers": {
    "imagen": {
      "command": "imagen-mcp",
      "env": {
        "NEXOS_API_KEY": "your-nexos-api-key-here"
      }
    }
  }
}

Generic MCP Client (Copy-Paste Ready)

For pipx/pip installation:

{
  "imagen": {
    "command": "imagen-mcp",
    "env": {
      "NEXOS_API_KEY": "your-nexos-api-key-here"
    }
  }
}

For Poetry installation:

{
  "imagen": {
    "command": "poetry",
    "args": ["run", "imagen-mcp"],
    "cwd": "/path/to/Imagen-MCP",
    "env": {
      "NEXOS_API_KEY": "your-nexos-api-key-here"
    }
  }
}

Configuration Options:

Field

Description

command

The command to run (poetry for Poetry-managed projects)

args

Command arguments to start the MCP server

cwd

Working directory - set to your Imagen-MCP installation path

env

Environment variables, including the required NEXOS_API_KEY

Important: Replace /path/to/Imagen-MCP with the actual path to your Imagen-MCP installation and your-nexos-api-key-here with your Nexos.ai API key.

Alternative: Using pip-installed package

If you install the package globally or in a virtual environment:

{
  "imagen": {
    "command": "python",
    "args": ["-m", "Imagen_MCP.server"],
    "env": {
      "NEXOS_API_KEY": "your-nexos-api-key-here"
    }
  }
}

Tools

list_models

List all available image generation models with their descriptions, capabilities, and use cases.

Parameters: None

Returns:

  • models: List of all available models with details

  • total_count: Number of available models

  • default_model: The default model ID

  • usage_hint: How to use the model parameter

Example Response:

{
  "models": [
    {
      "id": "imagen-4",
      "name": "Imagen 4",
      "provider": "Google",
      "description": "Google's flagship image generation model...",
      "use_cases": ["Photorealistic image generation", ...],
      "strengths": ["Excellent prompt adherence", ...],
      "weaknesses": ["Slower generation time", ...],
      "supported_sizes": ["256x256", "512x512", "1024x1024", ...],
      "max_images_per_request": 4,
      "supports_hd_quality": true,
      "rate_limit": "100 messages per 3 hours"
    },
    ...
  ],
  "total_count": 5,
  "default_model": "imagen-4"
}

get_model_details

Get detailed information about a specific image generation model.

Parameters:

  • model_id (required): The model identifier (e.g., "imagen-4", "imagen-4-fast", "dall-e-3")

Returns:

  • Complete model details including capabilities, rate limits, use cases, strengths, and weaknesses

  • Error message if model not found

Example:

result = get_model_details(model_id="imagen-4-fast")

generate_image

Generate a single image from a text prompt. The image is saved to a file (temporary file if no path specified).

Parameters:

  • prompt (required): Text description of the image to generate

  • model (optional): Model to use (default: "imagen-4")

  • size (optional): Image size (default: "1024x1024")

  • quality (optional): Image quality - "standard" or "hd" (default: "standard")

  • style (optional): Image style - "vivid" or "natural" (default: "vivid")

Returns:

  • success: Whether the image was generated successfully

  • file_path: Absolute path to the saved image file

  • file_size_bytes: Size of the saved image file in bytes

  • model_used: The model that was used for generation

  • revised_prompt: The revised prompt (if the model modified it)

  • error: Error message if generation failed

Example:

result = await generate_image(
    prompt="A serene mountain landscape at sunset",
    model="imagen-4",
    size="1024x1024",
    quality="hd",
    style="natural"
)
if result.success:
    print(f"Image saved to: {result.file_path}")
    print(f"File size: {result.file_size_bytes} bytes")

start_image_batch

Start generating multiple images and return the first one immediately. Images are saved to files (in a temporary directory if no path specified).

Parameters:

  • prompt (required): Text description of the image to generate

  • count (optional): Number of images to generate, 2-10 (default: 4)

  • model (optional): Model to use (default: "imagen-4")

  • size (optional): Image size (default: "1024x1024")

  • quality (optional): Image quality (default: "standard")

  • style (optional): Image style (default: "vivid")

Returns:

  • success: Whether the batch was started successfully

  • session_id: ID for retrieving more images

  • first_image_path: Path to the first generated image file

  • first_image_size_bytes: Size of the first image file in bytes

  • pending_count: Number of images still being generated

  • error: Error message if batch failed to start

Example:

result = await start_image_batch(
    prompt="A futuristic cityscape",
    count=5,
    model="imagen-4"
)
if result.success:
    print(f"Session ID: {result.session_id}")
    print(f"First image: {result.first_image_path}")

get_next_image

Get the next available image from a batch generation session. The image is saved to a file (temporary file if no path specified).

Parameters:

  • session_id (required): Session ID from start_image_batch

  • timeout (optional): Maximum wait time in seconds (default: 60)

Returns:

  • success: Whether an image was retrieved

  • file_path: Path to the saved image file (or null if no image available)

  • file_size_bytes: Size of the saved image file in bytes

  • has_more: Whether more images are available or pending

  • pending_count: Number of images still being generated

  • error: Error message if retrieval failed

Example:

while True:
    result = await get_next_image(session_id=session_id)
    if result.file_path:
        print(f"Image saved to: {result.file_path}")
    if not result.has_more:
        break

get_batch_status

Get the current status of a batch generation session.

Parameters:

  • session_id (required): Session ID from start_image_batch

Returns:

  • status: Session status (created, generating, partial, completed, failed)

  • completed_count: Number of completed images

  • pending_count: Number of pending images

  • total_count: Total number of requested images

  • errors: List of any errors encountered

Resources

models://image-generation

Get the complete catalog of available image generation models with their capabilities, rate limits, use cases, strengths, and weaknesses.

models://image-generation/{model_id}

Get detailed information about a specific model.

Development

Running Tests

# Run all tests
poetry run pytest

# Run with verbose output
poetry run pytest -v

# Run specific test file
poetry run pytest tests/unit/test_generate_image.py

Project Structure

Imagen_MCP/
├── __init__.py              # Package exports
├── server.py                # FastMCP server definition
├── config.py                # Configuration management
├── constants.py             # Constants and type definitions
├── exceptions.py            # Custom exceptions
├── tools/
│   ├── generate_image.py    # Simple image generation tool
│   └── batch_generate.py    # Batch generation tools
├── resources/
│   └── models.py            # Model catalog resource
├── services/
│   ├── nexos_client.py      # Nexos.ai API client
│   ├── session_manager.py   # Background generation session manager
│   └── model_registry.py    # Model information registry
└── models/
    ├── image.py             # Image data models
    ├── generation.py        # Generation request/response models
    └── session.py           # Session state models

Rate Limits

All models are in Category 3 on Nexos.ai:

  • 100 messages per 3 hours

License

MIT License

Available Tools

6 tools
generate_imageB

Generate a single image from a text prompt.

Args: prompt: Text description of the image to generate. model: Model to use (imagen-4, imagen-4-fast, imagen-4-ultra, flux-1.1-pro, gpt-image-1). size: Image size (256x256, 512x512, 1024x1024, 1792x1024, 1024x1792). quality: Image quality (standard, hd). style: Image style (vivid, natural).

Returns: Dictionary with success status, file path, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
modelNoimagen-4
sizeNo1024x1024
qualityNostandard
styleNovivid

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format but omits critical details like rate limits, authentication requirements, error handling, or processing time. For a generative tool with potential costs or delays, this is a significant gap in transparency.

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 with clear sections (Args, Returns) and front-loaded the core purpose. It avoids redundancy, though the 'Returns' section could be omitted since an output schema exists, slightly reducing efficiency.

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

Completeness3/5

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

Given the tool's complexity (5 parameters, generative function) and no annotations, the description is moderately complete. It covers parameters and output format (aided by the output schema) but lacks behavioral context like costs, limitations, or integration details, leaving gaps for effective agent use.

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 description adds substantial value beyond the input schema, which has 0% description coverage. It explains each parameter's purpose (e.g., 'model' specifies which AI model to use) and lists valid options for 'model', 'size', 'quality', and 'style', compensating well for the schema's lack of documentation.

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 specific action ('Generate a single image') and resource ('from a text prompt'), distinguishing it from sibling tools like 'start_image_batch' (batch processing) or 'get_next_image' (retrieval). It precisely communicates the tool's function without ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'start_image_batch' for multiple images or 'list_models' for model information. It lacks context about prerequisites, constraints, or typical use cases, offering only basic operational information.

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

get_batch_statusA

Get the current status of a batch generation session.

Args: session_id: Session ID from start_image_batch.

Returns: Dictionary with session status, completed/pending counts, and errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 states the tool returns a dictionary with status, counts, and errors, which is helpful. However, it lacks details on potential side effects (e.g., if it's read-only, which is implied but not stated), error handling, rate limits, or authentication needs. For a tool with no annotations, this is insufficient to fully inform an agent.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent. No unnecessary details are included.

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 tool's moderate complexity (single parameter, no annotations, but with an output schema), the description is mostly complete. It explains the purpose, parameter semantics, and return structure. However, it lacks behavioral context (e.g., read-only nature, error cases), which is a minor gap. The output schema likely covers return values, so the description doesn't need to detail them extensively.

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 description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'session_id' is a 'Session ID from start_image_batch,' clarifying its origin and purpose beyond the schema's basic string type. Since there's only one parameter, this is adequate to cover semantics, though it doesn't detail format or constraints, keeping it from a perfect score.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get the current status of a batch generation session.' It uses a specific verb ('Get') and identifies the resource ('status of a batch generation session'), which distinguishes it from siblings like 'generate_image' or 'start_image_batch'. However, it doesn't explicitly differentiate from other status-related tools (none are listed), so it's not a perfect 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?

The description implies usage by referencing 'session_id: Session ID from start_image_batch,' suggesting it should be used after initiating a batch. However, it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., monitoring progress vs. fetching results), nor does it mention prerequisites or exclusions. This is adequate but leaves gaps in contextual guidance.

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

get_model_detailsA

Get detailed information about a specific image generation model.

Args: model_id: The model identifier (e.g., 'imagen-4', 'imagen-4-fast', 'dall-e-3').

Returns: Dictionary with complete model details including capabilities, rate limits, use cases, strengths, and weaknesses. Returns an error if the model is not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns detailed model information and an error if the model is not found, but does not mention rate limits, authentication needs, or other behavioral traits like response format or latency. It adds some value but lacks comprehensive behavioral context.

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

Conciseness5/5

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

The description is appropriately sized and front-loaded with the core purpose, followed by structured sections for Args and Returns. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

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 tool's low complexity (1 parameter) and the presence of an output schema, the description is mostly complete. It covers the purpose, parameter semantics, and return behavior, but could improve by adding more behavioral context (e.g., rate limits) since annotations are absent.

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 description adds meaning beyond the input schema by providing examples of model identifiers (e.g., 'imagen-4', 'imagen-4-fast', 'dall-e-3'), which clarifies the expected format. With 0% schema description coverage and 1 parameter, this compensates well, though it could specify constraints like valid model IDs.

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 verb 'Get' and resource 'detailed information about a specific image generation model', distinguishing it from sibling tools like 'list_models' (which lists models) and 'generate_image' (which creates images). The purpose is specific and unambiguous.

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

Usage Guidelines4/5

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

The description implies usage when detailed information about a specific model is needed, but does not explicitly state when to use this tool versus alternatives like 'list_models' for a general overview. It provides clear context but lacks explicit exclusions or named alternatives.

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

get_next_imageA

Get the next available image from a batch generation session.

This tool retrieves the next image from an ongoing batch generation. If an image is already available, it returns immediately. Otherwise, it blocks until an image becomes available or timeout.

Args: session_id: Session ID from start_image_batch. timeout: Maximum time to wait for an image (seconds, 1-300).

Returns: Dictionary with file_path, has_more flag, and pending_count.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/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 by disclosing key behavioral traits: it can return immediately if an image is available, blocks otherwise, includes a timeout mechanism, and describes the return structure. However, it does not mention potential errors, rate limits, or authentication needs, leaving some gaps.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by behavioral details and parameter explanations in a structured format. Every sentence adds value without redundancy, making it efficient and easy to parse.

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 tool's moderate complexity (blocking behavior, timeout), no annotations, and an output schema that covers return values, the description is largely complete. It explains the tool's purpose, behavior, and parameters well, but could improve by mentioning error cases or dependencies on sibling tools more explicitly.

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%, so the description must compensate, and it does by explaining both parameters: 'session_id' is linked to 'start_image_batch', and 'timeout' specifies the range and default behavior. This adds meaningful context beyond the bare schema, though it could detail format constraints for 'session_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?

The description clearly states the specific action ('retrieves the next image'), resource ('from an ongoing batch generation session'), and distinguishes it from siblings like 'get_batch_status' (which likely provides status without retrieving images) and 'start_image_batch' (which initiates rather than retrieves). The verb 'get' combined with 'next available image' precisely defines its function.

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 provides clear context for when to use it ('from an ongoing batch generation session') and references a prerequisite ('session_id from start_image_batch'), but does not explicitly state when not to use it or name alternatives like 'get_batch_status' for checking status without retrieval. This gives good guidance but lacks explicit exclusions.

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

list_modelsA

List all available image generation models with their descriptions.

Returns a comprehensive list of all available models including:

  • Model ID and display name

  • Provider (Google, OpenAI, etc.)

  • Description and intended use cases

  • Strengths and weaknesses

  • Supported image sizes

  • Rate limits and capabilities

Use this tool to discover which models are available and choose the best one for your image generation needs.

Returns: Dictionary with models list and default model information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing behavioral traits: it describes the comprehensive nature of the returned data (model ID, provider, description, use cases, strengths/weaknesses, sizes, rate limits), which goes beyond a simple list. It doesn't mention pagination or sorting options, but for a zero-parameter tool this is reasonable.

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

Conciseness5/5

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

The description is perfectly structured: first sentence states the purpose, bullet points detail what's returned, then usage guidance, and finally return format. Every sentence earns its place with zero wasted words, and it's appropriately sized for the complexity.

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 the tool's complexity (discovery-focused with rich output), no annotations, 0 parameters, and the presence of an output schema, the description is complete: it explains what the tool does, when to use it, what information it returns, and references the return format. The output schema will handle the detailed structure, so the description doesn't need to explain return values further.

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 0 parameters with 100% schema description coverage, so the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, maintaining focus on the tool's purpose and output.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('List all available image generation models') and resources ('models with their descriptions'). It distinguishes from siblings like 'get_model_details' (which presumably gets details for a specific model) by emphasizing comprehensive listing of all models.

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?

The description explicitly states when to use this tool ('Use this tool to discover which models are available and choose the best one for your image generation needs') and distinguishes it from alternatives by focusing on discovery rather than specific operations like 'generate_image' or 'get_model_details'.

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

start_image_batchA

Start generating multiple images and return the first one.

This tool starts generating multiple images in the background. It blocks until the first image is ready, then returns it along with a session ID for retrieving the remaining images.

Args: prompt: Text description of the image to generate. count: Number of images to generate (2-10). model: Model to use for generation. size: Image size. quality: Image quality (standard, hd). style: Image style (vivid, natural).

Returns: Dictionary with session_id, first_image_path, and pending_count.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
countNo
modelNoimagen-4
sizeNo1024x1024
qualityNostandard
styleNovivid

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well. It discloses key behavioral traits: the tool blocks until the first image is ready, generates remaining images in the background, returns a session ID for retrieval, and specifies the return structure. It doesn't mention rate limits, authentication needs, or error conditions, but covers the core execution behavior adequately.

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

Conciseness5/5

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

The description is perfectly structured and concise. It starts with a clear purpose statement, explains the execution behavior, lists all parameters with brief explanations, and describes the return value. Every sentence earns its place with no wasted words, and information is front-loaded appropriately.

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 tool's complexity (batch generation with background processing), no annotations, and the presence of an output schema, the description is mostly complete. It explains the execution model, parameters, and return structure. However, it doesn't mention error handling, rate limits, or how the session ID should be used with sibling tools like 'get_next_image', leaving some gaps.

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?

With 0% schema description coverage, the description compensates well by documenting all 6 parameters with clear semantics. It explains what each parameter controls (prompt=description, count=number of images with range, model=generation model, size=image size, quality=image quality with options, style=image style with options). This adds significant value beyond the bare 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's purpose: 'Start generating multiple images and return the first one.' It specifies the verb ('start generating'), resource ('multiple images'), and distinguishes it from sibling tools like 'generate_image' (single image) and 'get_batch_status' (status check). The description explicitly mentions it returns the first image immediately while generating others in the background.

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 provides clear context about when to use this tool: for generating multiple images where you need the first one immediately and can retrieve others later. It distinguishes from 'generate_image' (single image) and 'get_batch_status'/'get_next_image' (retrieval tools). However, it doesn't explicitly state when NOT to use it or compare all alternatives in detail.

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. 6 tool updates
    • First observedgenerate_image
    • First observedget_batch_status
    • First observedget_model_details
    • First observedget_next_image
    • First observedlist_models
    • First observedstart_image_batch

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. generate_image creates single images, start_image_batch handles batch generation, get_next_image retrieves batch results, get_batch_status checks batch progress, list_models enumerates available models, and get_model_details provides specific model information. The tools cover different aspects of the image generation workflow without overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout. The naming is predictable and readable: generate_image, start_image_batch, get_next_image, get_batch_status, list_models, and get_model_details. This consistency makes it easy for agents to understand the tool purposes from their names alone.

Tool Count5/5

Six tools is well-scoped for an image generation server. Each tool earns its place by covering distinct aspects of the workflow: single generation, batch generation, batch retrieval, status checking, model listing, and model details. This count provides comprehensive coverage without being overwhelming or too sparse for the domain.

Completeness5/5

The tool surface provides complete coverage for image generation workflows. It supports both single and batch generation, includes status monitoring and result retrieval for batches, and offers comprehensive model discovery and information tools. There are no obvious gaps—agents can generate images, track progress, retrieve results, and make informed model selections.

Maintenance

ActivityInactive
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

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/adamryczkowski/Imagen-MCP'

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