Skip to main content
Glama

imagen-mcp

지능형 다중 공급자 이미지 생성을 위한 MCP(Model Context Protocol) 서버입니다.

CI Python 3.10+ License: MIT

빠른 시작

1. API 키 받기 (최소 하나 이상):

공급자

키 발급처

환경 변수

OpenAI

platform.openai.com/api-keys

OPENAI_API_KEY

Google Gemini

aistudio.google.com/apikey

GEMINI_API_KEY

두 가지 키를 모두 보유하면 최상의 결과를 얻을 수 있습니다. 서버가 각 프롬프트에 적합한 공급자를 자동으로 선택합니다. 키가 하나만 있는 경우, 다른 공급자에 더 적합한 프롬프트도 작동은 하지만 대체 알림이 표시됩니다.

2. MCP 클라이언트에 추가 (하나 선택):

claude mcp add -s user imagen \
  -e OPENAI_API_KEY=sk-... \
  -e GEMINI_API_KEY=AI... \
  -- npx -y imagen-mcp

등록 확인:

claude mcp list

참조: Claude Code MCP 문서

설정 파일 편집:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "imagen": {
      "command": "npx",
      "args": ["-y", "imagen-mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "GEMINI_API_KEY": "AI..."
      }
    }
  }
}

편집 후 Claude Desktop을 재시작하세요 (Cmd+Q 후 다시 열기).

참조: Claude Desktop MCP 문서

옵션 A — CLI 명령:

codex mcp add imagen -- npx -y imagen-mcp

옵션 B — ~/.codex/config.toml 직접 편집:

[mcp_servers.imagen]
command = "npx"
args = ["-y", "imagen-mcp"]

[mcp_servers.imagen.env]
OPENAI_API_KEY = "sk-..."
GEMINI_API_KEY = "AI..."

참조: Codex MCP 문서

~/.gemini/settings.json 편집:

{
  "mcpServers": {
    "imagen": {
      "command": "npx",
      "args": ["-y", "imagen-mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "GEMINI_API_KEY": "AI..."
      }
    }
  }
}

참조: Gemini CLI MCP 문서

설정

명령

npx

인수

["-y", "imagen-mcp"]

환경

OPENAI_API_KEY 및/또는 GEMINI_API_KEY

3. 이미지 생성 — AI 어시스턴트에게 요청하세요:

"스튜디오 조명을 사용한 전문적인 프로필 사진을 생성해줘"

이것으로 끝입니다. 서버가 자동으로 최적의 공급자를 선택합니다.


Related MCP server: ImageGen MCP Server

기능

  • 자동 공급자 선택 — 프롬프트를 분석하여 최적의 공급자 선택

  • 다중 공급자 지원 — OpenAI GPT-Image-1 및 Google Gemini

  • 참조 이미지 — 캐릭터/스타일 일관성을 위해 최대 14개의 이미지 지원 (Gemini)

  • 실시간 데이터 — 최신 정보를 위한 Google 검색 접지 (Gemini)

  • 대화형 개선 — 컨텍스트를 사용하여 반복적으로 이미지 개선

  • 고해상도 — 최대 4K 출력 (Gemini)

  • 대체 알림 — 구성하지 않은 공급자가 더 적합한 프롬프트일 경우 명확한 경고 제공

자동 선택 작동 방식

서버가 프롬프트를 분석하여 최적의 공급자로 라우팅합니다:

"Create a menu card for an Italian restaurant"  -> OpenAI (text rendering)
"Professional headshot with studio lighting"    -> Gemini (photorealism)
"Infographic about climate change"              -> OpenAI (diagram + text)
"Product shot of perfume on marble"             -> Gemini (product photography)

최적의 공급자가 구성되지 않은 경우? 서버는 사용 가능한 공급자로 대체하고 다음과 같이 알립니다:

공급자 대체: 이 프롬프트에는 Gemini가 더 적합하지만(사실적인 콘텐츠), 구성되어 있지 않습니다. 대신 OpenAI를 사용합니다. 더 나은 결과를 위해 GEMINI_API_KEY를 설정하세요.

provider 매개변수를 사용하여 언제든지 자동 선택을 재정의할 수 있습니다:

generate_image(prompt="...", provider="openai")
generate_image(prompt="...", provider="gemini")

공급자 비교

기능

OpenAI GPT-Image-1

Gemini Nano Banana Pro

텍스트 렌더링

우수

좋음

사실적 묘사

좋음

우수

속도

~60초

~15초

최대 해상도

1536x1024

4K

크기

3가지 옵션

1K, 2K, 4K

가로세로 비율

3

10

참조 이미지

없음

예 (최대 14개)

실시간 데이터

없음

예 (Google 검색)

OpenAI 사용 권장: 텍스트가 많은 이미지, 메뉴, 인포그래픽, 만화, 다이어그램

Gemini 사용 권장: 인물 사진, 제품 사진, 4K 출력, 참조 이미지

MCP 도구

도구

설명

generate_image

자동 공급자 선택을 포함한 기본 도구

conversational_image

대화 및 기록을 통한 다중 턴 개선

list_conversations

활성 대화 및 기록 나열

list_providers

사용 가능한 공급자 및 기능 표시

list_gemini_models

사용 가능한 Gemini 이미지 모델 쿼리

출력 위치

이미지는 기본적으로 ~/Downloads/images/{provider}/ (openai/ 또는 gemini/ 하위 디렉토리)에 저장됩니다.

사용자 지정 방법:

# Save to a specific directory (auto-generated filename)
generate_image(prompt="...", output_path="~/Desktop/logos/")

# Save to a specific file
generate_image(prompt="...", output_path="~/Desktop/logos/my-logo.png")

OUTPUT_DIR을 설정하여 기본 디렉토리를 전역적으로 변경하세요. 로그는 {OUTPUT_DIR}/logs/에 저장됩니다.

Gemini 전용 기능

# High resolution
generate_image(prompt="...", size="4K")

# Specific model
generate_image(prompt="...", gemini_model="gemini-2.0-flash-exp-image-generation")

# Reference images for style/character consistency (base64 encoded)
generate_image(prompt="...", reference_images=["base64..."])

# Real-time data via Google Search
generate_image(prompt="Current weather in NYC", enable_google_search=True)

사용 가능한 모델

OpenAI

모델 ID

설명

gpt-image-1

전용 이미지 생성 모델 (기본값)

gpt-5-image

이미지 생성 기능이 포함된 GPT-5

gpt-5.1

최신 추론 모델 (대화 오케스트레이션)

Gemini

모델 ID

설명

gemini-3-pro-image-preview

Nano Banana Pro - 최고 품질 (기본값)

gemini-2.0-flash-exp-image-generation

빠른 실험용 모델

imagen-3.0-generate-002

대체 이미지 모델

아키텍처

flowchart TB
    subgraph Clients["MCP Clients"]
        CD[Claude Desktop]
        CC[Claude Code CLI]
        GC[Gemini CLI]
        CX[Codex CLI]
    end

    subgraph Server["imagen-mcp Server"]
        MCP[MCP Protocol Layer]

        subgraph Tools["MCP Tools"]
            GI[generate_image]
            CI[conversational_image]
            LP[list_providers]
            LM[list_gemini_models]
        end

        subgraph Core["Core Components"]
            PS[Provider Selector]
            PR[Provider Registry]
        end

        subgraph Providers["Image Providers"]
            OAI[OpenAI Provider<br/>GPT-Image-1]
            GEM[Gemini Provider<br/>Nano Banana Pro]
        end
    end

    subgraph APIs["External APIs"]
        OAPI[OpenAI API]
        GAPI[Google Gemini API]
    end

    subgraph Storage["Local Storage"]
        DL[~/Downloads/images/]
    end

    CD & CC & GC & CX --> MCP
    MCP --> Tools
    GI & CI --> PS
    PS --> PR
    PR --> OAI & GEM
    OAI --> OAPI
    GEM --> GAPI
    OAI & GEM --> DL

환경 변수

변수

설명

필수 여부

OPENAI_API_KEY

OpenAI API 키

최소 하나 이상의 API 키

GEMINI_API_KEY

Google Gemini API 키

가 필요합니다

GOOGLE_API_KEY

GEMINI_API_KEY의 별칭

OUTPUT_DIR

저장된 이미지의 기본 디렉토리

아니요 (기본값: ~/Downloads/images/)

DEFAULT_PROVIDER

기본 공급자 강제 설정

아니요 (기본값: auto)

DEFAULT_OPENAI_SIZE

기본 OpenAI 이미지 크기

아니요 (기본값: 1024x1024)

DEFAULT_GEMINI_SIZE

기본 Gemini 이미지 크기

아니요 (기본값: 2K)

ENABLE_GOOGLE_SEARCH

Google 검색 접지 활성화

아니요 (기본값: false)

IMAGEN_MCP_LOG_DIR

로그 디렉토리 재정의

아니요

IMAGEN_MCP_LOG_LEVEL

로그 레벨 (DEBUG, INFO 등)

아니요

IMAGEN_MCP_LOG_PROMPTS

전체 프롬프트 기록

아니요 (기본값: false)

문제 해결

"No providers available" 최소 하나의 API 키가 필요합니다. MCP 클라이언트 설정에서 OPENAI_API_KEY 또는 GEMINI_API_KEY를 설정하세요 (위의 빠른 시작 참조).

이미지는 생성되지만 인물/제품 사진의 품질이 좋지 않음 GEMINI_API_KEY가 누락되었을 가능성이 큽니다. 서버가 OpenAI로 대체하고 경고를 표시했을 것입니다. 더 나은 사실적 결과를 위해 Gemini 키를 추가하세요.

이미지는 생성되지만 텍스트가 좋지 않음 OPENAI_API_KEY가 누락되었을 가능성이 큽니다. 더 나은 텍스트 렌더링을 위해 OpenAI 키를 추가하세요.

"npx: command not found" Node.js를 설치하세요 (npx 포함): nodejs.org

이미지는 어디에 저장되나요? 기본값: ~/Downloads/images/openai/ 또는 ~/Downloads/images/gemini/. 정확한 경로는 도구 출력을 확인하세요. OUTPUT_DIR을 설정하여 변경할 수 있습니다.

활성화된 공급자를 확인하려면 어떻게 하나요? list_providers 도구를 사용하거나 다음을 실행하세요:

python3 -c "from src.providers import get_provider_registry; print(get_provider_registry().list_providers())"

개발

# Clone and install
git clone https://github.com/michaeljabbour/imagen-mcp.git
cd imagen-mcp
pip install -r requirements.txt

# Run tests
pip install pytest pytest-asyncio
pytest tests/ -v

# Verify server loads
python3 -c "from src.server import mcp; print('Server loads')"

# Check Claude Desktop logs (macOS)
tail -f ~/Library/Logs/Claude/mcp-server-imagen.log

프로젝트 구조

imagen-mcp/
├── src/
│   ├── server.py              # MCP entry point
│   ├── config/
│   │   ├── constants.py       # Provider constants
│   │   └── settings.py        # Environment configuration
│   ├── providers/
│   │   ├── base.py            # Abstract provider interface
│   │   ├── openai_provider.py # OpenAI implementation
│   │   ├── gemini_provider.py # Gemini implementation
│   │   ├── selector.py        # Auto-selection logic
│   │   └── registry.py        # Provider factory
│   └── models/
│       └── input_models.py    # Pydantic input models
├── tests/
│   ├── test_selector.py       # Provider selection tests
│   ├── test_providers.py      # Provider unit tests
│   └── test_server.py         # Server integration tests
├── .github/
│   └── workflows/
│       └── ci.yml             # GitHub Actions CI
├── run.sh                     # Wrapper script for MCP clients
├── requirements.txt
├── CLAUDE.md
└── README.md

요구 사항

mcp>=1.16.0
fastmcp>=2.12.5
pydantic>=2.12.3
httpx>=0.24.0
google-genai>=1.52.0
pillow>=10.4.0

라이선스

MIT

출처

Available Tools

8 tools
conversational_imageA

Generate images conversationally with iterative refinement.

USE THIS TOOL when:

  • User gives a vague/incomplete prompt that needs refinement

  • User wants iterative refinement across multiple messages

  • User explicitly asks for guidance or suggestions

Dialogue Modes:

  • "quick": 1-2 questions, fast path

  • "guided": 3-5 questions, balanced (DEFAULT)

  • "explorer": Deep exploration with 6+ questions

  • "skip": Direct generation, no dialogue

Provider Selection: Same auto-selection logic as generate_image. Provider is locked for the duration of a conversation (cannot switch mid-conversation).

Usage Pattern:

  1. Initial: "A cozy coffee shop" → System asks refinement questions

  2. User answers questions

  3. Image generated with refined prompt

  4. Refine: "Add more plants" (with same conversation_id)

  5. Continue refining as needed

Args: params: Conversational image parameters including prompt and dialogue options.

Returns: Either dialogue questions or generated image with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false (mutation) and destructiveHint=false. The description adds behavioral traits beyond annotations: provider locking across conversations (cannot switch mid-conversation), dialogue modes impact on interaction depth, and the usage pattern for continuation via conversation_id. These details are useful but not exhaustive (e.g., no mention of output_path creation).

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 (purpose, when-to-use, dialogue modes, provider selection, usage pattern, returns). It is concise and front-loaded with essential information. The usage pattern could be slightly shorter, but overall it efficiently conveys the tool's workflow.

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 (conversational image generation with many parameters and multi-turn refinement), the description covers core concepts, when to use, dialogue modes, provider locking, and continuation pattern. The output schema exists, so return details are not needed. It lacks discussion of some advanced parameters (e.g., reference_images, input_image_file_id), but schema handles those. It is sufficient for an AI agent to select and invoke.

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

Parameters3/5

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

Schema description coverage is 0% (main description does not detail individual parameters), but the schema itself has thorough descriptions for all parameters. The description adds some context for 'dialogue_mode' (enum values) but largely repeats schema info. Baseline is 3 due to high schema coverage, and no significant extra meaning is added.

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: 'Generate images conversationally with iterative refinement.' It specifies the resource (images) and the verb (generate with conversation), and distinguishes from sibling tools like 'generate_image' by emphasizing conversation and iterative refinement. The dialogue modes further clarify the scope.

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 explicitly lists 'USE THIS TOOL when:' conditions, such as vague prompts, iterative refinement, or user asking for guidance. It does not directly state when not to use it (e.g., when prompt is clear and no refinement needed), but the context effectively implies when alternatives like 'generate_image' are better. It also covers dialogue modes and provider selection, offering solid guidance.

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

edit_imageA

Edit an existing image using OpenAI gpt-image-2's /images/edits endpoint.

This is the right tool for:

  • Image-to-image refinement (OpenAI's answer to reference images)

  • Inpainting with a mask (paint over regions while preserving the rest)

  • Sequential/cumulative edits that preserve unchanged pixels

  • Brand-accurate modifications to existing images

Key features of gpt-image-2 editing:

  • input_fidelity='high' (default) keeps unchanged pixels constant — critical for multi-step refinement where each edit should build on the last without drift.

  • Full control over quality, background, output_format, and compression.

  • Supports optional PNG mask (transparent pixels are the edit region).

Typical workflow:

  1. Generate or obtain a base image (path on disk)

  2. Call edit_image with prompt='change the sky to sunset'

  3. Take the output path, call edit_image again with next instruction

  4. Repeat — each step preserves pixels outside the described change

Args: params: Edit parameters including prompt, image_path, and options.

Returns: Formatted response with edited image path and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

Discloses key behavioral traits: uses /images/edits endpoint, default high input fidelity to preserve pixels, mask support, sequential workflow. Annotations (readOnlyHint=false, destructiveHint=false) are consistent; description adds context about mutable but non-destructive behavior.

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?

Well-structured with bullet points and sections (key features, typical workflow). No fluff; each sentence adds valuable information. Appropriate length given tool 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?

Covers use cases, workflow, and key features comprehensively. With an output schema present, return value explanation is unnecessary. The description is self-contained for correct invocation.

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

Parameters5/5

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

Although the tool has a single 'params' object with 0% description coverage at top level, the nested schema thoroughly documents all parameters. The description adds value by explaining key parameters like input_fidelity and mask_path in context, aiding interpretation beyond schema alone.

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 it edits existing images using OpenAI's gpt-image-2 endpoint. It lists specific use cases (image-to-image refinement, inpainting, sequential edits) that distinguish it from sibling tools like generate_image or conversational_image, which focus on generation or conversation.

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?

Explicit guidance under 'This is the right tool for:' with bullet points covering refinement, inpainting, sequential edits, and brand modifications. It implies not for from-scratch generation (handled by generate_image). The workflow description further clarifies when to use.

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

estimate_costA
Read-onlyIdempotent

Estimate the cost of generating an image without generating it.

Runs the same provider auto-selection as generate_image (unless you pin a provider) and looks up an approximate price from a local pricing table. Useful for comparing providers/qualities before committing.

The figure is a ballpark — real cost depends on live provider pricing and, for OpenAI, actual image output tokens.

Args: params: Prompt plus optional provider/quality/size/n.

Returns: A formatted cost estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description adds behavioral details: it runs the same provider auto-selection as generate_image, uses a local pricing table, and notes the estimate is a ballpark. No contradictions.

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: starts with purpose, then explanation, caveats, and finally Args/Returns. It is slightly verbose but front-loaded with key information. A bit more conciseness could improve it.

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 simplicity of the tool (cost estimation with no side effects), the description covers all essential aspects: what it does, how it works, caveats, and return format (via output schema). With annotations and output schema present, no gaps remain.

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

Parameters3/5

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

The description's Args section briefly lists parameters but adds little new meaning beyond the schema's own descriptions. The schema already provides detailed descriptions for each parameter. Schema coverage is 0% by context definition, but the schema itself is informative, so the description does not compensate for missing schema details.

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: estimating the cost of generating an image without actually generating it. It uses specific verb 'estimate' and resource 'cost', and distinguishes it from siblings like generate_image by explicitly noting it does not generate.

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 explains when to use: before generating, for comparing providers/qualities. It implies not to use for actual generation, but does not explicitly state when not to use or list alternatives beyond the tool itself. However, the sibling list provides context.

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

generate_imageB

Generate an image using the best available provider.

Automatic Provider Selection: The server analyzes your prompt and automatically selects the best provider:

  • OpenAI GPT-Image-1 is auto-selected for:

    • Text-heavy images (menus, posters, infographics)

    • Comics with dialogue or speech bubbles

    • Technical diagrams with labels

    • Marketing materials requiring precise text

  • Gemini Nano Banana Pro is auto-selected for:

    • Photorealistic portraits and headshots

    • Product photography

    • High resolution (4K) output

    • Images using reference images for consistency

    • Real-time data visualization (weather, stocks)

Examples:

  • "Create a menu card for an Italian restaurant" → OpenAI (text rendering)

  • "Professional headshot with studio lighting" → Gemini (photorealism)

  • "Infographic explaining photosynthesis" → OpenAI (diagram + text)

  • "Product shot of perfume floating on water" → Gemini (product photography)

Override Selection: Set provider to 'openai' or 'gemini' to override auto-selection.

Args: params: Image generation parameters including prompt and optional settings.

Returns: Formatted response with image path and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations exist but are minimal (readOnlyHint=false, etc.). Description adds value by explaining auto-selection behavior and provider strengths. However, it does not disclose important behaviors like file saving (implied by output_path), potential latency, or cost implications. No contradiction with annotations.

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 headings, lists, and examples. It is front-loaded with the main purpose. However, it is somewhat lengthy with provider comparisons that could be condensed. Overall, sentences earn their place.

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 complexity (multiple providers, many parameters, auto-selection), the description explains the selection logic and provides examples. It mentions override and return format. An output schema exists to handle return details. It is fairly complete for an agent to understand the tool's behavior.

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

Parameters2/5

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

Schema coverage for the top-level param 'params' is 0% (no description), and the description only repeats 'Image generation parameters including prompt and optional settings' – adding no new meaning. While nested properties have descriptions in the schema, the description fails to compensate for the top-level lack of detail.

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 generates an image using the best available provider, with specific verb 'Generate' and resource 'image'. It distinguishes from siblings by focusing on single image generation with auto-selection, while siblings like 'edit_image' and 'conversational_image' imply different operations.

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 detailed guidance on when to use each provider within the tool, but offers no guidance on when to choose this tool over sibling tools like 'edit_image' or 'generate_image_batch'. An agent would need to infer from the tool name and purpose.

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

generate_image_batchA

Generate many images concurrently from a list of prompts.

Each item runs through the same auto provider selection as generate_image, bounded by max_concurrency. Per-item failures are isolated — one bad prompt does not fail the whole batch. Returns every result (saved paths plus any per-item errors).

Use this instead of calling generate_image in a loop: 8 prompts that would take ~4 minutes serially complete in roughly one generation's time (subject to max_concurrency and provider rate limits).

Args: params: The batch (items + concurrency + optional default provider).

Returns: A formatted summary of all results.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate non-readonly, non-destructive, non-idempotent, open-world. Description adds concurrency bounds, failure isolation, rate limit dependency, and result format, providing substantial behavioral context beyond annotations.

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?

Well-structured with summary, args, and returns. Every sentence adds value; no redundancy.

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?

Covers inputs, behavior, concurrency, error handling, and return format. With output schema present, it provides complete guidance for a batch image generation tool.

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

Parameters4/5

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

Top-level 'params' description is brief, but the nested schema for `BatchGenerationInput` has detailed field descriptions. Tool description adds context about batch structure and default provider, complementing the schema.

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

Purpose5/5

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

Clearly states the tool generates many images concurrently from a list of prompts. Distinguishes from siblings like `generate_image` by mentioning batch processing and concurrency.

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?

Explicitly advises using this tool instead of calling `generate_image` in a loop, with a concrete performance example. Also describes per-item failure isolation.

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

list_conversationsA
Read-onlyIdempotent

List saved image generation conversations.

Returns recent conversations that can be continued for refinement. Each conversation tracks the provider used and generation history.

Args: params: Options for filtering and formatting the list.

Returns: List of conversations with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate read and idempotent. The description adds that results are 'recent' and can be 'continued for refinement', which provides some behavioral context beyond the annotations. However, it doesn't detail behavior like empty results, ordering, or response structure.

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 concise: four sentences total, with the core purpose in the first sentence. No extraneous information. All sentences add value.

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

Completeness4/5

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

For a simple list tool, the description covers purpose and key traits (recent, continuable, tracks provider/history). It lacks details on pagination behavior and ordering, and the output format is only implied via the parameter. Still, it is mostly sufficient given the annotations and schema.

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

Parameters3/5

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

The description only says 'params: Options for filtering and formatting the list.' This is vague and does not add meaning beyond the input schema, which already describes each parameter. With 0% schema description coverage, the description fails to compensate, but the schema itself is sufficient.

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 lists saved image generation conversations, using specific verb 'list' and resource 'conversations'. It distinguishes from siblings as no other list tool exists. The purpose is unambiguous.

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 the tool is used to retrieve recent conversations for refinement, but provides no explicit guidance on when to use it versus other tools or when not to use it. No alternatives are mentioned.

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

list_gemini_modelsA
Read-onlyIdempotent

List available Gemini models that support image generation.

Queries the Gemini API to show which models are available for image generation with your API key. Useful for troubleshooting or choosing alternative models.

Returns: List of available Gemini image models with their capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that it queries the Gemini API and returns capabilities, but does not provide additional behavioral details beyond the annotations.

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 concise and well-structured, with a clear purpose, action, return description, and use case. Every sentence adds value.

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 zero parameters and presence of an output schema, the description fully covers the tool's purpose and typical use case without needing further elaboration.

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?

There are no parameters, so the baseline is 4. The description does not need to add parameter semantics, and it does not attempt to.

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 it lists available Gemini models that support image generation. This verb-noun pair is specific and distinguishes it from siblings like 'generate_image' or 'list_providers'.

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 mentions it is useful for troubleshooting or choosing alternative models, providing clear context. It does not explicitly state when not to use it, but the context of sibling tools offers implied guidance.

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

list_providersA
Read-onlyIdempotent

List available image generation providers and their capabilities.

Returns a comparison of available providers including:

  • Which providers have API keys configured

  • Best use cases for each provider

  • Feature comparison (text rendering, resolution, etc.)

Use this to understand which provider to choose for your task.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds value by detailing the return content: API key configuration, best use cases, and feature comparison. No contradictions.

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 concise, with a clear lead sentence and bullet points for output details. Every sentence adds value, and there is no redundancy.

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?

The description adequately explains the tool's purpose and what the output includes, even without needing to detail parameters. Given the presence of an output schema, the description is complete.

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?

There are no parameters, and schema coverage is 100%. With zero parameters, the baseline is 4, and the description does not need to add parameter details.

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 explicitly states 'List available image generation providers and their capabilities', clearly identifying the verb (list) and resource (providers with capabilities). This distinguishes it from sibling tools like generate_image or edit_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.

Usage Guidelines4/5

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

The description advises 'Use this to understand which provider to choose for your task', providing clear context for when to use this tool. While it doesn't list explicit alternatives or when-not-to-use, the context of sibling tools makes the usage well implied.

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

Tool Schema Changelog

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

  1. 8 tool updatesv0.3.0
    • First observedconversational_image
    • First observededit_image
    • First observedestimate_cost
    • First observedgenerate_image
    • First observedgenerate_image_batch
    • First observedlist_conversations
    • First observedlist_gemini_models
    • First observedlist_providers

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: direct generation, conversational refinement, editing, batch generation, cost estimation, and listing of conversations/models/providers. Overlaps are minimal and resolved by detailed descriptions.

Naming Consistency4/5

Most tools follow verb_noun snake_case (e.g., edit_image, generate_image), but 'conversational_image' uses an adjective instead of a verb, creating a slight inconsistency.

Tool Count5/5

With 8 tools covering generation, editing, batch processing, cost estimation, and listing functions, the count is well-scoped for an image generation server without being too many or too few.

Completeness4/5

The tool surface covers core generation, editing, batch, and estimation needs. Minor gaps exist (e.g., no deletion tool or detailed image metadata viewer), but the essential workflows are supported.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers