mcp-image-optimizer
Server Quality Checklist
Latest release: v1.0.3
- 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/5All 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/58 tools is well-scoped for an image optimization server. Each tool provides meaningful distinct functionality without redundancy or bloat.
Completeness4/5The 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.
Average 3.3/5 across 8 of 8 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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