PixelForge MCP
Provides AI-powered image generation, editing, analysis, and transformation using Google's Gemini and Imagen 4 models.
Enables advanced features like image upscaling (x2/x4) and advanced editing modes (inpainting, outpainting, background swap, style transfer) via Vertex AI.
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., "@PixelForge MCPgenerate an image of a serene lake at sunset with mountains in the background"
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.
PixelForge MCP
An MCP server for AI-powered image generation, editing, analysis, and transformation using Google's Gemini and Imagen 4 models.
Features
21 MCP tools for image generation, editing, analysis, transformation, and more
6 models including Gemini image models and Imagen 4 family
Quality presets (fast/balanced/quality) for simplified model selection
Parallel multi-image generation via asyncio.gather
Image transforms — crop, resize, rotate, flip, blur, sharpen, grayscale, watermark
Prompt template library — 24 curated templates across 10 categories
Generation history — full audit trail with search and pagination
Batch processing — generate up to 10 images in parallel
Optional Vertex AI — upscaling (x2/x4) and advanced editing modes
Thinking mode & grounding — extended reasoning and Google Search for analysis
14 aspect ratios (including panoramic) and temperature control
Async-first architecture with full Pydantic validation
EXIF metadata embedding (prompt, model, timestamp)
Related MCP server: Gemini Gen MCP
Quick Start
Requirements: Python 3.10+ and a Google API key
Install
pipx install pixelforge-mcpConfigure
Claude Code
claude mcp add pixelforge --scope user -e GOOGLE_API_KEY="your-key" -- pixelforge-mcpCursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"pixelforge": {
"command": "pixelforge-mcp",
"env": {
"GOOGLE_API_KEY": "your-key"
}
}
}
}VS Code
code --add-mcp '{"name":"pixelforge","command":"pixelforge-mcp","env":{"GOOGLE_API_KEY":"your-key"}}'Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"pixelforge": {
"command": "pixelforge-mcp",
"env": {
"GOOGLE_API_KEY": "your-key"
}
}
}
}Kiro
kiro-cli mcp add --name pixelforge --scope global --command pixelforge-mcp --env "GOOGLE_API_KEY=your-key"Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"pixelforge": {
"command": "pixelforge-mcp",
"env": {
"GOOGLE_API_KEY": "your-key"
}
}
}
}Restart Claude Desktop after saving.
Use
Ask Claude to generate, edit, or analyze images — all 21 tools are available automatically.
Available Tools
Generation
Tool | Description |
| Generate images from text (6 models, 14 aspect ratios, quality presets, parallel multi-image) |
| Modify existing images with text prompts |
| Remove image background (transparent or white) |
| Crop, resize, rotate, flip, blur, sharpen, grayscale, or watermark |
| Generate up to 10 images in parallel from multiple prompts |
Analysis
Tool | Description |
| AI-powered image description with optional grounding |
| OCR — extract text with confidence levels |
| Detect objects with bounding boxes |
| Compare 2-10 images for differences |
Utility
Tool | Description |
| Enhance prompts for better image generation (14 styles) |
| Calculate generation costs per model/operation |
| Browse 24 curated prompt templates across 10 categories |
| Fill a template with your subject for a ready-to-use prompt |
| Model capabilities, speed, quality, and selection guidance |
| Server configuration and status |
History
Tool | Description |
| Browse generation history with pagination and filtering |
| Get full details of a specific generation |
Vertex AI (Optional)
Tool | Description |
| Upscale images x2 or x4 (requires Vertex AI) |
| Inpainting, outpainting, background swap, style transfer (requires Vertex AI) |
Model Selection
PixelForge supports per-request model switching with 6 models:
Gemini Models (via Gemini API)
Use case | Model | Why |
Fast iterations |
| Cheapest, lowest latency |
Panoramic & grounded |
| 1:4/4:1/1:8/8:1, web+image grounding |
Max text fidelity |
| ~94% accuracy, complex multi-turn edits |
Imagen 4 Models (via Gemini API)
Use case | Model | Why |
Cost-effective batch |
| $0.04/img, excellent quality |
Cheapest generation |
| $0.02/img, fastest |
Maximum quality |
| $0.06/img, best output |
Quality Presets
Instead of choosing a model manually, use quality presets:
generate_image(prompt="...", quality="fast") # gemini-2.5-flash-image
generate_image(prompt="...", quality="balanced") # gemini-3.1-flash-image-preview + 1K
generate_image(prompt="...", quality="quality") # gemini-3-pro-image-preview + 2KVertex AI (Optional)
For advanced features like image upscaling and specialized editing modes:
Set up a Google Cloud project with Vertex AI enabled
Set the environment variable:
GOOGLE_CLOUD_PROJECT=your-project-idInstall the Vertex AI dependency:
pip install pixelforge-mcp[vertex]
PixelForge auto-detects Vertex AI credentials and unlocks upscale_image and advanced_edit tools.
Supported Aspect Ratios
Ratio | Description |
| Square (default) |
| Widescreen landscape |
| Mobile portrait |
| Classic portrait |
| Classic landscape |
| Portrait |
| Traditional landscape |
| Instagram portrait |
| Medium format |
| Ultrawide |
| Tall panoramic* |
| Wide panoramic* |
| Extra tall panoramic* |
| Extra wide panoramic* |
* Panoramic ratios require gemini-3.1-flash-image-preview model
Troubleshooting
"Invalid API key" or "Authentication failed"
Double-check your Google API key is correct and has access to the Gemini API. Get a key at Google AI Studio.
"Command not found: pixelforge-mcp"
Ensure the pipx bin directory is in your PATH:
export PATH="$HOME/.local/bin:$PATH""Server not starting"
Check that pixelforge-mcp is installed:
pipx list | grep pixelforgeVertex AI features not available
Ensure GOOGLE_CLOUD_PROJECT is set and google-cloud-aiplatform is installed:
pip install pixelforge-mcp[vertex]Documentation
Configuration Guide — detailed setup and environment options
Changelog — version history
Contributing
See CONTRIBUTING.md for development setup, code standards, and pull request guidelines.
License
Acknowledgments
Built with FastMCP, Pydantic, and google-genai.
Author
Ahmed Al-Eryani @ Tehnolabs
PixelForge MCP - Forging pixels with AI
Available Tools
19 toolsadvanced_editC
Advanced image editing with specialized modes (requires Vertex AI).
This feature requires Google Cloud Vertex AI credentials. Set GOOGLE_CLOUD_PROJECT environment variable to enable.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Edit instruction | |
| edit_mode | Yes | One of: inpaint_removal, inpaint_insertion, outpaint, background_swap, style_transfer, product_image | |
| mask_path | No | Optional mask image for inpainting operations | |
| image_path | Yes | Path to the image to edit | |
| output_format | No | Output format (png, jpeg, webp) | png |
| output_filename | No | Custom output filename (optional) |
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 must disclose behavioral traits. It only states requirements (Vertex AI) but does not explain error behavior, side effects, image handling, or limitations. Lacks depth for a complex 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?
Two concise sentences, front-loaded with purpose and requirement. No redundant information. Every word earns its place.
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 having an output schema, the description lacks operational context: no explanation of edit modes, mask usage, or expected outcomes. For a tool with 6 parameters and complex modes, this is insufficient.
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%, so baseline is 3. The description adds no additional meaning beyond the parameter descriptions already in the schema. It does not explain param relationships or typical usage patterns.
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 states 'Advanced image editing with specialized modes,' which clearly indicates the tool's purpose and distinguishes it from simpler editing tools like edit_image. However, it does not explicitly contrast with siblings, so it's not a full 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 mentions prerequisites (Vertex AI credentials, environment variable) but provides no guidance on when to use this tool versus alternatives like edit_image or transform_image. No when-not-to-use or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_imageC
Analyze an image and get a detailed description.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Custom analysis prompt. Default: general description. | |
| image_path | Yes | Path to the image to analyze | |
| use_grounding | No | Enable Google Search grounding for more accurate, factual analysis results. |
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, the description carries the full burden of disclosure. It only says 'get a detailed description,' omitting any behavioral details such as supported image formats, computational requirements, or whether it modifies files.
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, front-loaded sentence that efficiently conveys the core purpose. It is concise but could benefit from slightly more detail without becoming verbose.
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 presence of an output schema, the description is adequate but incomplete for contextualizing the tool among many siblings. It lacks guidance on when to use this tool over others.
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?
All parameters are fully described in the input schema (100% coverage), so the description does not need to add more. It does not contradict or provide additional parameter context 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 analyzes an image and returns a detailed description, but it does not differentiate from sibling tools like detect_objects or extract_text, which also perform image analysis.
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 is provided on when to use this tool versus alternatives. The agent has no context to decide between this and similar image analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_templateC
Apply a prompt template with a subject to generate a ready-to-use prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | The subject to fill into the template (e.g., 'wireless headphones', 'coffee shop') | |
| template_name | Yes | Name of the template (e.g., 'product_hero', 'instagram_post'). Use list_templates() to see all. |
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 only states the output ('ready-to-use prompt') but does not disclose any behavioral traits such as side effects, required permissions, or whether the template is modified.
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, clear sentence with no extraneous words. It front-loads the action and outcome, though it could benefit from slightly more detail.
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 simple two-parameter tool with existing output schema, the description is adequate but minimal. It does not explain how templates work or that template_name should be obtained from list_templates, though this is hinted in the schema.
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% and the parameter descriptions are already detailed with examples and references. The tool description adds no additional meaning beyond what the schema provides.
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 applies a prompt template with a subject to generate a prompt. The verb 'apply' and the resources 'template' and 'subject' are specific. However, it does not differentiate from siblings like list_templates or optimize_prompt.
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. There is no mention of prerequisites, when not to use, or references to sibling tools that might provide related functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_generateA
Generate multiple images in parallel from a list of prompts.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model to use for all generations (optional) | |
| prompts | Yes | List of text prompts (1-10) | |
| quality | No | Quality preset (fast, balanced, quality) | |
| aspect_ratio | No | Aspect ratio for all images (default: 1:1) | 1:1 |
| output_format | No | Output format for all images (default: png) | png |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that generation occurs 'in parallel', which is a key behavioral trait. However, without annotations, it omits details on concurrency limits, error behavior, or cost implications, 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 a single, efficient sentence with no superfluous information, earning high marks for 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 the presence of an output schema and 100% parameter coverage, the description sufficiently covers the core purpose and parallel behavior. It lacks depth on limitations or prerequisites but is adequate for the tool's complexity.
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%, so the description adds minimal value beyond what the schema provides. It does clarify the batch nature of the 'prompts' parameter but does not add new semantics.
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 'generate', the resource 'images', and specifies 'multiple' and 'in parallel from a list of prompts'. This distinguishes it from single-image generation tools like generate_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 implies use for batch generation from multiple prompts, which is distinct from single prompt tools. However, it does not explicitly state when to use this over alternatives or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_imagesA
Compare two or more images and analyze differences.
Useful for A/B testing, design review, before/after comparison, and change detection.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Comparison focus (e.g. "color differences"). Default: general comparison. | |
| image_paths | Yes | Paths to 2+ images to compare | |
| use_grounding | No | Enable Google Search grounding for more accurate, factual results. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must reveal behavioral traits. It only states the basic function and does not disclose whether the tool modifies images, requires special permissions, or what the output format is (despite having an output schema). The description lacks details about side effects, constraints, or exact analysis capabilities.
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 with two sentences. The first sentence delivers the core purpose, and the second lists relevant use cases. No redundant or unnecessary words, well-structured 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 existence of an output schema, the description does not need to explain return values. It adequately covers the tool's purpose and use cases. However, it could mention that the tool supports more than two images (implied by '2+' in schema) or hint at output type, but overall it provides sufficient context for a simple comparison tool.
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%, so the schema already documents all parameters. The description does not add additional context beyond the schema, such as clarifying the effect of 'use_grounding' or the format of 'prompt'. Baseline 3 is appropriate as the description adds no extra value over 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's purpose: 'Compare two or more images and analyze differences.' It identifies the specific action (compare) and resource (images), and lists use cases like A/B testing and design review, which distinguishes it from siblings like edit_image or detect_objects.
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 lists common use cases ('Useful for A/B testing, design review, before/after comparison, and change detection'), giving context for when to use it. However, it does not explicitly exclude alternatives or provide when-not-to-use guidance, missing an opportunity to differentiate from similar tools like analyze_image.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_objectsA
Detect objects in an image with bounding boxes.
Uses Gemini's zero-shot object detection. Returns bounding box coordinates normalized to 0-1000 scale as [y_min, x_min, y_max, x_max].
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Specific objects to detect (e.g. "cats and dogs"). Default: detect all visible objects. | |
| image_path | Yes | Path to the image | |
| use_grounding | No | Enable Google Search grounding for more accurate, factual results. |
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 must fully disclose behavior. It reveals the method (Gemini zero-shot) and output scale (0-1000), but does not mention whether the tool is read-only, permissions needed, or any side effects. With annotations absent, more detail would be expected.
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?
Two sentences: the first states the primary action, the second adds the method and output format. No extraneous words, front-loaded, and efficiently structured.
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 presence of an output schema (context: has output schema true), the description does not need to detail return values, but it succinctly describes the output format. It lacks context on supported image formats, error handling, or performance considerations, but covers the essentials. A minor gap prevents a perfect score.
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 100% coverage with detailed descriptions for all 3 parameters. The description does not add new parameter information beyond the schema, which is acceptable. Baseline 3 applies because the schema does the heavy lifting.
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 'Detect' and the resource 'objects in an image with bounding boxes'. It distinguishes from siblings like analyze_image and extract_text by specifying the output format (normalized bounding box coordinates) and the method (Gemini's zero-shot detection).
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 object detection but does not explicitly state when to use this tool over alternatives (e.g., analyze_image for general analysis, extract_text for text detection). No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageC
Edit an existing image using a text prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model override. "gemini-3-pro-image-preview" best for complex multi-turn edits. | |
| prompt | Yes | Description of the desired changes | |
| temperature | No | Creativity level 0.0-2.0 | |
| output_format | No | File format: "png", "jpeg", or "webp" | png |
| output_filename | No | Custom filename for edited image (optional) | |
| input_image_path | Yes | Path to the image to edit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits such as whether edits are destructive, file handling details, or permission requirements. Only a basic purpose is given, leaving significant gaps for safe invocation.
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 with no wasted words. However, given the tool's complexity (6 parameters), slightly more structure or additional context could be beneficial while remaining 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?
Despite having an output schema and well-documented parameters, the description is too sparse for a 6-param tool. It lacks context on typical usage, error handling, or relationship to other tools, leaving the agent without sufficient guidance for correct 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 100%, so all parameters are documented. The description adds no extra meaning beyond the schema; it only restates the overall purpose. Baseline of 3 is appropriate as the schema carries the weight.
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 (edit) and resource (existing image) using a text prompt. While it is specific, it does not explicitly distinguish from siblings like 'generate_image' or 'advanced_edit', but the naming and context imply the distinction.
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 like 'advanced_edit' or 'transform_image'. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_costA
Estimate the cost of an image operation.
Shows pricing per model per operation to help with budgeting.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model to estimate for (default: all models) | |
| operation | Yes | "generate", "edit", or "analyze" | |
| number_of_images | No | Number of images (default: 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that it shows pricing per model per operation, which implies no side effects. However, it does not explicitly state it is read-only or that it does not perform the actual operation.
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?
Two sentences: first clearly states purpose, second adds valuable detail. No fluff, highly efficient.
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?
The description explains the core functionality and what it returns (pricing per model per operation). With an output schema present, the description is sufficiently complete for a simple tool, though it could briefly mention that it does not execute the operation.
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 covers 100% of parameters with descriptions. The description adds context about showing pricing per model per operation, but does not add meaning beyond the schema for any parameter, meeting baseline with minor addition.
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 it estimates cost of an image operation, using specific verb 'estimate' and resource 'cost of an image operation'. It distinguishes from sibling tools that perform actual operations like generate_image or 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?
No guidance on when to use this tool vs alternatives. It does not mention prerequisites, when not to use, or suggest alternative tools for different purposes, leaving the agent without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_textA
Extract text from an image using OCR.
Uses Gemini's vision capabilities for high-quality text extraction. Works with screenshots, documents, signs, handwriting, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| image_path | Yes | Path to the image to extract text from | |
| use_grounding | No | Enable Google Search grounding for more accurate, factual results. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or output format. The mention of 'high-quality' is subjective and not actionable.
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?
Three sentences with no redundancy, front-loading the core purpose. Every sentence adds value, making it very 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?
Given a simple tool with output schema and full parameter coverage, the description adequately defines the tool's purpose and use cases. Missing details like output format or limitations are partially compensated by the output schema.
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%, so the schema already documents parameters. The description does not elaborate on parameters beyond the schema, but the context 'Google Search grounding' adds minimal value to the boolean parameter.
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 the tool extracts text from images using OCR, specifying the resource (image) and action (extract text). Distinguishes from sibling tools like analyze_image and detect_objects by focusing on text extraction.
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?
Provides examples of supported image types (screenshots, documents, signs, handwriting), helping users understand applicable scenarios. However, lacks explicit when-not-to-use or comparison with alternatives like analyze_image.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageC
Generate an image from a text prompt using Google Gemini.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model override. Options: - "gemini-2.5-flash-image" (default): Fast, cheap - "gemini-3-pro-image-preview": Best text, complex edits - "gemini-3.1-flash-image-preview": Panoramic, fast 4K | |
| prompt | Yes | Text description of the image to generate | |
| quality | No | Quality preset: "fast" (cheapest), "balanced" (good quality), or "quality" (best output). Mutually exclusive with 'model'. | |
| image_size | No | Resolution: "1K" (default), "2K", or "4K" | |
| temperature | No | Creativity level 0.0-2.0 | |
| aspect_ratio | No | Image dimensions (1:1, 16:9, 9:16, etc.) | 1:1 |
| output_format | No | File format: "png", "jpeg", or "webp" | png |
| safety_setting | No | Safety filter (preset:strict, preset:relaxed) | preset:strict |
| output_filename | No | Custom filename (optional, auto-generated if not provided) | |
| thinking_budget | No | Thinking budget for extended reasoning (0-24576 tokens). Higher = deeper reasoning. | |
| number_of_images | No | Generate 1-4 variations (default: 1) | |
| reference_images | No | Paths to reference images for style/character consistency (up to 14 images) | |
| person_generation | No | People in images: "allow", "adults_only" (no minors), or "block" (no people). Only enforced with Imagen models. Gemini has built-in person restrictions. |
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, the description bears full responsibility for behavioral disclosure. It does not mention safety, cost, rate limits, or whether the operation is pure generation. The single sentence is insufficient for a tool with 13 parameters.
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, front-loaded sentence. It is concise but could be expanded with key details without becoming verbose. No 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?
Given the complexity (13 parameters, many sibling tools) and the presence of an output schema, the description is too brief. It omits expected context like output format, variation generation, or reference image support, relying entirely on the schema.
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%, so the baseline is 3. The description adds no parameter-level detail beyond the schema, but the schema itself is well-documented (e.g., model options, quality). The description's silence does not degrade the score below baseline.
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 'generate' and resource 'image', specifying the action and input source (text prompt) and model (Google Gemini). It implicitly distinguishes from siblings like edit_image or analyze_image, but does not explicitly differentiate.
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 versus alternatives (e.g., edit_image, upscale_image). No context on prerequisites or exclusions. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_generation_detailsA
Get details of a specific generation by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | The generation ID (from list_history) |
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 full burden. The description states 'Get details', which implies a read-only operation with no side effects. However, it does not disclose other behavioral traits such as authentication requirements, rate limits, or whether the generation must belong to the current user. The presence of an output schema partially mitigates this, but the description alone provides minimal 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 a single concise sentence that front-loads the essential purpose. It contains no wasted words but could benefit from structured sections or additional context (e.g., mentioning the source of the ID). However, for a simple tool, this level of conciseness is effective.
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 low complexity, a single required parameter, and the presence of an output schema, the description is minimally complete. However, it does not explicitly tie this tool to the broader workflow (e.g., using list_history first) or explain what 'details' entails. The param description partially fills this gap, but the main description could be more informative.
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%, so the baseline is 3. The tool description adds no extra meaning beyond what the input schema already provides: the schema already describes generation_id as 'The generation ID (from list_history)'. The description only restates 'by ID', which is redundant.
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 'Get details of a specific generation by ID' clearly identifies the action (getting details), the resource (a specific generation), and the method (by ID). It distinguishes this tool from siblings like list_history (which lists generations) and generate_image (which creates), making it 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 does not explicitly state when to use this tool versus alternatives. However, the parameter description for generation_id mentions 'from list_history', implicitly suggesting a workflow where list_history is used first. No explicit exclusions or context for when not to use this tool are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoA
Get MCP server configuration, capabilities, and available tools.
Returns: Dictionary with server info and feature overview
| 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?
No annotations are provided, so the description must cover behavioral traits. It states the tool 'Get's' information, implying a read-only operation, but does not explicitly mention side effects, authentication needs, or rate limits. It is adequate but not detailed.
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 consists of two concise sentences, front-loaded with the action and resource, followed by a return type note. Every word adds value with 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?
Given the tool's simplicity, no parameters, and existence of an output schema, the description adequately covers purpose and return type. It does not explain output fields (handled by schema) nor potential delays, but it is largely complete for an info retrieval tool.
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 zero parameters, so the description adds no param-specific meaning. Per guidelines, baseline is 4 for zero params, and the schema coverage is trivially 100%.
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 retrieves 'MCP server configuration, capabilities, and available tools.' The verb 'Get' and specific resources make the purpose unambiguous, and it distinguishes itself from siblings, which focus on image editing or generation.
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, avoiding any mention of context, prerequisites, or conditions. Although the purpose is clear, it lacks explicit usage recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_modelsA
List all available image generation models with capabilities.
Returns model details including speed, quality, resolution support, and best use cases. Use this to pick the right model for your task.
Returns: Dictionary with model details and selection guidance
Example: list_available_models()
| 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, the description carries full burden. It details what the function returns (model details: speed, quality, resolution, best use cases) and mentions return type. No behavioral caveats are needed for a read-only list operation.
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 very concise: two short paragraphs and an example call. No redundant information; every sentence serves a purpose.
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 tool with zero parameters and an output schema, the description fully explains the purpose, return content, and even provides an example. It is complete and helpful.
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?
No parameters exist, so baseline is 4. The description adds value by explaining the outputs and selection guidance, which goes beyond the empty input 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 uses a specific verb ('List') and resource ('all available image generation models'), clearly distinguishing it from sibling tools that generate or modify images. It adds context about capabilities and best use cases.
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?
Explicitly states 'Use this to pick the right model for your task,' which guides when to call it. However, it does not explicitly state when not to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_historyC
List recent generation history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum entries to return (default: 20) | |
| offset | No | Skip this many entries (for pagination) | |
| tool_filter | No | Filter by tool name (generate_image, edit_image, etc.) |
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 for behavioral disclosure. It merely says 'list', implying read-only, but doesn't confirm safety, describe pagination behavior, or mention that an output schema exists. Minimal disclosure.
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 extremely concise (one sentence) with no wasted words, but lacks structure for an AI agent (no separation of purpose, usage, or example). It is terse rather than efficiently informative.
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 three parameters (all optional) and an output schema, the description is inadequate. It omits explanations of pagination (limit/offset), filtering (tool_filter), and what history includes. Agent cannot fully grasp tool scope from description alone.
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%, so the input schema already documents all three parameters (limit, offset, tool_filter) with descriptions. The tool description adds no extra context or meaning beyond the schema, meeting the baseline of 3.
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 'List recent generation history' clearly states the action (list) and resource (generation history). It effectively conveys the core purpose and distinguishes from sibling tools (no other history listing tool). However, it could be more specific about 'generation' context.
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 versus alternatives (e.g., get_generation_details). No exclusions or prerequisites mentioned. The agent receives no help in deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesB
List available prompt templates for image generation.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (product_photography, social_media, illustration, portrait, architecture, food, fashion, abstract, logo, panoramic). Omit for all. |
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 present, so the description must fully disclose behavior. It implies a read-only listing but lacks details on pagination, ordering, or return format, which is insufficient for a tool with no annotation support.
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 with no wasted words, efficiently conveying the tool's purpose.
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 list tool with one optional parameter and an output schema, the description is minimally adequate. However, given the presence of related siblings, more contextual details (e.g., template format, common use cases) would improve completeness.
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%, so the parameter's semantics are fully documented in the schema. The tool description adds no extra meaning beyond the schema, resulting in a baseline score of 3.
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 lists available prompt templates for image generation, using specific verb and resource. However, it does not differentiate from sibling tools like 'apply_template' or 'generate_image', which could cause 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?
No guidance is provided on when to use this tool versus alternatives or when not to use it. With multiple sibling tools that interact with templates, explicit context would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_promptA
Enhance a basic prompt for dramatically better image results.
Uses AI to add details about lighting, composition, colors, textures, and artistic techniques. The #1 way to improve generation quality.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Target style (optional): photorealistic, illustration, 3d_render, pixel_art, watercolor, oil_painting, sketch, anime, cinematic, product_photo, architecture, food, fashion, abstract | |
| prompt | Yes | Basic prompt to enhance |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the AI augmentation process transparently (adds lighting, composition, etc.). No annotations provided, so the description carries full weight; it discloses the main behavioral trait of enhancing prompts without mentioning side effects or permissions.
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?
Three sentences front-loaded with the core purpose, then supporting details. No superfluous words; every sentence earns its place. Under 50 characters.
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, two parameters with full schema coverage, and an output schema (existed in context), the description is adequately complete. It lacks details about prerequisites or limitations but covers the essential function.
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% and both parameters have descriptions in the schema. The tool description repeats that style is optional and mentions possible values, but adds no new semantics beyond the schema. Baseline score of 3 is appropriate.
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 it enhances prompts for better image generation, with specific details like lighting and composition. It distinguishes from siblings like generate_image by focusing on prompt optimization, but does not explicitly contrast with alternatives like apply_template.
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 versus siblings such as generate_image or edit_image. The claim 'the #1 way to improve generation quality' implies a use case but lacks context for when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundA
Remove the background from an image.
Uses AI to isolate the main subject and remove the background. Best results with clear subjects against distinct backgrounds.
| Name | Required | Description | Default |
|---|---|---|---|
| image_path | Yes | Path to the image | |
| output_format | No | "png" (default, supports transparency), "jpeg", or "webp" | png |
| output_filename | No | Custom filename for result (optional) |
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. It discloses that the tool uses AI to isolate the main subject, but it does not describe the output format or any side effects (e.g., whether the original file is modified). The behavior is adequately described but lacks comprehensive detail.
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?
Two sentences, no unnecessary words. The action is front-loaded, and the usage tip is concise. Every sentence adds value.
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?
The description provides the core purpose and a usage tip. An output schema exists (context indicates true), so return values do not need explanation. However, it does not mention what happens to the result (e.g., saved to a file) or any prerequisites. Slightly incomplete but sufficient for a focused tool.
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 covers all parameters with descriptions. The description adds no additional meaning to the parameters beyond stating the overall purpose. Since schema coverage is 100%, a baseline of 3 is appropriate.
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 action: 'Remove the background from an image.' It distinguishes itself from sibling tools that perform other image manipulations like editing, transforming, or upscaling. The verb-resource pair 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 includes a usage tip: 'Best results with clear subjects against distinct backgrounds.' This provides practical guidance on when the tool works best, though it does not explicitly list when not to use it or mention alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_imageC
Transform an image using Pillow operations.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| text | No | Watermark text | |
| width | No | ||
| factor | No | Sharpness factor (default: 2.0, >1 = sharper) | |
| height | No | ||
| radius | No | Blur radius (default: 2.0) | |
| degrees | No | Rotation angle in degrees | |
| opacity | No | Watermark opacity 0.0-1.0 (default: 0.5) | |
| position | No | Watermark position (default: 'bottom-right') | bottom-right |
| direction | No | Flip direction ('horizontal' or 'vertical') | |
| operation | Yes | One of: crop, resize, rotate, flip, blur, sharpen, grayscale, watermark | |
| image_path | Yes | Path to the image to transform | |
| output_format | No | Output format (png, jpeg, webp) | png |
| maintain_aspect | No | Keep aspect ratio when resizing (default: True) | |
| output_filename | No | Custom output filename (optional) |
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 must disclose behavior. It mentions 'using Pillow operations' but does not state whether the original file is modified or if a new file is created, nor does it address authorization or side effects. The return value is not described despite an output schema existing.
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 very concise (one sentence) but omits important details that would help an agent use the tool correctly. It is not overly verbose, but could be restructured to include key constraints upfront.
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 16 parameters and an output schema, the description is too brief to be complete. It does not explain which parameters apply to which operations, nor does it provide context for the tool's role among siblings. The output schema exists but the description does not reference it.
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 75% schema description coverage, the input schema already documents most parameters. The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
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 'Transform an image using Pillow operations' states the basic action and technology but does not distinguish from sibling tools like edit_image, upscale_image, or remove_background, which also transform images. The title is null, further reducing clarity.
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 is provided on when to use this tool versus the many alternative image tools. There is no mention of prerequisites, exclusions, or typical use cases, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upscale_imageA
Upscale an image to higher resolution (requires Vertex AI).
This feature requires Google Cloud Vertex AI credentials. Set GOOGLE_CLOUD_PROJECT environment variable to enable.
| Name | Required | Description | Default |
|---|---|---|---|
| image_path | Yes | Path to the image to upscale | |
| output_format | No | Output format (png, jpeg, webp) | png |
| upscale_factor | No | Scale factor: "x2" (double) or "x4" (quadruple) | x2 |
| output_filename | No | Custom output filename (optional) |
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. The description discloses the requirement of Vertex AI credentials but does not mention behavioral traits such as whether the original image is modified, cost implications, or error handling. For a non-destructive read-like operation, this is adequate but not exemplary.
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 consists of two short, front-loaded sentences with no extraneous information. Every sentence adds value: the first defines the action and dependency, the second explains setup.
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 (context indicates true), the description covers the essential purpose and a key prerequisite. With 4 parameters and 1 required, it is fairly complete for a straightforward upscaling tool.
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%, so the baseline is 3. The description does not add additional meaning beyond the schema; it only restates the requirement for credentials. No parameter details are elaborated.
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: 'Upscale an image to higher resolution'. This is a specific verb+resource pair, and it distinguishes itself from sibling tools like edit_image or remove_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 explicit prerequisites: requires Vertex AI and the environment variable GOOGLE_CLOUD_PROJECT. It does not compare directly with alternatives, but the context is sufficient for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but 'advanced_edit' and 'edit_image' overlap in description, potentially causing confusion. The analysis tools are well-differentiated.
All tools follow a consistent verb_noun snake_case pattern (e.g., 'generate_image', 'list_templates'), with no mixed conventions.
19 tools is slightly above the typical ideal range but still well-scoped for a comprehensive image generation and editing server. Each tool serves a clear purpose without redundancy.
The tool set covers generation, editing, analysis, templates, cost estimation, and history. Minor gaps like direct deletion or inpainting exist but do not hinder core workflows.
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 Midjourney AI image generation and editing
MCP server for NanoBanana AI image generation and editing
MCP server for Google Veo AI video generation
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseBqualityBmaintenanceA MCP server that provides AI-powered image generation capabilities through Google's Gemini 2.5 Flash Image model.4393MIT
- AlicenseBqualityCmaintenanceMCP server for generating images and audio using Google's Gemini AI models.22MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for AI image generation and editing using Google Gemini image models.758MIT
- AlicenseAqualityDmaintenanceAn MCP server for AI-powered image generation, editing, and video generation using Google Gemini and Veo models.10752MIT
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/Tehnolabs/pixelforge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server