Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.artokun/comfyui-mcp

NPM · COMFYUI-MCP · SCANNED AUG 3

MCP server + Claude Code plugin for ComfyUI: run workflows, generate images, manage models & VRAM.

Available components

+33 this week 79 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (132 of 136), so this covers what we could see, not the whole tree.Partial
  • Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
  • Only part of the dependency tree could be resolved (132 of 136), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to artokun/comfyui-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability81
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 3924 tokens (~89/item across 44 items; 44 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · comfyui-mcp

# add to Claude Code
claude mcp add artokun-comfyui-mcp -- npx -y comfyui-mcp
# add to Codex CLI
codex mcp add artokun-comfyui-mcp -- npx -y comfyui-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "artokun-comfyui-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "comfyui-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add artokun-comfyui-mcp --command npx --arg -y --arg comfyui-mcp
# ~/.hermes/config.yaml
mcp_servers:
  artokun-comfyui-mcp:
    command: "npx"
    args: ["-y", "comfyui-mcp"]
// mcp.json
{
  "mcpServers": {
    "artokun-comfyui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "comfyui-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +57
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • Install scripts: unverified → partial security
    • Malware scan: unverified → pass security
    • The scripts that run when this package is installed changed: postinstall security
    • The attested source repository moved: artokun/comfyui-mcp security
    • Security disclosure: fail → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: unverified → excellent functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Stability: unverified → 0.23 functional
    • First check of Schema quality: unverified functional
    • Licence: MIT functional
  • 31 Jul 26 −7
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 46

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
artokun/comfyui-mcp
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/artokun/comfyui-mcp/.github/workflows/release.yml@refs/tags/v0.4.1
Rekor log index:
1590247100
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:8f8abf74a2788d93e06548b7bb1f9a4ffbd77898e9ea27f1125b966fae9c3c55c5c35e48d4260091cac567537fa926660e513bb9cb2136a350986b00d
Discovery method:
attestation_endpoint
Install scripts 1 script
Hook Tier Command
postinstall unreviewed node scripts/postinstall.mjs
Dependencies 132 packages

132 packages in the resolved dependency tree · 131 deprecated · 49 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 44 exposed · ~3,924 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
analyze_workflow ~222

Load a saved workflow and return a structured analysis — sections, node settings, connections, and data flow. Use this to understand any workflow before modifying or executing it. Returns a concise text summary (not raw JSON) optimized for AI reasoning. Prefer this over get_workflow unless you need the raw JSON for enqueue_workflow or modify_workflow.

NameTypeReqDescription
filenamestringyesWorkflow filename (e.g. 'Scene Builder v3.json'). Use list_workflows to see available files.
sectionstringSection name for detail view. Use view='list' first to see available section names.
viewstringsummary (default): structured text with sections, node IDs, key settings, virtual wires, and full connection graph — best for AI understanding. overview: mermaid diagram showing sections as summary n…

No output schema declared.

No examples provided.

cancel_job ~55

Interrupt/cancel the currently running ComfyUI job. Optionally target a specific running job by prompt_id.

NameTypeReqDescription
prompt_idstringOptional prompt_id to target a specific running job. If omitted, interrupts the current job.

No output schema declared.

No examples provided.

cancel_queued_job ~51

Remove a specific pending job from the ComfyUI queue by prompt_id. Does not affect running jobs.

NameTypeReqDescription
prompt_idstringyesThe prompt_id of the pending job to remove from the queue

No output schema declared.

No examples provided.

clear_queue ~27

Clear all pending jobs from the ComfyUI queue. Does not affect the currently running job.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

clear_vram ~94

Free GPU VRAM by unloading cached models from ComfyUI. Use this between generation runs with different model families (e.g. switching from SDXL to Flux) or when running low on VRAM. Optionally unload only models or only memory.

NameTypeReqDescription
free_memorybooleanFree cached memory/intermediates (default: true)
unload_modelsbooleanUnload all cached models (default: true)

No output schema declared.

No examples provided.

create_workflow ~118

Create a ComfyUI workflow from a named template. Available templates: txt2img, img2img, upscale, inpaint. Returns the complete workflow JSON ready for execution or further modification.

NameTypeReqDescription
paramsobjectTemplate parameters (e.g. checkpoint, positive_prompt, negative_prompt, width, height, steps, cfg, seed, sampler_name, scheduler, denoise, image_path, mask_path, upscale_model)
templatestringyesTemplate name: txt2img, img2img, upscale, or inpaint

No output schema declared.

No examples provided.

download_model ~94

Download a model file to the ComfyUI models directory from a URL (HuggingFace or direct link)

NameTypeReqDescription
filenamestringOverride filename (auto-detected from URL if omitted)
target_subfolderstringyesTarget subfolder under ComfyUI models/ (e.g. 'checkpoints', 'loras', 'vae')
urlstringyesDirect download URL for the model file

No output schema declared.

No examples provided.

enqueue_workflow ~95

Submit a ComfyUI workflow for execution and return immediately with the prompt_id and queue position. Does not wait for completion. Use get_job_status to check progress later, or get_history to retrieve results and images after completion.

NameTypeReqDescription
disable_random_seedbooleanIf true, do not randomize seed values
workflowobjectyesComfyUI workflow in API format (node ID -> {class_type, inputs})

No output schema declared.

No examples provided.

generate_image ~250

Generate an image from a text prompt — the high-level entry point. Builds a txt2img workflow, filling any unspecified parameter from your configured defaults (set_defaults / COMFYUI_DEFAULT_* / config file), auto-selecting a local checkpoint when none is given. Returns the prompt_id immediately; the resulting asset_id arrives in the completion notification and can be passed to view_image or regenerate. For full control over the node graph, use create_workflow + enqueue_workflow instead.

NameTypeReqDescription
batch_sizeintegerNumber of images to generate
cfgnumberCFG scale
checkpointstringCheckpoint filename; auto-selected from local models if omitted
heightintegerImage height
negative_promptstringNegative prompt (default: empty / from defaults)
promptstringyesPositive text prompt
samplerstringSampler name (e.g. euler, dpmpp_2m)
schedulerstringScheduler (e.g. normal, karras)
seedintegerSeed (omit to randomize)
stepsintegerSampling steps
widthintegerImage width

No output schema declared.

No examples provided.

generate_node_skill ~105

Analyze a ComfyUI custom node pack and generate a Claude skill (.md) file describing all its nodes, inputs/outputs, and usage examples. Accepts a ComfyUI Registry ID or a GitHub repository URL as the source.

NameTypeReqDescription
install_instringOptional directory path to save the generated SKILL.md file
sourcestringyesComfyUI Registry node ID (e.g. 'comfyui-impact-pack') or GitHub repository URL

No output schema declared.

No examples provided.

generation_stats ~40

Show local generation tracking statistics — total runs, unique combos, breakdown by model family.

NameTypeReqDescription
model_familystringFilter stats to a specific model family

No output schema declared.

No examples provided.

get_asset_metadata ~57

Get 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.

NameTypeReqDescription
asset_idstringyesAsset id returned by list_assets or job completion

No output schema declared.

No examples provided.

get_defaults ~63

Return the merged view of generation defaults with per-source attribution. Precedence (lowest → highest): config file → COMFYUI_DEFAULT_* env vars → runtime overrides via set_defaults. Per-call MCP tool args always win over these defaults when consumed by a workflow-construction tool.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_embeddings ~34

List installed textual inversion embeddings. These can be used in prompts with the syntax embedding:name (e.g. embedding:easynegative).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_history ~80

Get 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.

NameTypeReqDescription
prompt_idstringSpecific prompt ID to look up (returned by enqueue_workflow). If omitted, returns the most recent execution.

No output schema declared.

No examples provided.

get_image ~130

Fetch a generated image from ComfyUI and return it as an inline image. Works with remote ComfyUI instances — does not require COMFYUI_PATH. Use get_history first to obtain the filename.

NameTypeReqDescription
filenamestringyesOutput image filename, e.g. PulID_Klein_00001_.png
save_dirstringLocal directory to save the image file. Defaults to /tmp/comfyui-images/.
subfolderstringSubfolder within the directory, if any
typestringImage directory: output (default), input, or temp

No output schema declared.

No examples provided.

get_job_status ~40

Check the execution status of a ComfyUI prompt/job by its ID.

NameTypeReqDescription
prompt_idstringyesThe prompt ID returned by enqueue_workflow

No output schema declared.

No examples provided.

get_logs ~90

Get ComfyUI server runtime logs. Useful for debugging execution errors, model loading issues, missing nodes, and Python tracebacks.

NameTypeReqDescription
keywordstringFilter log lines containing this keyword (case-insensitive). Examples: 'error', 'warning', 'VRAM', a node name
max_linesintegerMaximum number of log lines to return from the end (default: 100)

No output schema declared.

No examples provided.

get_node_info ~73

Query ComfyUI's /object_info endpoint to get available node type definitions. Optionally filter by node type name (substring match). Returns node inputs, outputs, and descriptions.

NameTypeReqDescription
node_typestringFilter by node class_type name (case-insensitive substring match). Omit to list all available nodes.

No output schema declared.

No examples provided.

get_node_pack_details ~46

Get detailed information about a specific ComfyUI custom node pack from the Registry

NameTypeReqDescription
idstringyesNode pack ID (e.g. 'comfyui-impact-pack')

No output schema declared.

No examples provided.

get_queue ~22

Get the current ComfyUI execution queue showing running and pending jobs.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_system_stats ~28

Get ComfyUI system information including GPU, VRAM, Python version, and OS details.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_workflow ~152

Load a saved workflow and return its raw JSON. Use analyze_workflow instead if you just need to understand the workflow — it returns a structured summary without flooding context with JSON. Use get_workflow only when you need the actual JSON for enqueue_workflow, modify_workflow, or save_workflow.

NameTypeReqDescription
filenamestringyesWorkflow filename (e.g. 'my_workflow.json'). Use list_workflows to see available files.
formatstringOutput format: 'api' (default, recommended) converts to compact API format with named inputs, connection references, and _meta.mode flags for muted/bypassed nodes. 'ui' returns the raw UI format with…

No output schema declared.

No examples provided.

list_assets ~93

List 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).

NameTypeReqDescription
limitintegerMax records to return (default: all)
sincestringISO timestamp — only return assets created at or after this time

No output schema declared.

No examples provided.

list_local_models ~51

List model files installed in the local ComfyUI models directory

NameTypeReqDescription
model_typestringFilter by model type (e.g. 'checkpoints', 'loras'). Lists all types if omitted.

No output schema declared.

No examples provided.

list_output_images ~86

List recently generated images from ComfyUI's output directory. Returns filenames sorted newest-first. Requires COMFYUI_PATH. For remote ComfyUI, use get_history to find filenames, then get_image to fetch them.

NameTypeReqDescription
limitintegerMax images to return (default: 20)
patternstringFilter by filename pattern (case-insensitive substring match)

No output schema declared.

No examples provided.

list_workflows ~20

List saved workflows from the ComfyUI user library.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mermaid_to_workflow ~130

Convert a Mermaid flowchart diagram back into a ComfyUI workflow JSON. Parses node definitions, connections (with data type labels), and widget values from the mermaid syntax. Resolves node types and wires connections using ComfyUI's /object_info schemas. Fills missing inputs with defaults. Returns a valid, executable ComfyUI API workflow.

NameTypeReqDescription
mermaidstringyesMermaid flowchart text (with or without ```mermaid code fence). Nodes should use ComfyUI class_type names as labels. Connections should be labeled with data types (e.g., -->|MODEL|).

No output schema declared.

No examples provided.

modify_workflow ~103

Apply modification operations to an existing ComfyUI workflow. Supports: set_input, add_node, remove_node, connect, insert_between. Returns the modified workflow JSON and IDs of any newly added nodes.

NameTypeReqDescription
operationsarrayyesArray of operations to apply in order. Each has an 'op' field: set_input, add_node, remove_node, connect, or insert_between
workflowyesComfyUI workflow JSON (as a JSON string or object)

No output schema declared.

No examples provided.

regenerate ~165

Re-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 unless seed is explicitly passed in overrides.

NameTypeReqDescription
asset_idstringyesAsset id of the source generation
disable_random_seedbooleanIf true, do not randomize seed fields. Combine with `overrides.seed` to reproduce the exact original image.
overridesobjectMap of input-name → new value applied to every node that already has that input. Common keys: cfg, steps, sampler_name, scheduler, seed, denoise, text.

No output schema declared.

No examples provided.

restart_comfyui ~49

Restart ComfyUI: stops the running process (capturing its config), waits for the port to free, relaunches with the same arguments, and waits for the API to become ready.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

save_workflow ~80

Save a workflow to the ComfyUI user library so it appears in the web UI. Accepts either API format or UI format JSON.

NameTypeReqDescription
filenamestringyesFilename to save as (e.g. 'my_workflow.json'). Will overwrite if it already exists.
workflowobjectyesWorkflow JSON to save (API or UI format)

No output schema declared.

No examples provided.

search_custom_nodes ~65

Search the ComfyUI Registry for custom node packs by keyword

NameTypeReqDescription
limitintegerMax results to return (default 10)
pageintegerPage number for pagination (default 1)
querystringyesSearch query for custom node packs

No output schema declared.

No examples provided.

search_models ~94

Search HuggingFace for models compatible with ComfyUI (checkpoints, LoRAs, VAEs, etc.)

NameTypeReqDescription
filterstringHuggingFace tag filter (e.g. 'diffusers', 'text-to-image')
limitintegerMax results to return (default 10)
querystringyesSearch query (e.g. 'SDXL', 'flux', 'controlnet')

No output schema declared.

No examples provided.

set_defaults ~115

Update generation defaults. By default updates the in-memory runtime layer (lost on restart). Pass persist=true to also write the change into the config file (~/.config/comfyui-mcp/config.json by default). Use this to avoid repeating common values like width, height, steps, cfg, sampler, checkpoint.

NameTypeReqDescription
persistbooleanIf true, write to the config file in addition to runtime.
valuesobjectyesKey/value map of defaults to set. Keys are typically lowercase (e.g. width, steps).

No output schema declared.

No examples provided.

start_comfyui ~50

Start ComfyUI using process info saved from a previous stop_comfyui call. Supports both Desktop app and manual Python installs. Waits up to 60s for the API to become ready.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

stop_comfyui ~45

Stop the running ComfyUI process. Captures process info so it can be restarted with start_comfyui. Kills the process tree and resets the WebSocket client.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

suggest_settings ~141

Suggest proven sampler/scheduler/steps/CFG settings based on local generation history. Query by model family, LoRA hash, or text search on model/LoRA names.

NameTypeReqDescription
limitintegerMax results (default 10)
lora_hashstringAutoV2 hash (10 chars) of a specific LoRA to find settings for
model_familystringModel family to query (e.g. 'qwen_image', 'sdxl', 'flux', 'illustrious')
searchstringFull-text search on model/LoRA filenames (e.g. 'copax', 'lightning')

No output schema declared.

No examples provided.

upload_image ~101

Upload a local image file to ComfyUI's input/ directory so it can be referenced in LoadImage nodes. Tries HTTP upload first (works with remote ComfyUI), falls back to filesystem copy when COMFYUI_PATH is set.

NameTypeReqDescription
filenamestringOverride the filename in ComfyUI's input/ directory. Auto-detected from source path if omitted.
source_pathstringyesAbsolute path to the local image file to upload

No output schema declared.

No examples provided.

validate_workflow ~64

Validate a ComfyUI workflow without executing it. Checks for missing node types, broken connections, invalid output indices, missing models, and other issues. Returns a list of errors and warnings.

NameTypeReqDescription
workflowyesComfyUI workflow in API format (JSON string or object)

No output schema declared.

No examples provided.

view_image ~97

Fetch 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); audio/video assets must be saved to disk via get_image.

NameTypeReqDescription
asset_idstringyesAsset id returned by list_assets or job completion

No output schema declared.

No examples provided.

visualize_workflow ~113

Convert a ComfyUI workflow JSON into a Mermaid flowchart diagram. Returns mermaid syntax showing nodes grouped by category (loading, conditioning, sampling, image, output) with connections labeled by data type.

NameTypeReqDescription
directionstringFlowchart direction: LR (left-to-right) or TB (top-to-bottom)
show_valuesbooleanInclude widget values (seed, steps, cfg, etc.) in node labels
workflowyesComfyUI workflow JSON (as a JSON string or object)

No output schema declared.

No examples provided.

visualize_workflow_hierarchical ~221

Visualize a large ComfyUI workflow as a hierarchical diagram. Detects logical sections using node categories from /object_info, resolves Get/Set virtual wires, and produces either a compact overview (sections as summary nodes), a detailed view of one section, or a text listing of all sections. Best for workflows with 20+ nodes.

NameTypeReqDescription
directionstringFlowchart direction (default: TB for overview, LR for detail)
sectionstringSection name to show in detail view (required when view=detail). Use view=list to see available section names.
show_valuesbooleanInclude widget values in node labels (detail view only)
viewstringoverview: compact diagram with sections as summary nodes; detail: full diagram for one section; list: text summary of all sections; summary: structured text optimized for AI ingestion with node IDs,…
workflowyesComfyUI workflow in API format or UI format (auto-detected)

No output schema declared.

No examples provided.

workflow_from_image ~75

Extract embedded ComfyUI workflow metadata from a PNG file. ComfyUI stores the full workflow (API format) and prompt data in PNG tEXt chunks. Use this to reverse-engineer how any ComfyUI image was generated.

NameTypeReqDescription
image_pathstringyesAbsolute path to a ComfyUI-generated PNG file

No output schema declared.

No examples provided.