Image processing pipeline MCP server for Next.js with support for resizing, format conversion, quality adjustment, blur effects, and responsive image generation.
Two tools with minimal descriptions and incomplete schemas. darkroom_init has a 127-char description (acceptable) but only one required parameter with basic type. darkroom_optimize has a 156-char description but optional parameters lack type constraints and enums. Neither tool documents output schemas, error handling, or recovery paths. No parameter validation rules, no error categorization, no idempotency guarantees. Naming is verb-forward (good), but descriptions lack WHEN/WHY context and actionable guidance. Both tools perform file I/O with WRITE/READ_ONLY risk but no error recovery documentation.
Creates shutterbox.config.ts in a project directory. Scaffolds a starter config with thumbnail and hero image variants, breakpoints, and a .shutterbox-cache directory.
Processes images in a directory using shutterbox image pipeline. Scans the directory for image files and returns processing instructions or results.
No output schema documented for either tool. LLMs cannot plan downstream calls or extract structured data.
darkroom_optimize 'variant' parameter is optional but lacks enum constraint or description of valid values (e.g., 'thumbnail', 'hero'). LLMs will hallucinate invalid variant names.
No error handling guidance. darkroom_init writes files and modifies .gitignore; darkroom_optimize processes images. Both can fail (permission denied, invalid paths, missing config). No recovery hints provided.
Parameter descriptions are minimal. 'Absolute path to the project directory' and 'Absolute path to the directory containing images' lack context on format, validation, or what happens if path is invalid.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
darkroom_init modifies state (creates files, appends to .gitignore) but description does not explicitly state this is a destructive/side-effecting operation. No confirmation or dry-run option.