MCP Server with URL Mimetype and Image Download tools
This server has clear, verb-based tool names and good descriptions. Both tools are explicitly registered with Zod schemas and structured error handling. However, the schema completeness is moderate, both tools accept only a URL parameter with minimal constraints. Parameter descriptions are present but brief. Output schemas are partially documented through the response structure but lack formal JSON Schema documentation. Error handling provides context to the LLM (e.g., 'Image not found', timeout messages, size limits), which is a strong point. The server accepts only system identifiers (URLs) and does not support human-friendly alternatives or batch operations. Overall, the definitions are above average for a simple image-fetching utility, but they lack the depth and validation rigor expected of production tools.
Downloads an image from a given URL and returns it as ImageContent.
Fetches the Content-Type (MIME type) of a given URL.
Schema completeness: Input schemas lack validation constraints (min/max, regex patterns, content-type expectations). Tools accept only 'url' with no format validation beyond basic URL type.
Output schemas not formally documented. Response structures are implicit in the code (text content for MIME type, image content for downloads) but not declared as JSON Schema for the LLM to understand downstream composition.
Parameter descriptions are minimal (single short phrase). LLMs benefit from format hints, acceptable input ranges, and error recovery paths. E.g., 'The URL of the image to download.' lacks guidance on supported formats, size limits (15MB mentioned in code but not in schema), or timeout behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Tool descriptions do not explicitly state state-modification behavior. Both tools are read-only (GET/HEAD requests), which is correctly marked in the Risk field. However, the tool descriptions themselves do not mention this limitation, which could mislead agents expecting side effects or requiring confirmation.
No idempotency guarantee stated. Both tools are read-only and thus naturally idempotent, but this is not documented. Agents should understand repeated calls with the same input are safe.
Error recovery guidance is partial. Errors include context (status codes, network vs. timeout, size limit) but do not guide the LLM on next steps. E.g., 'Image size exceeds the limit' does not suggest 'try a lower-resolution source' or 'request a smaller version.'