Skip to main content
Glama
piephai
by piephai

MCP Image Optimizer

A Model Context Protocol server for image optimization. Process images from URLs or local files with advanced transformations powered by Sharp.

Features

  • πŸ–ΌοΈ Process images from URLs or local files

  • πŸ”„ Resize, rotate, flip, blur, sharpen, and more

  • πŸ“¦ Batch process multiple images

  • 🎨 Convert between JPEG, PNG, WebP, AVIF, TIFF

  • βœ‚οΈ Auto-crop borders and whitespace

  • 🎯 Smart crop with attention detection

  • 🌫️ Generate low-quality placeholders (LQIP)

  • πŸ’§ Add watermarks (image or text) with full control

  • 🌟 Generate favicons in all required sizes and formats

Related MCP server: Image Toolkit MCP Server

Installation

Run this command to add the MCP server:

claude mcp add image-optimizer -- npx -y mcp-image-optimizer

See Claude Code MCP docs for more info.

Add to your Claude Desktop config file:

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

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

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "image-optimizer": {
      "command": "npx",
      "args": ["mcp-image-optimizer"]
    }
  }
}

Add the following configuration to your OpenAI Codex MCP server settings:

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

See OpenAI Codex for more information.

Add to your VS Code settings for MCP extensions like Cline or Continue:

{
  "image-optimizer": {
    "command": "npx",
    "args": ["mcp-image-optimizer"]
  }
}

Navigate to Settings β†’ Cursor Settings β†’ MCP β†’ Add new global MCP server

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "image-optimizer": {
      "command": "npx",
      "args": ["mcp-image-optimizer"]
    }
  }
}

Install globally for faster startup:

npm install -g mcp-image-optimizer

Then use this simpler config in any client:

{
  "command": "mcp-image-optimizer"
}

Usage Examples

Ask your AI assistant:

  • "Optimize ~/Desktop/photo.jpg to 800px width"

  • "Convert https://images.pexels.com/photos/32206277/pexels-photo-32206277.jpeg to WebP"

  • "Batch optimize all images in ~/Downloads/"

  • "Create a 200x200 thumbnail with smart crop"

  • "Generate a placeholder for lazy loading"

  • "Add my company logo as watermark to product images"

  • "Add 'Copyright 2025' text watermark"

  • "Generate all favicon sizes from my logo"

Available Tools

Resize, convert, and transform images.

Example:

"Optimize image.jpg to 800px width with 85% quality"

Parameters:

  • input - Image path or URL

  • output - Output file path

  • width - Target width in pixels

  • height - Target height in pixels

  • quality - Quality 1-100 for lossy formats

  • format - Output format (jpeg, png, webp, avif, tiff)

  • fit - Resize fit mode (cover, contain, fill, inside, outside)

  • Plus rotate, flip, grayscale, blur, sharpen, normalize

Process multiple images at once.

Example:

"Optimize all images in ~/Pictures/ to 1200px width"

Parameters:

  • inputs - Array of image paths or URLs

  • outputDir - Output directory

  • width, height, quality, format - Same as single image

  • prefix - Add to filename start

  • suffix - Add to filename end

Extract image metadata.

Example:

"Get info about image.jpg"

Returns:

  • Dimensions, format, color space

  • File size, DPI

  • EXIF data presence

Remove borders and whitespace automatically.

Example:

"Auto-crop screenshot.png to remove white borders"

Parameters:

  • input - Image path or URL

  • output - Output file path

  • threshold - Color similarity threshold 0-100

  • backgroundColor - Background to detect

Intelligent cropping to specific dimensions.

Example:

"Smart crop portrait.jpg to 500x500 square"

Parameters:

  • input - Image path or URL

  • output - Output file path

  • width, height - Target dimensions

  • strategy - "attention" or "entropy"

Generate low-quality image placeholders for lazy loading.

Example:

"Create a blurred placeholder for hero-image.jpg"

Parameters:

  • input - Image path or URL

  • width - Placeholder width (default: 20)

  • height - Placeholder height (auto if not set)

  • quality - JPEG quality 1-100 (default: 40)

  • blur - Blur amount 0.3-1000 (default: 5)

  • format - "base64", "datauri", or "file"

Add image or text watermarks with positioning and styling.

Example:

"Add logo.png as watermark to photo.jpg in bottom-right corner"
"Add 'Copyright 2025' text watermark with 50% opacity"
"Add 'CONFIDENTIAL' diagonally across the document"

Parameters:

  • input - Image path or URL

  • output - Output file path

  • watermark - Path/URL to watermark image, base64 data, or text

  • position - Corner, center, diagonal, or tile pattern

  • opacity - Transparency 0-1

  • scale - Size relative to base image

  • margin - Distance from edges

  • blend - Blend mode for effects

  • Text options: text, fontSize, fontColor, fontFamily

Generate all favicon sizes and formats for modern web apps.

Example:

"Generate favicons from logo.png and save to ./public"
"Create all icon sizes for my PWA"

Parameters:

  • input - Source image (recommend 512x512 or larger)

  • outputDir - Directory to save all favicon files

  • sizes - Custom sizes array (default: all standard sizes)

  • platforms - Target platforms: web, apple, android, microsoft, all

  • generateManifest - Create manifest.json snippet for PWAs

Generated files:

  • PNG favicons in all sizes (16x16 to 512x512)

  • apple-touch-icon.png (180x180)

  • android-chrome-192x192.png, android-chrome-512x512.png

  • mstile-150x150.png (Microsoft tile)

  • favicon-html.txt (ready-to-use HTML tags)

  • manifest-icons.json (PWA configuration)

Path Support

  • βœ… URLs: https://example.com/image.jpg

  • βœ… Absolute paths: /Users/name/Desktop/image.jpg

  • βœ… Home directory: ~/Desktop/image.jpg

  • ⚠️ Relative paths: Works with cwd config setting

To use relative paths, add a working directory:

{
  "command": "npx",
  "args": ["mcp-image-optimizer"],
  "cwd": "/Users/yourname/Desktop"
}

Requirements

  • Node.js 22+ (npx handles this automatically)

  • Compatible MCP client

Troubleshooting

"Command not found"

  • Make sure Node.js is installed: node --version

  • Try the global install method

"File not found"

  • Use absolute paths: /Users/name/Desktop/image.jpg

  • Check file permissions

"MCP tools not available"

  • Restart your MCP client after configuration

  • Check config file is valid JSON

License

MIT

Available Tools

8 tools
add_watermarkB

Add a watermark image or text to an image

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to use as watermark (when watermark is text)
blendNoBlend mode (default: over)
inputYesInput image path or URL
scaleNoScale watermark relative to base image width (default: 0.25 = 25%)
marginNoMargin from edges (default: 2.5% of image size)
outputYesOutput file path
opacityNoWatermark opacity 0-1 (default: 0.8)
fontSizeNoFont size for text watermark (default: 8% of image size)
positionNoWatermark position (default: bottom-right, diagonal rotates 45Β°)
fontColorNoFont color for text watermark (default: white)
watermarkYesWatermark image path, URL, base64 data, or text string
fontFamilyNoFont family for text watermark (default: Arial)
strokeColorNoStroke color for text watermark (default: black)
strokeWidthNoStroke width for text watermark (default: 3% of font size)

TDQS

B3.4/5.0
Behavior2/5

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 the action and doesn't mention output behavior, side effects, or handling of input/output files. The schema provides parameter details but not tool-level 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?

A single, front-loaded sentence with no redundant words. It immediately conveys the tool's function and is appropriately sized for the simplicity of the action.

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

Completeness2/5

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

Despite the detailed schema, the description lacks any context about the workflow (input→output), return value, or caveats. With no output schema and no annotations, the agent does not know what the tool returns or whether it modifies the input image. This is a meaningful gap for a 14-parameter tool.

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 schema already describes all 14 parameters thoroughly (100% coverage) with types, defaults, and enums. The description adds no parameter-specific information, so the baseline of 3 is appropriate.

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 adds a watermark (image or text) to an image, using a specific verb and resource. This distinguishes it from sibling tools like optimize_image or auto_crop.

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 usage (when you need to add a watermark) but offers no explicit guidance on when to prefer this tool over alternatives, no exclusions, and no prerequisites. Sibling tools are clearly different, but the description does not name alternatives.

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

auto_cropA

Automatically crop image to remove borders, whitespace, or solid color backgrounds

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesInput image path or URL
outputYesOutput file path
thresholdNoColor similarity threshold (0-100, default 10)
backgroundColorNoBackground color to detect and remove (e.g., "#ffffff", "transparent")

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It states the crop action but does not mention that it writes to an output path, whether the original is modified, if existing files are overwritten, or what happens when no border is detected. This is a significant transparency gap for a transformation tool.

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 a single sentence that is concise and front-loaded with the primary action. No redundant phrasing or unnecessary details; every word contributes to the core message.

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

Completeness3/5

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

For a relatively simple tool with complete schema parameter descriptions, the description covers the main use case but omits behavioral details like output handling and edge-case behavior (e.g., if no border is found). The lack of annotations and output schema means the description should provide more context, but the schema does mitigate the parameter gap.

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 coverage is 100% with each parameter described (input, output, threshold, backgroundColor). The description adds context about 'borders, whitespace, or solid color backgrounds' which loosely maps to threshold and backgroundColor, but it does not add new semantic details beyond 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?

The description clearly states the specific function: automatically crop to remove borders, whitespace, or solid color backgrounds. This distinguishes it from sibling tools like smart_crop, which implies a different cropping purpose (content-aware). The verb 'crop' and resource 'image' are explicit.

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 when to use the tool (when borders or solid backgrounds need removal) but provides no explicit guidance on when not to use it or how it compares to alternatives like smart_crop. No exclusions or alternative tool mentions.

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

batch_optimizeB

Optimize multiple images at once

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoTarget width for all images
formatNoOutput format for all images
heightNoTarget height for all images
inputsYesArray of input image paths or URLs
prefixNoPrefix to add to output filenames
suffixNoSuffix to add to output filenames (before extension)
qualityNoQuality (1-100) for lossy formats
outputDirYesOutput directory for optimized images

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states 'optimize' without explaining what optimization entails (e.g., compression, resizing, format conversion) or side effects (e.g., file output, overwriting). The description gives no context on error handling, parallelism, or how output files are named, which is critical for a batch operation.

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 extremely concise and front-loaded, using five words to convey the batch nature. It is not verbose or wasteful. However, it may be under-specified given the number of parameters, but as a succinct statement it earns its place, so it deserves a slightly above-average score.

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

Completeness2/5

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

The tool has 8 parameters, no output schema, and no annotations. The description is a single sentence that does not cover return values, output behavior, how input paths are handled, or any other contextual details. For a tool of this complexity, the description is highly incomplete and fails to guide an agent on the tool's overall behavior.

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 100%, so all 8 parameters are already documented with their own descriptions. The tool description adds no additional meaning beyond noting that it handles 'multiple images', which is a marginal contribution. The baseline of 3 is appropriate since the schema does the heavy lifting.

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 'Optimize multiple images at once' uses a specific verb ('optimize') and resource ('multiple images') while also indicating batch scope ('at once'). This clearly differentiates it from sibling tools like 'optimize_image' which presumably handles a single image, satisfying the requirement for distinguishing from alternatives.

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 when to use the tool (for multiple images) but does not explicitly state when not to use it or mention alternatives such as 'optimize_image' for single images. There are no comparative or exclusionary statements, so the usage guidance is only implied rather than clearly articulated.

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

create_placeholderA

Generate a low-quality image placeholder (LQIP) for lazy loading

ParametersJSON Schema
NameRequiredDescriptionDefault
blurNoBlur amount 0.3-1000 (default: 5)
inputYesInput image path or URL
widthNoPlaceholder width (default: 20px)
formatNoOutput format: base64 string, data URI, or file (default: datauri)
heightNoPlaceholder height (auto-calculated if not specified)
qualityNoJPEG quality 1-100 (default: 40)
outputPathNoFile path when format is "file"

TDQS

A3.5/5.0
Behavior2/5

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 only states the tool generates a low-quality image placeholder; it does not describe output format implications, side effects (e.g., creating files), internal processing, or prerequisites. This is insufficient for a tool with 7 parameters and no annotation safety hints.

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 a single, compact sentence that is front-loaded with the action and outcome. There is no fluff or 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.

Completeness3/5

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

The tool has 7 parameters, no annotations, and no output schema, so a one-line description is somewhat minimal. However, the rich schema covers parameters, and the core behavior is simple enough that it is adequately described for basic use. The missing aspects are more about behavioral transparency (output details) and usage alternatives, which are scored separately.

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 100%, so all parameters are already documented in the schema. The description adds no extra context about parameters, but per the rubric, baseline is 3 when coverage is high. The description does not compensate further, but it doesn't need 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 the tool's action ('Generate') and specific resource ('low-quality image placeholder'), with an explicit purpose ('for lazy loading'). This distinguishes it from siblings like optimize_image, which focuses on optimization rather than placeholder generation.

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 phrase 'for lazy loading' implies a use case, but the description does not explicitly contrast with alternative tools (e.g., optimize_image) or state when not to use this tool. The guidance is implied rather than explicit, missing exclusions or alternative recommendations.

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

generate_faviconB

Generate all favicon sizes and formats needed for modern web apps

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesSource image path or URL (recommended: 512x512 or larger)
sizesNoCustom sizes to generate (default: [16, 32, 48, 64, 128, 180, 192, 256, 512])
outputDirYesDirectory to save all generated favicon files
platformsNoTarget platforms (default: ["web"])
backgroundNoBackground color for transparent images
generateManifestNoGenerate manifest.json snippet for PWAs

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior, but it fails to mention side effects (creating files, writing to outputDir), whether the input image is modified, or what 'formats' are generated. The tool appears to write files, but this is not explicitly disclosed.

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 a single, concise sentence with no fluff. It is front-loaded with the core action. However, it could be slightly expanded without losing conciseness to add behavioral detail, but for what it is, it is appropriately sized.

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

Completeness2/5

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

The tool is complex (6 parameters, nested object, no annotations, no output schema), but the description is extremely sparse. It does not explain the generated file formats, platform-specific behaviors, or the manifest output. This is inadequate for an agent to fully anticipate tool behavior.

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 100%, so the baseline is 3. The description 'Generate all favicon sizes and formats' adds no extra meaning about parameters, which are already well-described in the schema. No additional semantic value is provided.

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 function with a specific verb ('Generate') and resource ('all favicon sizes and formats needed for modern web apps'). This distinguishes it from sibling image tools (optimize, crop, watermark) which serve different purposes.

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 should be used when favicon generation is needed, but it does not explicitly state when to use it over alternatives or mention any exclusions. No 'when not to use' or alternative tool references are provided.

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

get_image_infoB

Get metadata and information about an image

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesImage path or URL

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosure. 'Get' implies a read-only operation and the parameter description adds that it accepts a path or URL. However, it does not disclose behavior such as error handling or whether the metadata is fetched locally or remotely, making it minimally 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that directly states the tool's function. Every word contributes value, and it is appropriately front-loaded with no filler or redundancy.

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

Completeness2/5

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

For a simple tool with one parameter and no output schema, the description is insufficient. It does not indicate what specific metadata will be returned (e.g., dimensions, format, size), leaving the agent to guess the return structure. Given the absence of an output schema, the description should compensate by listing example metadata fields.

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 coverage is 100% with a single parameter clearly described as 'Image path or URL'. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate. It does not elaborate on formats or examples.

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

Purpose4/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 with a specific verb ('Get') and resource ('metadata and information about an image'). It distinguishes itself from sibling manipulation tools since it is read-only, though it could be more specific about what metadata is included.

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?

There is no guidance on when to use this tool versus alternatives like optimize_image or add_watermark. It is implicitly understood that this is for inspection before editing, but the description does not explicitly state this or provide any usage context.

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

optimize_imageC

Optimize an image from a file path or URL with various transformation options

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNoHow to fit the image when resizing
blurNoBlur sigma value (0.3 to 1000)
flipNoFlip the image vertically
flopNoFlop the image horizontally
inputYesInput image path or URL
widthNoTarget width in pixels
formatNoOutput format
heightNoTarget height in pixels
outputYesOutput file path
rotateNoRotation angle in degrees
qualityNoQuality (1-100) for lossy formats
sharpenNoApply sharpening
positionNoPosition when fit is cover or contain (e.g., "center", "top", "right bottom")
grayscaleNoConvert to grayscale
normalizeNoNormalize image contrast
backgroundNoBackground color when using contain (e.g., "#ffffff", "transparent")

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits but does not. It only states that it optimizes an image; no mention of side effects (e.g., overwriting output files), return values, supported input formats, or behavior when given a URL. This lack of transparency could lead to incorrect usage assumptions.

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 a single, front-loaded sentence that effectively communicates the core purpose without any filler or extraneous detail. It is appropriately concise for a tool with a rich schema.

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

Completeness2/5

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

Given the tool's complexity (16 parameters) and the absence of an output schema, the description is insufficiently complete. It does not explain what the tool returns (e.g., success status, output path), how parameters like fit and position interact, or any default behaviors, making it hard for an agent to predict the tool's behavior without external knowledge.

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 input schema provides complete descriptions for all 16 parameters, including enums, ranges, and examples, so the schema carries the burden. The tool description adds no extra semantic meaning beyond what is already in the schema, aligning with the baseline of 3.

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

Purpose4/5

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

The description clearly identifies the tool's function as optimizing an image from a file path or URL, with a nod to transformation options. It distinguishes itself from siblings by focusing on single-image optimization and accepting both file paths and URLs, but the term 'optimize' is broad and leaves the exact scope (resize, compress, convert) ambiguous.

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 no guidance on when this tool should be used versus alternatives like batch_optimize, auto_crop, or smart_crop. It does not mention exclusions or recommend the tool for specific scenarios, leaving the agent to infer 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.

smart_cropC

Intelligently crop image to specified dimensions using entropy or attention detection

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesInput image path or URL
widthYesTarget width in pixels
heightYesTarget height in pixels
outputYesOutput file path
strategyNoCropping strategy: entropy (high detail areas) or attention (salient regions)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It mentions the algorithms (entropy/attention) but does not disclose side effects, input requirements, output behavior, or limitations. For example, it does not state whether the original file is modified, whether upscaling occurs, or how the crop region is determined beyond the strategy names.

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 a single sentence that efficiently conveys the core purpose. It is not verbose, but it does omit useful detail; however, it earns high marks for brevity. This is appropriate given the schema carries parameter details.

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

Completeness2/5

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

The tool has 5 parameters, an enum, no output schema, and no annotations. The one-sentence description leaves many contextual gaps: no mention of output file handling, aspect ratio behavior, error scenarios, or how to choose between strategies. The sibling 'auto_crop' adds ambiguity about the tool's unique value.

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 schema already documents all 5 parameters with descriptions, covering 100% of parameters. The description adds no additional parameter-specific meaning beyond mentioning the strategies, which are already detailed in the enum descriptions for 'strategy'. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool crops an image to specified dimensions and mentions the two strategies (entropy or attention). It uses a specific verb ('crop') and resource ('image'), but does not explicitly differentiate it from the sibling 'auto_crop' tool.

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 offers no guidance on when to use this tool versus alternatives like 'auto_crop'. It simply describes what it does. There are no exclusions, prerequisites, or explicit use-case context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv1.0.3
    • First observedadd_watermark
    • First observedauto_crop
    • First observedbatch_optimize
    • First observedcreate_placeholder
    • First observedgenerate_favicon
    • First observedget_image_info
    • First observedoptimize_image
    • First observedsmart_crop

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct operation: optimization, batch, info, two distinct crop types, placeholder, watermark, and favicon generation. Even the two crop tools have clearly differentiated purposes (auto removes borders, smart uses AI).

Naming Consistency5/5

All tool names follow a consistent lowercase_snake_case verb_noun pattern (optimize_image, get_image_info, create_placeholder, add_watermark, generate_favicon). The crop tools use compound verbs but remain stylistically uniform.

Tool Count5/5

8 tools is well-scoped for an image optimization server. Each tool provides meaningful distinct functionality without redundancy or bloat.

Completeness4/5

The surface covers core image optimization, batch processing, metadata, cropping, placeholders, watermarks, and favicon generation. Minor gaps exist (e.g., no explicit format conversion tool), but the general optimize_image likely covers that, so no severe omissions.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/piephai/mcp-image-optimizer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server