Imagen MCP Server
Enables image generation using Google's Imagen models (Imagen 4, Imagen 4 Fast, and Imagen 4 Ultra) for creating photorealistic images from text prompts with excellent prompt following capabilities.
Provides access to OpenAI's image generation models (DALL-E 3 and GPT Image 1) for creating high-quality artistic images with strong prompt understanding through the Nexos.ai platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Imagen MCP Servergenerate a photorealistic sunset over mountains with imagen-4-ultra"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Flagship model with excellent prompt following and photorealistic output | |
| Faster variant optimized for speed | |
| Highest quality for premium image generation | |
| OpenAI | High-quality model with excellent artistic capabilities |
| OpenAI | Strong prompt understanding and versatile output |
Installation
Option 1: Install with pipx (Recommended for CLI usage)
# 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-mcpOption 2: Install with Poetry (Recommended for development)
# 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.serverOption 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-mcpEnvironment Variables
Set up your Nexos.ai API key:
export NEXOS_API_KEY=your-api-key-hereOr create a .env file:
NEXOS_API_KEY=your-api-key-hereUsage
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 8000CLI Options
When using the fastmcp run command, you have additional options:
Option | Description |
| Transport protocol: |
| Host to bind to (default: 127.0.0.1) |
| Port for HTTP/SSE transport (default: 8000) |
| Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL |
| 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 |
| The command to run ( |
| Command arguments to start the MCP server |
| Working directory - set to your Imagen-MCP installation path |
| Environment variables, including the required |
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 detailstotal_count: Number of available modelsdefault_model: The default model IDusage_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 generatemodel(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 successfullyfile_path: Absolute path to the saved image filefile_size_bytes: Size of the saved image file in bytesmodel_used: The model that was used for generationrevised_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 generatecount(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 successfullysession_id: ID for retrieving more imagesfirst_image_path: Path to the first generated image filefirst_image_size_bytes: Size of the first image file in bytespending_count: Number of images still being generatederror: 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_batchtimeout(optional): Maximum wait time in seconds (default: 60)
Returns:
success: Whether an image was retrievedfile_path: Path to the saved image file (or null if no image available)file_size_bytes: Size of the saved image file in byteshas_more: Whether more images are available or pendingpending_count: Number of images still being generatederror: 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:
breakget_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 imagespending_count: Number of pending imagestotal_count: Total number of requested imageserrors: 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.pyProject 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 modelsRate Limits
All models are in Category 3 on Nexos.ai:
100 messages per 3 hours
License
MIT License
Available Tools
6 toolsgenerate_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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| model | No | imagen-4 | |
| size | No | 1024x1024 | |
| quality | No | standard | |
| style | No | vivid |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| count | No | ||
| model | No | imagen-4 | |
| size | No | 1024x1024 | |
| quality | No | standard | |
| style | No | vivid |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
- First observed
generate_image - First observed
get_batch_status - First observed
get_model_details - First observed
get_next_image - First observed
list_models - First observed
start_image_batch
TDQS
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.
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.
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.
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
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
Create images and videos from prompts, with options for image mixing, reference images, and start/…
AI image generation across 5 quality tiers (SDXL to Gemini 3 Pro), 50 free credits on signup.
LLM chat, text tools, image generation, editing and batch image jobs
Generate and edit images and videos with imageat.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to generate high-quality images using Google's Gemini and Imagen models with support for multiple aspect ratios, dynamic model selection, and direct file saving capabilities.MIT
- AlicenseNot gradedqualityDmaintenanceEnables generating, editing, and manipulating images using Google Gemini Flash 2.5 through natural language prompts. Supports text-to-image generation, image editing, multi-image composition, and batch processing with direct file management.1044MIT
- FlicenseBqualityDmaintenanceEnables high-quality image generation using Google's Imagen 3.0 model via the Gemini API, with support for multiple images per request and automatic file management and HTML preview generation.2-
- AlicenseAqualityAmaintenanceEnables AI image generation and editing using Google's Gemini Multimodal Image APIs.61MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adamryczkowski/Imagen-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server