imagen-4-mcp
This server provides focused access to Google's Imagen 4 image generation models via RunAPI, enabling AI agents to create, monitor, and price image generation tasks.
text_to_image: Generate images from text usingimagen-4,imagen-4-fast, orimagen-4-ultra. Supports aspect ratio (1:1, 16:9, 9:16, 3:4, 4:3), output count (1–4 images), and optional polling until completion.remix_image: Transform existing images using theimagen-4-pro-remix-imagemodel, with controls for aspect ratio, output format (PNG/JPG), output resolution (1k/2k/4k), and optional polling until completion.get_task: Fetch the current status and result payload (including output URLs) for any previously created task by providing its task ID and action type.check_pricing: Look up current pricing for any Imagen 4 model and endpoint — no API key required, useful for cost estimation before task creation.
Tasks can optionally wait for completion or be submitted and polled later. Configuration is via the RUNAPI_API_KEY environment variable or ~/.config/runapi/config.json, and the server is compatible with any MCP-compatible host (Claude Code, Cursor, Windsurf, VS Code, etc.).
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-4-mcpGenerate a photo of a sunset over mountains."
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.
Why This Package?
@runapi.ai/imagen-4-mcp is a focused Model Context Protocol server for the Imagen 4 model line on RunAPI.
It gives MCP-compatible assistants direct access to 2 endpoints and 4 model variants without loading the full RunAPI catalog.
Use this per-model server when an agent should stay scoped to Imagen 4. Use @runapi.ai/mcp when one assistant should discover every RunAPI model line.
Related MCP server: @runapi.ai/gemini-omni-mcp
Install
Add it to Claude Code:
claude mcp add imagen-4 -s user -- npx -y @runapi.ai/imagen-4-mcpUse project scope when the server should be shared with a repository:
claude mcp add imagen-4 -s project -- npx -y @runapi.ai/imagen-4-mcpCodex, Cursor, Windsurf, VS Code, Roo Code, and other MCP hosts can use the same stdio command:
{
"mcpServers": {
"imagen-4": {
"command": "npx",
"args": ["-y", "@runapi.ai/imagen-4-mcp"]
}
}
}check_pricing works before sign-in. For task creation and status polling, ask your assistant to call the login tool. It opens a browser login and saves credentials to ~/.config/runapi/config.json, the same file used by runapi login.
Headless and CI hosts can still set RUNAPI_API_KEY before starting the MCP host.
Ready-made examples are in examples/ for Claude, Cursor, Windsurf, VS Code, and Roo Code.
Tools
Tool | Auth | Purpose |
| Yes | Create an Imagen 4 remix image task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Create an Imagen 4 text to image task and optionally wait for a terminal status. Returns the task id, status, and output URLs. |
| Yes | Fetch the current status and latest payload for an existing task. |
| No | Look up current pricing for a Imagen 4 model and endpoint. |
Models
Imagen 4 covers 4 model variants across 2 endpoints. Each tool accepts the models listed for it:
Tool | Models |
|
|
|
|
Model availability can change between releases. Use check_pricing or the Imagen 4 model page for the current catalog view.
Agent Prompts
Ask your assistant in natural language; it can inspect pricing, create the task, and return the task id plus output URLs.
Create a task
Run an Imagen 4 remix image task with RunAPI.The assistant can call check_pricing, then remix_image, and return the task id, status, and output URLs.
Submit without waiting
Create the task but don't wait for it to finish.The assistant calls the create tool with wait: false and returns the task id. Check on it later with get_task.
Check pricing before creating
Check current Imagen 4 pricing, then create the task if it matches my request.The assistant calls check_pricing and can link to the Imagen 4 model page for the canonical catalog entry.
Configuration
The server resolves auth in this order:
RUNAPI_API_KEYenvironment variable, useful for headless and CI hosts~/.config/runapi/config.json, created by the MCPlogintool orrunapi loginNo key, which still allows
check_pricing
The config file is normally managed by login. A pre-provisioned headless config can use:
{
"apiKey": "your_runapi_key"
}Do not commit real API keys.
Links
Resource | URL |
Imagen 4 model page | |
npm package | |
GitHub repository | |
RunAPI MCP overview | |
RunAPI docs |
License
Licensed under the Apache License, Version 2.0.
Available Tools
5 toolscheck_pricingA
Look up RunAPI pricing for the imagen-4 model line.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model slug. Defaults to the line's primary model. | |
| action | No | Endpoint name. Defaults to the endpoint that offers the model. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Look up' implies read-only, but no explicit disclosure of safety, authentication needs, or rate limits. Adequate but minimal.
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?
Single sentence of 9 words, front-loaded with verb and resource. No waste. Highly concise.
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?
No output schema; description does not hint at return format or pricing details. As a simple lookup, missing some context about output structure, but adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions and enums for both parameters. Description adds only that the tool looks up pricing for the model line, not much beyond schema. Baseline 3 applies.
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?
Clearly states verb 'Look up', resource 'pricing', and scope 'for the imagen-4 model line'. Distinguishes from siblings (get_task, remix_image, text_to_image) which perform different operations.
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?
No guidance on when to use this tool vs alternatives. No prerequisites, exclusions, or context provided about selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskA
Fetch the current status and latest result payload for a imagen-4 task.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Asynchronous endpoint the task was created on. | |
| task_id | Yes | Task id returned when the task was created. |
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. 'Fetch' clearly indicates a read-only operation, and the description states what data is retrieved (status and result payload). It does not mention potential errors or polling behavior, but for a simple fetch tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the tool's function without any redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch operation with fully documented parameters, the description sufficiently covers the tool's purpose and output (status and payload). The absence of an output schema is mitigated by the explicit mention of what is returned.
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 fully documents both parameters with descriptions (task_id, action) and an enum for action. The tool description adds no additional parameter-specific meaning beyond indicating the task context, so the baseline of 3 applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and identifies the resource as 'current status and latest result payload for an imagen-4 task,' which precisely matches the tool name and distinguishes it from sibling generation tools like remix_image and text_to_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is used to retrieve the status/result of a previously created imagen-4 task, and the parameters (task_id, action) reinforce that. It does not explicitly state 'use this after calling text_to_image or remix_image,' but the context is clear from the tool name and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
Authenticate RunAPI by opening a browser PKCE login flow and saving the API key to ~/.config/runapi/config.json.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Re-run browser login when the current credential comes from the local config file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the interactive browser flow and the file write side effect (config.json). However, it does not mention that it may overwrite existing credentials or that it could block waiting for user input, though these are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action ('Authenticate RunAPI') and provides necessary details without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple login tool with one optional parameter and no output schema, the description covers the core purpose and side effect. It lacks an explicit statement that this is a prerequisite for other tools, but that is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the only parameter 'force' has a description). The tool description adds no additional meaning about parameters beyond the schema, so the baseline of 3 applies.
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 a specific verb ('Authenticate'), target resource ('RunAPI'), method ('browser PKCE login flow'), and side effect (saving to config.json). It is distinct from sibling tools, none of which relate to authentication.
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 (to authenticate RunAPI) but does not explicitly say when to run it (e.g., before other RunAPI tools) or when to use the 'force' parameter. Since there are no alternative auth tools among siblings, 'vs alternatives' is not applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remix_imageB
Create a Imagen 4 task on RunAPI (remix image). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | ||
| timeout_ms | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| output_format | No | ||
| poll_interval_ms | No | ||
| output_resolution | No | ||
| source_image_urls | Yes |
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 does disclose that the tool creates an asynchronous task and returns a task id, status, and output URLs. However, it does not mention polling behavior, authentication, or failure scenarios, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded, with no extraneous information. Every word contributes to the core purpose and return values.
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 (10 parameters, no output schema, no annotations), the description is too sparse. It covers the basic purpose and return shape but omits crucial context like parameter meanings, async behavior, and usage scenarios, making it inadequate for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the 10 parameters. Schema description coverage is only 20%, and the description fails to compensate, leaving parameters like prompt, aspect_ratio, and output_resolution without contextual meaning beyond their raw schema definitions.
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 that the tool creates an Imagen 4 task for remixing images and indicates the return values (task id, status, output URLs). The phrase 'remix image' distinguishes it from the sibling text_to_image tool.
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?
There is no explicit guidance on when to use this tool versus alternatives like text_to_image or get_task. The description only states the function without contextual usage tips or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_imageC
Create a Imagen 4 task on RunAPI (text to image). Returns a task id, status, and output URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| wait | No | Poll until the task reaches a terminal status. | |
| model | No | RunAPI model slug for this model line. | |
| prompt | No | ||
| timeout_ms | No | ||
| aspect_ratio | No | ||
| callback_url | No | ||
| negative_prompt | No | ||
| poll_interval_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states that the tool creates a task and returns output. It does not mention asynchronous behavior, authentication needs, rate limits, costs, or any side effects, leaving significant ambiguity.
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 concise (two sentences) and front-loaded, but it omits crucial details. It could be slightly longer to include parameter hints or usage context without losing conciseness.
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 9 parameters, no output schema, and no annotations, the description is under-specified. It does not explain the task lifecycle, how 'wait' and 'poll_interval_ms' interact, or the meaning of output URLs, making it inadequate for robust tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 22%, yet the description adds no parameter explanations beyond the schema's minimal descriptions for 'wait' and 'model'. Parameters like 'prompt', 'seed', 'aspect_ratio' remain undocumented in both schema and description, failing to compensate for low coverage.
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 creates an Imagen 4 task for text-to-image generation and returns task id, status, and output URLs. The verb 'Create' and resource 'Imagen 4 task' are specific, and the parenthetical '(text to image)' distinguishes it from sibling tool 'remix_image'.
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?
No explicit guidance on when to use this tool versus alternatives like 'remix_image' or 'get_task'. The description does not mention prerequisites, conditions, or context for selection, leaving the agent to infer usage solely from the purpose.
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.
2 tool updates
v0.1.9- Changed
get_task1 field changed- changed
Input schema / properties / action / descriptionPrevious value: -"Endpoint the task was created on."New value: +"Asynchronous endpoint the task was created on."
- Changed
remix_image2 fields changed- added
Input schema / properties / source_image_urls / maxItemsAdded value: +8 - added
Input schema / properties / source_image_urls / minItemsAdded value: +1
3 tool updates
v0.1.7- Added
login - Changed
remix_image5 fields changed- added
Input schema / properties / callback_urlAdded value: +{ + "type": "string" +} - added
Input schema / properties / promptAdded value: +{ + "type": "string" +} - added
Input schema / properties / source_image_urls / itemsAdded value: +{} - added
Input schema / properties / source_image_urls / typeAdded value: +"array" - added
Input schema / requiredAdded value: +[ + "source_image_urls" +]
- Changed
text_to_image6 fields changed- changed
Input schema / properties / aspect_ratio / enumPrevious value: -[ - "1:1", - "16:9", - "9:16", - "3:4", - "4:3" -]New value: +[ + "1:1", + "16:9", + "9:16", + "3:4", + "4:3", + "auto" +] - added
Input schema / properties / callback_urlAdded value: +{ + "type": "string" +} - added
Input schema / properties / negative_promptAdded value: +{ + "type": "string" +} - removed
Input schema / properties / output_countRemoved value: -{ - "enum": [ - 1, - 2, - 3, - 4 - ], - "type": "number" -} - added
Input schema / properties / promptAdded value: +{ + "type": "string" +} - added
Input schema / properties / seedAdded value: +{ + "type": "number" +}
4 tool updates
v0.1.0- First observed
check_pricing - First observed
get_task - First observed
remix_image - First observed
text_to_image
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: authentication, two distinct image generation modes, task retrieval, and pricing lookup. No overlap or ambiguity exists between them.
Tool names are mostly snake_case with a verb-led pattern (remix_image, get_task, check_pricing). 'login' and 'text_to_image' deviate slightly from the verb_noun convention, but the overall style is consistent and readable.
Five tools is well-scoped for a focused image generation server: auth, two generation entry points, status checking, and pricing. Each tool earns its place without redundancy.
The core workflow of initiating image tasks and retrieving results is fully covered. Minor gaps like task listing or cancellation exist, but they are not essential for the stated purpose.
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
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
MCP server for Pixapi: check live credit pricing and balance, then generate images and video.
MCP server for Qwen Image 3 AI image generation
Generate AI images and videos from any compatible MCP client.
Related MCP Servers
AlicenseAqualityAmaintenanceRunAPI MCP server for the Flux 2 model line. Create tasks, poll their status, and check pricing through a single RunAPI API key.532Apache 2.0- AlicenseAqualityAmaintenanceMCP server for the Gemini Omni model line, enabling task creation (audio, character, text-to-video) and pricing checks through RunAPI.670Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for GPT-4o Image model line, enabling text-to-image task creation, status polling, and pricing checks via RunAPI.4110Apache 2.0
- AlicenseAqualityAmaintenanceRunAPI MCP server for the Hailuo model line. Create tasks, poll their status, and check pricing through a single RunAPI API key.571Apache 2.0