High-performance MCP image compression service for AI assistants with intelligent optimization and batch processing capabilities
Two tools with reasonable schema coverage and descriptions, but with notable gaps. `compress_universal` has a complex parameter set (7 params) covering both file and batch operations, with input_path documented but several optional parameters lacking clarity on defaults and constraints. `get_image_info` has clearer semantics but detail parameter enum values ('basic'/'full') are only implied in description, not formalized. Both tools have Chinese-language descriptions that are somewhat verbose for LLM consumption (>200 chars, against best practice of 50-200). Schemas are visible and typed, but validation guidance and error recovery paths are underspecified. No output schema documentation found in code excerpts.
压缩图片或批量处理目录。 支持单文件压缩、单文件多格式输出、格式转换和目录批量压缩。 返回统一的结构化结果,包含输出路径、压缩比例、节省空间和错误信息。
获取图片详细信息。 分析图像的格式、尺寸、透明度、EXIF 数据、ICC 配置文件、XMP 元数据、 颜色直方图和复杂度等信息。支持基础和完整两种详情级别。
Tool descriptions are excessively long (>200 chars) and written in Chinese. Best practice for LLM consumption is 50-200 chars in English. Chinese text may not be reliably tokenized or understood by English-primary LLMs.
Parameter 'formats' accepts 'array|string' but schema does not formalize this, should be oneOf or union type. LLMs may struggle with ambiguous type signatures.
Parameter 'detail' in get_image_info describes values 'basic' or 'full' but does not declare as enum. Missing formal constraint lets LLMs hallucinate invalid values.
'quality' parameter (1-100) accepts None for 'intelligent selection' but schema does not formalize this as nullable. Type definition is ambiguous.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
No output schema documented for either tool. Return value structure (fields, types, pagination) is not visible in source code. LLMs cannot plan downstream tool calls without knowing response fields.
Parameter descriptions lack validation guidance. E.g., 'output_path (optional)', but what happens if omitted? Does it default to input directory? Overwrite input? Create a temp file?
No error recovery guidance in tool descriptions. If compression fails, what should the LLM do? Retry? Ask user for different format? Provide alternative approaches.