MCP Server for Gallery API that allows AI clients (like Claude Desktop) to manage images, browse resources, and use prompts.
The Gallery API server provides 4 tools with basic schemas and descriptions, but significant quality gaps prevent a higher score. All tools have input schemas and descriptions present, but descriptions are extremely brief (under 20 chars for most), parameter descriptions are missing entirely, and there is no output schema documentation. The server appears to be inferred from tool registration in src/mcp/mcp-server.ts; actual implementation code is not visible. No error handling guidance is documented. The 'delete_image' tool lacks confirmation/dry-run safeguards despite being destructive.
Delete an image from the gallery
List all images in the gallery
Search images by title or description
Upload an image to the gallery
Descriptions are critically short and lack WHAT/WHEN/WHEN context. 'Upload an image to the gallery' (29 chars) and 'Delete an image from the gallery' (32 chars) do not explain prerequisites, return values, or when to prefer one tool over another.
No parameter descriptions provided for ANY parameter. 'file_path', 'title', 'description', 'query', 'limit', 'image_id' lack any explanation of format, constraints, or how to obtain them. LLMs cannot infer whether 'file_path' must be absolute vs relative, or what 'limit' range is valid.
No output/return schema documented for any tool. LLMs do not know what fields list_images() returns, what structure search_images results have, or what upload_image returns on success. This forces agents to guess, leading to context loss and downstream failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 39 | - | v1 |
delete_image is destructive but lacks confirmation/dry-run safeguard or explicit reversibility warning. No error guidance documented (e.g., 'image not found' vs 'access denied'). Agents may delete unintended images without recovery options.
No enum constraints on parameters. 'limit' has no min/max (should be 1-100 or similar). 'title', 'description' have no length limits. Free-form strings invite invalid inputs and hallucinated values.
upload_image accepts 'file_path' as string but no validation documented. Can the agent pass remote URLs, or only local absolute paths? Must the file exist before calling? What file types are accepted? No guidance for recovery if upload fails (network error vs invalid format vs insufficient storage).
search_images 'limit' parameter defaults to 20 but no documentation. Is this a hard limit? Can the LLM request 100+ items? Pagination not mentioned, if results exceed limit, how does pagination work (offset, cursor)?
Tool implementation details not visible in provided source code. Only package.json, Prisma config, and mcp-server.ts reference shown. Actual tool handler code, error messages, and output structures cannot be verified. Scores capped at 50 due to inferred tool definitions.