RunPod Image MCP Server
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., "@RunPod Image MCP ServerGenerate an image of a futuristic city skyline at sunset."
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.
RunPod Image MCP Server
An MCP server that gives Claude Code and Cursor the ability to generate and edit images using RunPod's Seedream V4 and Nano Banana Pro APIs.
Prerequisites
Related MCP server: nb-mcp
Setup
Claude Code
Quick Start (one command):
claude mcp add runpod-image-apis \
-e RUNPOD_API_KEY=your_api_key \
-- uvx runpod-mcp-serverRestart Claude Code and the tools are available.
Manual setup (clone and run locally): add to .mcp.json (project-level or ~/.claude/.mcp.json for global):
{
"mcpServers": {
"runpod-image-apis": {
"command": "uv",
"args": ["run", "--directory", "/path/to/runpod-image-mcp", "runpod-mcp-server"],
"env": {
"RUNPOD_API_KEY": "your_api_key"
}
}
}
}Replace /path/to/runpod-image-mcp with the absolute path to the cloned repo.
Cursor
Quick Start: create or edit your MCP config and add the server.
Project-only: create
.cursor/mcp.jsonin your project root.All projects: create
~/.cursor/mcp.jsonin your home directory.
If using uvx (no clone needed):
{
"mcpServers": {
"runpod-image-apis": {
"command": "uvx",
"args": ["runpod-mcp-server"],
"env": {
"RUNPOD_API_KEY": "your_api_key"
}
}
}
}If running from a cloned repo:
git clone https://github.com/jashwanth0712/runpod-image-mcp.git
cd runpod-image-mcpThen use one of the configs below.
In project .cursor/mcp.json (use ${workspaceFolder} so it works for any project that contains the clone):
{
"mcpServers": {
"runpod-image-apis": {
"command": "uv",
"args": ["run", "--directory", "${workspaceFolder}", "runpod-mcp-server"],
"env": {
"RUNPOD_API_KEY": "your_api_key"
}
}
}
}In global ~/.cursor/mcp.json, use the absolute path to the repo:
{
"mcpServers": {
"runpod-image-apis": {
"command": "uv",
"args": ["run", "--directory", "/path/to/runpod-image-mcp", "runpod-mcp-server"],
"env": {
"RUNPOD_API_KEY": "your_api_key"
}
}
}
}Replace /path/to/runpod-image-mcp with the actual path. Restart Cursor (or reload the window) so the new MCP server is picked up.
Available Tools
Tool | Description |
| Generate images from text prompts (Seedream V4 T2I). Supports sizes up to 4096x4096, negative prompts, and seed control. |
| Edit/transform existing images (Nano Banana Pro Edit). Accepts 1-10 image URLs with 1k/2k/4k resolution options. |
| Check the status of a previously submitted generation or editing job. |
| Get reference info about supported parameters, sizes, pricing, and capabilities. |
Usage Examples
Once configured, ask Claude or Cursor naturally:
Generate a photorealistic sunset over snow-capped mountains with dramatic cloudsEdit this product photo to have a white background and studio lighting: https://example.com/photo.jpgCheck the status of job abc123-def456 from SeedreamWhat sizes does the Seedream API support?Troubleshooting
Server won't start -- Verify your
RUNPOD_API_KEYis correct.Job timeouts -- Increase
max_wait_secondsor usecheck_job_statusto poll manually. Large images take longer.No image URL in response -- Check the RunPod console for job details and endpoint health.
License
MIT
Available Tools
4 toolscheck_job_statusA
Check the status of a previously submitted job.
Use this tool to monitor long-running jobs or check on jobs that timed out. Works for both image generation (Seedream) and image editing (Nano Banana) jobs.
Args: job_id: Job ID returned from generate_image or edit_image. Format: typically a UUID like "abc123-def456" endpoint_type: Which API the job was submitted to: - "seedream": For text-to-image generation jobs - "nano_banana": For image editing jobs
Returns: Current job status with result URL if completed. Possible statuses: IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED
Examples: - Check a generation job: check_job_status("abc123-def456", "seedream") - Check an editing job: check_job_status("xyz789-ghi012", "nano_banana")
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| endpoint_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions possible statuses and a result URL upon completion, adding some transparency. But it does not disclose read-only nature, idempotency, or potential side effects, which are important for a status-checking tool.
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, well-structured with an opening statement, explicit Args and Returns sections, and examples. Every sentence adds value, and the most critical info is front-loaded.
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 has an output schema (though not shown), the description still covers return values (statuses and result URL). It completely explains both parameters, usage scenarios, and provides examples, making it fully adequate for an agent to invoke 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?
Schema coverage is 0%, but the description adds meaning for both parameters: it describes the format of job_id (UUID example) and explains the endpoint_type enum values with their API associations. This compensates well beyond the schema's minimal type 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 the tool checks the status of a job, specifying both image generation (Seedream) and editing (Nano Banana). It uses a specific verb 'check' and resource 'job status', and distinguishes from siblings like generate_image and edit_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 explicitly says to use it for monitoring long-running jobs or checking on timed-out jobs. It indicates it works for both endpoints. However, it lacks explicit when-not-to-use guidance or alternative tool referrals, though the examples provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageA
Edit or transform images using Nano Banana Pro Edit API.
This tool applies AI-powered edits to existing images based on text descriptions.
You can adjust style, add/remove elements, change backgrounds, enhance quality, etc.
Args:
prompt: Description of desired edits or transformations. Be specific about
what changes you want (e.g., "change background to sunset", "add studio
lighting", "remove watermark", "enhance colors").
image_urls: List of 1-10 publicly accessible image URLs to edit.
Images must be reachable via HTTP/HTTPS. Common formats supported: JPEG, PNG, WebP.
resolution: Output resolution. Options:
- "1k": Lower resolution, faster processing ($0.14)
- "2k": Standard resolution, best value ($0.14) [default]
- "4k": High resolution for detailed work ($0.24)
aspect_ratio: Output aspect ratio (optional). If not specified, maintains original.
Options: "1:1" (square), "16:9" (landscape), "9:16" (portrait), "3:2", "2:3",
"4:3", "3:4", "4:5", "5:4", "21:9"
output_format: Output file format. Options:
- "jpeg": Smaller file size, good for photos (default)
- "png": Lossless quality, good for graphics
enable_base64_output: Return base64-encoded image data instead of URL.
Default: false (return URL)
enable_sync_mode: Enable synchronous mode for immediate processing.
Default: false (asynchronous processing)
max_wait_seconds: Maximum time to wait for job completion in seconds.
Default: 300 (5 minutes)
Returns:
Success message with edited image URL, resolution, cost, and job ID.
Format: "✓ Image edited successfully!
URL: ... Resolution: ... Cost: $... Job ID: ..."
Examples:
- "Add dramatic sunset lighting to this portrait"
- "Remove background and replace with solid white"
- "Enhance colors and increase sharpness for product photography"
- "Transform into oil painting style while keeping the subject"
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| image_urls | Yes | ||
| resolution | No | 2k | |
| aspect_ratio | No | ||
| output_format | No | jpeg | |
| enable_base64_output | No | ||
| enable_sync_mode | No | ||
| max_wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: returns URL/base64, supports sync/async modes, cost per resolution, and return format. It does not mention side effects like whether original images are preserved, but overall it is transparent about key behaviors.
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 organized with Args, Returns, and Examples sections, making it easy to parse. It is somewhat lengthy but each sentence adds value (e.g., parameter details, cost info, return format). Could be slightly trimmed without losing clarity.
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 (8 parameters, no annotations, but presence of output schema), the description is highly complete. It covers all parameters, provides usage examples, explains output format, and mentions cost. The agent has sufficient information 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 input schema has 0% description coverage (no parameter descriptions), but the tool description compensates fully by detailing each parameter: prompt with examples, image_urls constraints, resolution options with costs, aspect_ratio list, output_format, and boolean/integer flags. This adds significant meaning beyond the 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 edits or transforms images using an API, distinguishing it from siblings like generate_image (creates new images) and check_job_status (checks job status). The verb 'edit' and resource 'images' are specific.
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 examples of when to use (e.g., 'Add dramatic sunset lighting'), implying the tool is for editing existing images. However, it lacks explicit when-not-to-use guidance or direct alternatives (e.g., 'for creating new images, use generate_image'). The context is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageA
Generate images from text descriptions using Seedream V4 T2I.
This tool creates high-quality photorealistic or artistic images from text prompts.
Jobs are processed asynchronously and typically complete in 30-90 seconds.
Args:
prompt: Detailed text description of the desired image. Be specific about
style, composition, lighting, colors, and subject matter.
negative_prompt: Elements to exclude from the image (e.g., "blurry, low quality,
distorted faces"). Optional but recommended for better results.
size: Image dimensions in format "width*height" (e.g., "2048*2048").
Valid range: 1024-4096 pixels for both width and height.
Default: "2048*2048"
seed: Random seed for reproducibility. Use -1 for random generation (default),
or provide a specific number to reproduce results.
enable_safety_checker: Enable content safety filtering. Default: true.
Set to false only if you need to bypass content filtering.
max_wait_seconds: Maximum time to wait for job completion in seconds.
Default: 300 (5 minutes). Increase for very large images.
Returns:
Success message with image URL, generation details, and job ID for status tracking.
Format: "✓ Image generated successfully!
URL: ... Size: ... Seed: ... Job ID: ..."
Examples:
- "A photorealistic sunset over snow-capped mountains with dramatic clouds"
- "An oil painting of a medieval castle on a cliff, fantasy art style"
- "Product photo of a sleek smartphone on a white background, studio lighting"
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| negative_prompt | No | ||
| size | No | 2048*2048 | |
| seed | No | ||
| enable_safety_checker | No | ||
| max_wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: async processing, safety checker feature, seed reproducibility, and return format. It could mention failure modes or rate limits, but current coverage is good.
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 a clear intro, organized Args section, Returns format, and examples. Each sentence adds value, no redundancy.
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?
Despite no annotations, the description covers purpose, all parameters with semantics, behavioral traits (async, safety), return format, and examples. It provides sufficient context for an 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?
Schema description coverage is 0%, and the description provides detailed semantics for all 6 parameters, including valid ranges, defaults, and usage tips (e.g., negative_prompt recommended, seed for reproducibility). This adds high 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 creates images from text descriptions using Seedream V4 T2I. It specifies high-quality photorealistic or artistic output, and distinguishes from siblings by focusing on generation vs. status checking or editing.
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 context on async processing and typical completion time, but does not explicitly state when to avoid using this tool or compare directly with sibling tools like edit_image. Examples help suggest appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_infoA
Get information about supported parameters and capabilities.
This tool provides reference information about what each API supports, including valid parameter values, pricing, and best practices.
Args: api: Which API to get information about: - "seedream": Seedream V4 T2I text-to-image generation - "nano_banana": Nano Banana Pro Edit image editing - "all": Information about both APIs (default)
Returns: Formatted reference information including supported parameters, constraints, pricing, and usage recommendations.
Examples: - Get all API info: get_api_info() - Get only Seedream info: get_api_info("seedream") - Get only Nano Banana info: get_api_info("nano_banana")
| Name | Required | Description | Default |
|---|---|---|---|
| api | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses that the tool returns formatted reference information and that the api parameter defaults to 'all.' However, it does not explicitly state that the tool has no side effects, does not modify state, or discuss rate limits or authentication. For a read-only reference tool, this is minimally adequate but could be improved.
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 Args, Returns, and Examples sections. It front-loads the core purpose in the first sentence. Every part is informative and earns its place, with no extraneous content.
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 simplicity (1 optional parameter, no output schema missing), the description covers all needed aspects: parameter options and defaults, return content description, and usage examples. It is complete for an agent to understand and invoke 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?
Although the input schema has 0% description coverage, the description fully explains the api parameter: its default value and each enum option (seedream, nano_banana, all) with brief explanations. This compensates completely for the schema gap, adding significant meaning beyond the schema structure.
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 information about supported parameters and capabilities.' It specifies the resource (API info) and action (get). The tool is distinct from siblings like generate_image or edit_image, which focus on image manipulation, making its role 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 for reference and exploration, e.g., 'provides reference information about what each API supports.' It does not explicitly state when not to use or directly compare with siblings, but the context and examples (e.g., 'Get all API info') make the use case clear. A slight improvement would be to mention it is read-only and safe to call at any time.
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.
4 tool updates
v0.2.1- First observed
check_job_status - First observed
edit_image - First observed
generate_image - First observed
get_api_info
TDQS
Each tool has a clearly distinct purpose: generating images, editing images, checking job status, and getting API info. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with underscores (check_job_status, edit_image, generate_image, get_api_info), making them predictable and easy to understand.
With 4 tools, the server is well-scoped for its purpose—image generation and editing—without being too sparse or overwhelming.
The tool set covers the core workflows (generate, edit, check status, get info) but lacks features like job cancellation or listing, which are minor gaps.
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
MCP server for NanoBanana AI image generation and editing
MCP server for Flux AI image generation
Generate AI images, video, music, and sound effects, and upscale them, from any MCP client.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables Claude Code to generate context-aware images using local GPU-powered diffusion models, either automatically during coding or on-demand via slash commands.211MIT
- FlicenseNot gradedqualityCmaintenanceA remote MCP server that gives Claude the ability to generate and edit images with Google's nano banana (Gemini 2.5 Flash Image) model.-
- AlicenseNot gradedqualityCmaintenanceMCP server that enables Claude Code to generate images using Google's Gemini image generation models.MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that enables Claude to generate images using the OpenAI API.10MIT
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/jashwanth0712/runpod-image-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server