MCP server providing tools to interact with a local ComfyUI instance via REST API. Enables workflow submission, model management, node inspection, image upload/download, and job control.
This server has significant definition quality gaps. Tool names lack action verbs (e.g., 'stats', 'models', 'nodes' instead of 'get_stats', 'list_models', 'describe_nodes'). Most parameter descriptions are minimal (10-30 chars), well below the 72-char baseline. No output schemas are documented. Error handling is absent, tools fail silently or with raw HTTP errors. The 'submit' tool combines workflow queuing, polling, and downloading into one operation, violating single-responsibility. Input schemas are present but sparse; many lack type constraints or enums. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels.
unload models, free VRAM
cancel current generation
list models of a type
list all node classes, or one node's spec
print server version + GPU/VRAM
queue API-format workflow, poll, download
upload image to /input folder (multipart)
Tool names lack action verbs. 'stats', 'models', 'nodes' should be 'get_stats', 'list_models', 'describe_nodes'. LLMs infer intent from verb-noun patterns; bare nouns are ambiguous.
Parameter descriptions are too short (10-30 chars vs 72-char baseline). E.g., 'type' in models lacks context; 'timeout' in submit lacks range/units. Descriptions must explain WHAT, WHEN, and FORMAT.
No output schemas documented. LLMs cannot plan downstream calls or extract fields. E.g., 'models' returns a list but no schema for item structure; 'submit' returns file paths but no schema for download results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
'submit' tool combines three concerns: queue workflow, poll history, download outputs. Should split into queue_workflow + poll_workflow + download_outputs for composability.
No error handling guidance. Tools fail with raw HTTP errors (e.g., 'HTTP 404 for /models/invalid_type'). Errors must tell LLM what to do next: 'Invalid model type. Valid types: checkpoints, loras, vae, diffusion_models, text_encoders, clip, controlnet, upscale_models.'