ComfyUI custom nodes for posting images, fetching model/image metadata, and interacting with Civitai daily challenges via the Civitai MCP server.
This is a ComfyUI custom node package, not a true MCP server. It wraps a remote Civitai MCP service via HTTP JSON-RPC calls. Tool definitions are present with descriptions and schemas, but several critical gaps exist: (1) Most tools lack error recovery guidance, errors are surfaced but not actionable. (2) Parameter descriptions are present but often generic; many lack format/constraint details. (3) Output schemas are not documented, LLMs cannot predict response structure. (4) No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions. (5) Naming is verb-noun compliant but some tools are overly specific (CivitaiGetImageMetadata vs CivitaiGetImageMetadataJSON, confusing distinction). (6) Security: API key handling is correct (server-side injection via env/file), but no audit logging visible.
Retrieves the current user's account status and information from Civitai.
Creates a Civitai post containing multiple images with optional metadata, title, description, and workflow embedding. Splits large batches across multiple posts if needed.
Queries the active daily challenge and returns its details.
Downloads an image from Civitai by ID and returns it as a tensor.
Fetches metadata for a Civitai image by ID.
Fetches metadata for a Civitai image by ID and returns it as a parsed JSON object.
Fetches metadata for a Civitai model by ID.
Output schemas not documented. LLMs cannot predict response structure for any tool. No documentation of what fields are returned, their types, or how to chain results to downstream tools.
Confusing tool naming: CivitaiGetImageMetadata vs CivitaiGetImageMetadataJSON. Both fetch the same resource but return different formats. LLMs will struggle to pick the right one. Should be get_image_metadata (default) and get_image_metadata_as_json, or clarify in descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2025-06-18+ | v2 |
LoadImage-style node that also recovers embedded generation metadata from PNG parameters text chunk or JPEG EXIF UserComment.
Load every image in a directory, each with its embedded metadata. Returns parallel lists (IMAGE / a1111_params / filename) so a downstream Civitai Create Post (INPUT_IS_LIST) can post the whole batch with per-image metadata.
Break an A1111/Civitai parameters string into individual typed fields (prompt, negative_prompt, seed, steps, cfg_scale, sampler_name, width, height).
Posts a single image to Civitai with optional metadata, title, description, and workflow embedding.
Error handling lacks recovery guidance. civitai_api.py raises generic exceptions ('Civitai API Error', 'MCP Tool Execution Error') without actionable next steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are clearly marked READ_ONLY or WRITE in metadata, but this is not exposed to LLMs via MCP tool annotations. LLMs cannot infer safety/idempotency.
Parameter descriptions lack format/constraint details. E.g., 'image_id' has no hint about valid range or format. 'directory' has no guidance on absolute vs relative paths.