mcp-image-optimizer
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., "@mcp-image-optimizerResize image.jpg to 800px width"
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.
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-optimizerSee Claude Code MCP docs for more info.
Add to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.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-optimizerThen 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 URLoutput- Output file pathwidth- Target width in pixelsheight- Target height in pixelsquality- Quality 1-100 for lossy formatsformat- 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 URLsoutputDir- Output directorywidth,height,quality,format- Same as single imageprefix- Add to filename startsuffix- 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 URLoutput- Output file paththreshold- Color similarity threshold 0-100backgroundColor- Background to detect
Intelligent cropping to specific dimensions.
Example:
"Smart crop portrait.jpg to 500x500 square"Parameters:
input- Image path or URLoutput- Output file pathwidth,height- Target dimensionsstrategy- "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 URLwidth- 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 URLoutput- Output file pathwatermark- Path/URL to watermark image, base64 data, or textposition- Corner, center, diagonal, or tile patternopacity- Transparency 0-1scale- Size relative to base imagemargin- Distance from edgesblend- Blend mode for effectsText 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 filessizes- Custom sizes array (default: all standard sizes)platforms- Target platforms: web, apple, android, microsoft, allgenerateManifest- 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
cwdconfig 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 --versionTry the global install method
"File not found"
Use absolute paths:
/Users/name/Desktop/image.jpgCheck file permissions
"MCP tools not available"
Restart your MCP client after configuration
Check config file is valid JSON
License
MIT
Links
Available Tools
8 toolsadd_watermarkB
Add a watermark image or text to an image
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to use as watermark (when watermark is text) | |
| blend | No | Blend mode (default: over) | |
| input | Yes | Input image path or URL | |
| scale | No | Scale watermark relative to base image width (default: 0.25 = 25%) | |
| margin | No | Margin from edges (default: 2.5% of image size) | |
| output | Yes | Output file path | |
| opacity | No | Watermark opacity 0-1 (default: 0.8) | |
| fontSize | No | Font size for text watermark (default: 8% of image size) | |
| position | No | Watermark position (default: bottom-right, diagonal rotates 45Β°) | |
| fontColor | No | Font color for text watermark (default: white) | |
| watermark | Yes | Watermark image path, URL, base64 data, or text string | |
| fontFamily | No | Font family for text watermark (default: Arial) | |
| strokeColor | No | Stroke color for text watermark (default: black) | |
| strokeWidth | No | Stroke width for text watermark (default: 3% of font size) |
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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Input image path or URL | |
| output | Yes | Output file path | |
| threshold | No | Color similarity threshold (0-100, default 10) | |
| backgroundColor | No | Background color to detect and remove (e.g., "#ffffff", "transparent") |
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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Target width for all images | |
| format | No | Output format for all images | |
| height | No | Target height for all images | |
| inputs | Yes | Array of input image paths or URLs | |
| prefix | No | Prefix to add to output filenames | |
| suffix | No | Suffix to add to output filenames (before extension) | |
| quality | No | Quality (1-100) for lossy formats | |
| outputDir | Yes | Output directory for optimized images |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | Blur amount 0.3-1000 (default: 5) | |
| input | Yes | Input image path or URL | |
| width | No | Placeholder width (default: 20px) | |
| format | No | Output format: base64 string, data URI, or file (default: datauri) | |
| height | No | Placeholder height (auto-calculated if not specified) | |
| quality | No | JPEG quality 1-100 (default: 40) | |
| outputPath | No | File path when format is "file" |
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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Source image path or URL (recommended: 512x512 or larger) | |
| sizes | No | Custom sizes to generate (default: [16, 32, 48, 64, 128, 180, 192, 256, 512]) | |
| outputDir | Yes | Directory to save all generated favicon files | |
| platforms | No | Target platforms (default: ["web"]) | |
| background | No | Background color for transparent images | |
| generateManifest | No | Generate manifest.json snippet for PWAs |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Image path or URL |
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. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | How to fit the image when resizing | |
| blur | No | Blur sigma value (0.3 to 1000) | |
| flip | No | Flip the image vertically | |
| flop | No | Flop the image horizontally | |
| input | Yes | Input image path or URL | |
| width | No | Target width in pixels | |
| format | No | Output format | |
| height | No | Target height in pixels | |
| output | Yes | Output file path | |
| rotate | No | Rotation angle in degrees | |
| quality | No | Quality (1-100) for lossy formats | |
| sharpen | No | Apply sharpening | |
| position | No | Position when fit is cover or contain (e.g., "center", "top", "right bottom") | |
| grayscale | No | Convert to grayscale | |
| normalize | No | Normalize image contrast | |
| background | No | Background color when using contain (e.g., "#ffffff", "transparent") |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Input image path or URL | |
| width | Yes | Target width in pixels | |
| height | Yes | Target height in pixels | |
| output | Yes | Output file path | |
| strategy | No | Cropping strategy: entropy (high detail areas) or attention (salient regions) |
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 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.
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.
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.
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.
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.
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.
8 tool updates
v1.0.3- First observed
add_watermark - First observed
auto_crop - First observed
batch_optimize - First observed
create_placeholder - First observed
generate_favicon - First observed
get_image_info - First observed
optimize_image - First observed
smart_crop
TDQS
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).
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.
8 tools is well-scoped for an image optimization server. Each tool provides meaningful distinct functionality without redundancy or bloat.
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
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
A Model Context Protocol server for Wix AI tools
Resize, compress, convert, watermark and SEO-tag e-commerce product images from a public URL.
Convert images to PNG, JPEG, WebP, or AVIF through one public remote MCP tool.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Related MCP Servers
- AlicenseBqualityFmaintenanceA Node.js server that provides advanced video and image processing capabilities through the Model Context Protocol, enabling operations like conversion, compression, editing, and effects application.101829ISC
- AlicenseNot gradedqualityFmaintenanceA server that provides AI-powered image generation, modification, and processing capabilities through the Model Context Protocol, leveraging Google Gemini models and other image services.18MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that extracts images from URLs or base64 data and converts them into a format suitable for LLM analysis, allowing AI models to process and understand visual content.319721MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that provides tools for converting SVG code to high-quality PNG and JPG images with detailed customization options.163MIT
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/piephai/mcp-image-optimizer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server