High performance serverless image optimizer with Lanczos3 super-resolution, RAW parsing, and favicon generator
Server has 5 tools with partial schema visibility. compress_image and generate_favicons have detailed input schemas in mcp.json, but describe_image_ai, generate_favicon_metadata_ai, and extract_image_metadata are inferred from route files without visible explicit schema registration. Descriptions are present but generic (10-50 chars for some). Parameters lack consistency in documentation, compress_image has 16 params with descriptions, but others are sparse. No output schemas documented. Error handling and recovery guidance absent. Tool composition is reasonable (single responsibility), but parameter relationships undocumented (e.g., apiKey/provider dependency in AI tools).
Compress, resize, upscale, or convert an image into WebP, AVIF, JPEG, PNG, TIFF, or GIF formats.
Analyze image and generate optimal SEO filename and descriptive ALT text using AI vision models (Google Gemini or OpenAI).
Extract and analyze image metadata including EXIF, IPTC, XMP, color profile, and C2PA information.
Analyze logo/icon image and extract/generate branding and SEO metadata including app name, theme color, and keywords using AI vision models.
Generate multi-resolution favicon.ico, Apple touch icon, Android PWA icons, OG card and manifest snippet.
Three tools (describe_image_ai, generate_favicon_metadata_ai, extract_image_metadata) lack explicit schema registration in mcp.json; schemas inferred from route files only.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does compress_image return file_url, file_size, format?). Violates pattern:tool and mxe:include-chaining-ids.
API keys exposed as tool parameters (apiKey in describe_image_ai, generate_favicon_metadata_ai). Violates pattern:secret-injection, credentials in params leak into logs and traces.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Parameter relationships undocumented. E.g., apiKey and provider are interdependent (apiKey format depends on provider choice), but no description states this. LLMs may pass mismatched pairs.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., what if image exceeds 4.5 MB? What if AI provider rate-limits?