comfyui-mcp (sandyup/comfyui-mcp) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 31 tools. No publisher has claimed this listing.
MCP server + Claude Code plugin for ComfyUI — execute workflows, generate images, visualize pipelines, manage models, control VRAM, and explore custom nodes, all from your AI coding assistant.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
sandyup
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
list_api_nodesList hosted partner/API nodes available on the connected ComfyUI (e.g. Flux/BFL, Ideogram, Kling, Stability). These call external image/video providers and run server-side, requiring a Comfy account/API key configured on the ComfyUI server. Returns an empty list if the server has no API nodes (or th…
get_api_node_schemaReturn the input schema for a specific API/partner node from the connected ComfyUI's /object_info. Lists visible inputs (with types/defaults/options), hidden inputs (server-filled auth), and outputs. Use list_api_nodes first to find a class_type.
generate_with_api_nodeBuild a minimal single-node workflow that runs a chosen API/partner node with the provided inputs and enqueue it. Returns immediately with the prompt_id (use get_job_status / get_history for results). Do NOT pass auth credentials in inputs — the ComfyUI server injects those from its logged-in sessio…
view_imageFetch a registered asset's bytes and return them as an inline image so the agent can see the result. Use this after enqueue_workflow completes (asset_id is included in the completion notification) to inspect, critique, or compare generated images. Only supports image mime types (PNG/JPEG/WebP); audi…
list_assetsList recently generated assets from the in-memory registry, newest-first. Assets are registered automatically when a workflow completes successfully. The registry is ephemeral and clears on server restart; records expire after COMFYUI_ASSET_TTL_HOURS (default 24h).
get_asset_metadataGet full provenance for a registered asset including the workflow snapshot that produced it. Use this to inspect the parameters that generated an image before calling regenerate with overrides.
regenerateRe-enqueue the workflow that produced an existing asset, optionally applying parameter overrides. Overrides are applied to any node input matching the key name (e.g. cfg, steps, sampler_name, scheduler, seed, denoise, text). Seeds are re-randomized by default so each regenerate yields a fresh image …
analyze_colorMeasure the color of a rendered image (not by eye): returns black/white points, contrast (luma std), saturation, per-channel means + cast, and clipping — plus heuristic flags (washedOut, lowContrast, liftedBlacks, dimHighlights, lowSaturation, colorCast) and a one-line verdict. Source = asset_id, a …
list_toolsList every comfyui-mcp capability as a token-light catalog: tool names with one-line summaries, grouped by category. Start here. Then use describe_tool to get a tool's parameters and call_tool to run it.
describe_toolGet the full description and JSON Schema of one tool from the catalog. Always call this before the first call_tool of a tool you haven't used in this session.
call_toolExecute a tool from the catalog by name. Pass its parameters in `args` (object). The result is exactly what the underlying tool returns.
get_defaultsset_defaultsget_logsGet ComfyUI server runtime logs. Useful for debugging execution errors, model loading issues, missing nodes, and Python tracebacks.
get_historyGet execution history for a ComfyUI prompt. Returns status, timing, cached nodes, output details, and full error information including Python tracebacks. Use after a failed enqueue_workflow to diagnose what went wrong.
list_extra_pathsadd_extra_pathremove_extra_pathgenerate_audiogenerate_with_controlnetGenerate an image conditioned by a ControlNet preprocessed image (pose skeleton, depth, canny, normal, etc.) plus a text prompt. Upload the control image first with upload_image, then pass its filename as control_image. Unspecified params fall back to your defaults; checkpoint and controlnet_model a…
generate_with_ip_adapterGenerate an image guided by a reference image's style/subject via IP-Adapter, plus a text prompt. Requires the ComfyUI_IPAdapter_plus custom nodes. Upload the reference first with upload_image, then pass its filename as reference_image. Unspecified params fall back to your defaults; checkpoint auto-…
generate_imagegenerate_videosuggest_settingsRecommend concrete, proven sampler/scheduler/steps/CFG (and denoise/shift/LoRA) settings derived from THIS MCP server's local generation-history database (populated as you run workflows; not from ComfyUI). Read-only and works without a running ComfyUI. Narrow results by model_family, lora_hash, or a…
generation_statsShow statistics from this MCP server's local generation-history database (populated as you run workflows; not from ComfyUI itself): total generations, count of unique sampler/scheduler/steps/CFG combos, a per-model-family breakdown, and the most-reused settings. Read-only; works without a running Co…
health_checkPre-flight diagnostic for the connected ComfyUI: one call that aggregates the signals an agent should check before dispatching a batch. Reports ComfyUI version/Python/PyTorch, GPU name + VRAM free/total, system RAM free, queue depth (running + pending), per-category /models populations (catches empt…
convert_imageRe-encode a generated image to PNG, JPEG, or WebP and return it inline as an image content block. Source can be a registered asset_id or a path under the local ComfyUI output directory. Optionally writes the converted image back under the output directory and reports source/output size plus bytes sa…
get_imagestage_output_as_inputworkflow_from_imagelist_output_imagesList recently generated image AND video files from ComfyUI's output/ directory, newest-first, with each file's kind ('image' | 'video'), subfolder, size, and modification time. Covers stills (.png/.jpg/.jpeg/.bmp) and video/animation outputs (.mp4/.webm/.mov/.mkv/.m4v/.avi/.gif/.webp). LOCAL ComfyUI…
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
ANTHROPIC_API_KEYARENA_APIARENA_API_KEYARENA_BASE_URLARENA_MAX_ROUNDSARENA_MODELSARENA_OUTARENA_SCENARIO_TIMEOUT_MSARENA_TIERAWS_ACCESS_KEY_IDAWS_REGIONAWS_S3_ENDPOINTAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENAZURE_STORAGE_ACCOUNTAZURE_STORAGE_KEYBRIDGE_URLCAP_MSCOMFYUI_ALWAYS_RESTARTfalse Auto-restart a crashed local ComfyUI (bounded by COMFYUI_RESTART_MAX_ATTEMPTS / COMFYUI_RESTART_WINDOW_S)COMFYUI_API_KEYCloud is set (targets [Comfy Cloud](https://cloud.comfy.org)) no — HTTP primitives route via cloud.comfy.org over X-API-Key; WebSocket and local-only tools throw CLOUD_UNSUPPORTEDCOMFYUI_ASSET_TTL_HOURSCOMFYUI_AUTH_HEADERAuthorization Header name for COMFYUI_AUTH_TOKEN (e.g. X-API-Key).COMFYUI_AUTH_SCHEMEBearer for Authorization, else none Scheme prefix on the token value (e.g. Bearer, Token).COMFYUI_AUTH_TOKENGeneric auth token for a self-hosted ComfyUI behind a reverse proxy / API gateway (distinct from Comfy Cloud). When set, attached to every ComfyUI request. Never logged.COMFYUI_CLOUD_URLCOMFYUI_DOWNLOAD_CACHE_DIR~/.comfyui-mcp/cache Content-addressed model-download cache (dedup + concurrent coalescing)COMFYUI_HOST127.0.0.1 ComfyUI server addressCOMFYUI_JOB_POLL_INTERVAL_SCOMFYUI_JOB_TIMEOUT_SCOMFYUI_LRU_CACHE_SIZE_GB0 Cap the download cache in GB; 0 disables LRU evictionCOMFYUI_MCP_AGENT_ALLOWED_MODELSCOMFYUI_MCP_AGENT_MODELCOMFYUI_MCP_AGENT_POCCOMFYUI_MCP_AGENT_PORTCOMFYUI_MCP_AGENT_TOKENCOMFYUI_MCP_AGENT_TUNNELCOMFYUI_MCP_BRIDGE_HOSTCOMFYUI_MCP_BRIDGE_PORTCOMFYUI_MCP_BRIDGE_TOKENCOMFYUI_MCP_CLAUDE_JSONCOMFYUI_MCP_CODEX_MODELCOMFYUI_MCP_CODEX_SANDBOXCOMFYUI_MCP_DATA_DIRCOMFYUI_MCP_FORCE_REMOTE1) alongside --comfyui-url/COMFYUI_URL to forceCOMFYUI_MCP_GEMINI_MODELCOMFYUI_MCP_INSECURE_BRIDGECOMFYUI_MCP_INTERRUPT_RELEASE_MSCOMFYUI_MCP_INTERRUPT_S30 Seconds cancel_job waits for an interrupt to actually stop a job before escalating to /free and reporting it wedgedCOMFYUI_MCP_OLLAMA_APICOMFYUI_MCP_OLLAMA_API_KEYCOMFYUI_MCP_OLLAMA_BASE_URLCOMFYUI_MCP_OLLAMA_MAX_TOKENSCOMFYUI_MCP_OLLAMA_MODELCOMFYUI_MCP_OPENROUTER_MODELCOMFYUI_MCP_PANEL_EFFORTCOMFYUI_MCP_PANEL_MCP_PORTCOMFYUI_MCP_PANEL_MODELCOMFYUI_MCP_PANEL_SECRETSCOMFYUI_MCP_PANEL_SETTINGSCOMFYUI_MCP_PARENT_PIDCOMFYUI_MCP_PARENT_STARTED_AT_MSCOMFYUI_MCP_PROGRESS_DIRCOMFYUI_MCP_RELAY_KEYCOMFYUI_MCP_RELAY_URLCOMFYUI_MCP_STALL_S180 Render-wedge watchdog: seconds a sampler step can re-emit the same progress before a STALL/BACKLOG note is prepended to the agent's next turn (clamped 15–3600s; live-tunable from the panel)COMFYUI_MCP_TEST_ATTEMPTSCOMFYUI_MCP_TOOL_TRACECOMFYUI_MCP_TRANSCRIPT_DIRCOMFYUI_MCP_TUNNEL_BACKENDCOMFYUI_MCP_TURN_IDLE_MSCOMFYUI_PATHRemote --comfyui-url / COMFYUI_URL points at a non-loopback host, or --force-remote is set no — server skips auto-detection so stale local installs can't silently absorb uploadsCOMFYUI_PORT(auto-detect) ComfyUI server port (tries 8188, then 8000)COMFYUI_PYTHONCOMFYUI_SKILL_CACHE_DIRCOMFYUI_SSLCOMFYUI_URLThis is sugar for --panel-orchestrator with set from the URL: theCOMFYUI_WORKFLOWS_DIRCOMFY_API_KEYCOMFY_HOSTCOMFY_PORTDURATION_MSGEMINI_CLI_HOMEGITHUB_TOKENGitHub token for skill generation (avoids rate limits)HF_TOKENHUGGINGFACE_TOKENHuggingFace token for higher API rate limitsLOG_ORCHOLLAMA_HOSTOLLAMA_MODELOPENROUTER_API_KEYPANEL_AGENT_BACKENDREGISTRY_ACCESS_TOKENComfy Registry API key for publish_custom_node (env-only, never logged)RUNPOD_API_KEYRUNPOD_DONORRUNPOD_TEMPLATE_IDSCENARIO_CAP_MSSCENARIO_FILTERSEED_NODESSKIP_TEMPLATESMOKE_BASE_URLSMOKE_BRIDGE_PORTSMOKE_MODELSSMOKE_TURN_TIMEOUT_MSTASKTEST_PORTXDG_CONFIG_HOMEAZURE_STORAGE_CONNECTION_STRINGTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
31/31 tools missing one or more hints — list_api_nodes (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_api_node_schema (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); generate_with_api_node (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +28 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
Only 10/31 tool handlers declare input schemas (32%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
29/31 tool handlers wrap calls in try/catch (94%)
Wrap each tool handler body in try/catch and return a structured error response.
Tool test coverage
Only 4/31 tools referenced in tests (13%)
Write tests that reference each tool by name so every tool has at least one test.
Shell command execution
24 child_process calls — runs shell commands
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
No arbitrary install scripts
Has postinstall/preinstall script — runs arbitrary code on npm install
Remove postinstall/preinstall hooks unless they’re essential.
Production dependencies are patched
0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.1 (high), @modelcontextprotocol/sdk@1.12.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/sandyup/comfyui-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check