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
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
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
claude mcp add artokun-comfyui-mcp -- npx -y comfyui-mcp
codex mcp add artokun-comfyui-mcp -- npx -y comfyui-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"artokun-comfyui-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"comfyui-mcp"
],
"enabled": true
}
}
} openclaw mcp add artokun-comfyui-mcp --command npx --arg -y --arg comfyui-mcp
mcp_servers:
artokun-comfyui-mcp:
command: "npx"
args: ["-y", "comfyui-mcp"] {
"mcpServers": {
"artokun-comfyui-mcp": {
"command": "npx",
"args": [
"-y",
"comfyui-mcp"
]
}
}
} 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.
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.
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | yes | Workflow filename (e.g. 'Scene Builder v3.json'). Use list_workflows to see available files. |
| section | string | — | Section name for detail view. Use view='list' first to see available section names. |
| view | string | — | summary (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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt_id | string | — | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt_id | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| free_memory | boolean | — | Free cached memory/intermediates (default: true) |
| unload_models | boolean | — | Unload 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.
| Name | Type | Req | Description |
|---|---|---|---|
| params | object | — | Template parameters (e.g. checkpoint, positive_prompt, negative_prompt, width, height, steps, cfg, seed, sampler_name, scheduler, denoise, image_path, mask_path, upscale_model) |
| template | string | yes | Template 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)
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | — | Override filename (auto-detected from URL if omitted) |
| target_subfolder | string | yes | Target subfolder under ComfyUI models/ (e.g. 'checkpoints', 'loras', 'vae') |
| url | string | yes | Direct 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.
| Name | Type | Req | Description |
|---|---|---|---|
| disable_random_seed | boolean | — | If true, do not randomize seed values |
| workflow | object | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| batch_size | integer | — | Number of images to generate |
| cfg | number | — | CFG scale |
| checkpoint | string | — | Checkpoint filename; auto-selected from local models if omitted |
| height | integer | — | Image height |
| negative_prompt | string | — | Negative prompt (default: empty / from defaults) |
| prompt | string | yes | Positive text prompt |
| sampler | string | — | Sampler name (e.g. euler, dpmpp_2m) |
| scheduler | string | — | Scheduler (e.g. normal, karras) |
| seed | integer | — | Seed (omit to randomize) |
| steps | integer | — | Sampling steps |
| width | integer | — | Image 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.
| Name | Type | Req | Description |
|---|---|---|---|
| install_in | string | — | Optional directory path to save the generated SKILL.md file |
| source | string | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| model_family | string | — | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset 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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt_id | string | — | Specific 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | yes | Output image filename, e.g. PulID_Klein_00001_.png |
| save_dir | string | — | Local directory to save the image file. Defaults to /tmp/comfyui-images/. |
| subfolder | string | — | Subfolder within the directory, if any |
| type | string | — | Image 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.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt_id | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | — | Filter log lines containing this keyword (case-insensitive). Examples: 'error', 'warning', 'VRAM', a node name |
| max_lines | integer | — | Maximum 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.
| Name | Type | Req | Description |
|---|---|---|---|
| node_type | string | — | Filter 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
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Node 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | yes | Workflow filename (e.g. 'my_workflow.json'). Use list_workflows to see available files. |
| format | string | — | Output 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).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max records to return (default: all) |
| since | string | — | ISO 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
| Name | Type | Req | Description |
|---|---|---|---|
| model_type | string | — | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max images to return (default: 20) |
| pattern | string | — | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| mermaid | string | yes | Mermaid 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.
| Name | Type | Req | Description |
|---|---|---|---|
| operations | array | yes | Array of operations to apply in order. Each has an 'op' field: set_input, add_node, remove_node, connect, or insert_between |
| workflow | — | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset id of the source generation |
| disable_random_seed | boolean | — | If true, do not randomize seed fields. Combine with `overrides.seed` to reproduce the exact original image. |
| overrides | object | — | Map 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | yes | Filename to save as (e.g. 'my_workflow.json'). Will overwrite if it already exists. |
| workflow | object | yes | Workflow 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
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results to return (default 10) |
| page | integer | — | Page number for pagination (default 1) |
| query | string | yes | Search 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.)
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | — | HuggingFace tag filter (e.g. 'diffusers', 'text-to-image') |
| limit | integer | — | Max results to return (default 10) |
| query | string | yes | Search 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.
| Name | Type | Req | Description |
|---|---|---|---|
| persist | boolean | — | If true, write to the config file in addition to runtime. |
| values | object | yes | Key/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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results (default 10) |
| lora_hash | string | — | AutoV2 hash (10 chars) of a specific LoRA to find settings for |
| model_family | string | — | Model family to query (e.g. 'qwen_image', 'sdxl', 'flux', 'illustrious') |
| search | string | — | Full-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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | — | Override the filename in ComfyUI's input/ directory. Auto-detected from source path if omitted. |
| source_path | string | yes | Absolute 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.
| Name | Type | Req | Description |
|---|---|---|---|
| workflow | — | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset 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.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | — | Flowchart direction: LR (left-to-right) or TB (top-to-bottom) |
| show_values | boolean | — | Include widget values (seed, steps, cfg, etc.) in node labels |
| workflow | — | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | — | Flowchart direction (default: TB for overview, LR for detail) |
| section | string | — | Section name to show in detail view (required when view=detail). Use view=list to see available section names. |
| show_values | boolean | — | Include widget values in node labels (detail view only) |
| view | string | — | overview: 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,… |
| workflow | — | yes | ComfyUI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| image_path | string | yes | Absolute path to a ComfyUI-generated PNG file |
No output schema declared.
No examples provided.