Comfyui MCP

by artokun• 881•• Scanned•Claim this listing•Request removal
Design & Mediaagent skillsai agentclaude codeclaude plugincomfyui

Local-first, agent-native control plane for ComfyUI — MCP server + sidebar agent that generates images, video & audio, authors and runs workflows, and edits your live graph in natural language on ANY LLM (Claude, ChatGPT, Gemini, offline Ollama, or any hosted model). 178 tools, 36 AI skills, 55 installer packs. Local, LAN, VPS, or Comfy Cloud.

Comfyui MCP is an open-source mcp server by artokun, written mainly in TypeScript, with 881 GitHub stars and the MIT license. Its code was last updated Oct 26, 2026.

Scan summary: scanned Nov 5, 2026 at commit 707474d. Seen able to read environment and secrets. Scan policy

Scanned
Full scan at 707474d · Nov 5, 2026
Scanned Builds Boots No undeclared egress Reproducible
Static code scanwarn
Secrets scanfail
Dependency audit74 known vulnerabilitiesfail
Manifestserver.jsonpass
Buildpass
Boot & handshake41 toolspass
Network egresspass
Reproducible (×3)pass

Findings (52)

  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    secrets issue
    Details are available to the maintainer after claiming this listing.
  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • medium
    body-parser@2.2.2: 2 known vulnerabilities
    GHSA-27r3-jxmh-p828, GHSA-v422-hmwv-36x6
    package-lock.json
  • medium
    fast-uri@3.1.2: 11 known vulnerabilities
    GHSA-333x-w4r6-6crp, GHSA-4c8g-83qw-93j6, GHSA-7p8r-x3mc-p8w7, GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf +6 more
    package-lock.json
  • medium
    hono@4.12.23: 17 known vulnerabilities
    GHSA-54fx-42gc-7vw4, GHSA-5r4p-p66f-jhc7, GHSA-79qm-7rj5-m7r9, GHSA-88fw-hqm2-52qc, GHSA-8j4g-w8fx-2239 +12 more
    package-lock.json
  • medium
    ip-address@10.2.0: 8 known vulnerabilities
    GHSA-22jq-vg5j-6vgg, GHSA-2vr4-cq9g-pvrc, GHSA-4xrf-jv44-h6hh, GHSA-h3mg-xc3c-68pw, GHSA-j6r3-76f7-8jcv +3 more
    package-lock.json
  • medium
    sharp@0.35.3: 2 known vulnerabilities
    GHSA-rgj7-g3m4-5g8c, GHSA-wq5f-xc86-pv6w
    package-lock.json
  • medium
    source-map-js@1.2.1: 1 known vulnerability
    GHSA-68fv-2mgg-jv7q
    package-lock.json
  • medium
    undici@7.29.0: 18 known vulnerabilities
    GHSA-2gqq-gqf2-x968, GHSA-2jfj-6hjv-fm6j, GHSA-2m5v-pch6-74hx, GHSA-3wwx-pv8p-q78v, GHSA-3xpg-4rpp-hhhm +13 more
    package-lock.json
  • medium
    vite@8.2.2: 6 known vulnerabilities
    GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-9jrq-w75r-8gcw, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22 +1 more
    package-lock.json
  • medium
    zod@4.4.3: 1 known vulnerability
    GHSA-mrhx-c7xc-m3w5
    package-lock.json
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:49
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:110
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:152
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:167
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:181
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/comfyui/timeout-panel-origin-drift.test.ts:210
  • low
    In tests/examples/docs: Executes dynamically built code (eval / new Function / vm).
    src/__tests__/orchestrator/panel-console-http.test.ts:196
  • low
    In tests/examples/docs: Executes dynamically built code (eval / new Function / vm).
    src/__tests__/orchestrator/panel-console-i18n.test.ts:177
  • low
    In tests/examples/docs: Touches a sensitive credential location (SSH keys, cloud credentials, browser data or wallets). Expected for some tools, such as browser automation; check why.
    src/__tests__/orchestrator/pi-credentials.test.ts:435
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/orchestrator/pi-credentials.test.ts:839
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/orchestrator/pi-credentials.test.ts:860
  • low
    In tests/examples/docs: Executes dynamically built code (eval / new Function / vm).
    src/__tests__/orchestrator/probeok-hoisting.test.ts:66
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/services/download-proxy.test.ts:70
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/services/frontend-virtual-types.test.ts:65
  • low
    In tests/examples/docs: Touches a sensitive credential location (SSH keys, cloud credentials, browser data or wallets). Expected for some tools, such as browser automation; check why.
    src/__tests__/services/runpod-ssh.test.ts:147
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/tools/apps.test.ts:197
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/tools/run-workflow-url.test.ts:143
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/tools/run-workflow-url.test.ts:183
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/comfyui/enqueue-error-redaction.test.ts:15
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/comfyui/json-guard-base-url-redaction.test.ts:21
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/comfyui/enqueue-missing-input-media.test.ts:431
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/comfyui/cloud-key-redaction.test.ts:16
  • low
    Possible example credential in docs/tests: generic-api-key
    2 matches in this file
    src/__tests__/comfyui/client-fetch-json-guard.test.ts:432
  • low
    Possible example credential in docs/tests: jwt
    src/__tests__/comfyui/log-overredaction.test.ts:111
  • low
    Possible example credential in docs/tests: generic-api-key
    2 matches in this file
    src/__tests__/comfyui/log-overredaction.test.ts:146
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/services/manifest-outcome-channel.test.ts:16
  • low
    Possible example credential in docs/tests: aws-access-token
    src/__tests__/services/respawn-orphans-downloads.test.ts:96
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/services/manager-install-model-cause.test.ts:112
  • low
    Possible example credential in docs/tests: generic-api-key
    4 matches in this file
    src/__tests__/services/manager-error-body.test.ts:146
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/comfyui/json-guard.test.ts:746
  • low
    Possible example credential in docs/tests: generic-api-key
    src/__tests__/services/node-management.test.ts:4645
  • low
    @hono/node-server@1.19.14: 2 known vulnerabilities
    GHSA-frvp-7c67-39w9, GHSA-rmxm-3fg6-px4f
    package-lock.json
  • low
    @vitest/mocker@4.1.11: 2 known vulnerabilities
    GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp
    package-lock.json
  • low
    qs@6.15.2: 3 known vulnerabilities
    GHSA-4mjr-xmp4-gh2g, GHSA-6pq8-jhm2-2vcw, GHSA-x5fp-wj9c-mxmx
    package-lock.json
  • low
    package.json has a prepare script
    tsc
    package.json
  • low
    Reads environment variables not listed in the manifest
    COMFYUI_URL, COMFYUI_HOST, COMFY_HOST, COMFYUI_SSL, COMFYUI_PORT, COMFY_PORT, COMFYUI_MCP_CHANGELOG_ROOT, CHANGELOG_ROOT, TEST_PORT, CAP_MS, SCENARIO_CAP_MS, COMFYUI_WORKFLOWS_DIR, COMFYUI_PATH, BRIDGE_URL, TASK

Network activity

During install
github.comnodejs.orgregistry.npmjs.orgrelease-assets.githubusercontent.com
While running
No connections

Tools exposed (41)

  • comfy_cli

    Drive the official comfy-cli (envelope/1 JSON contract) for the selected ComfyUI environment. The MCP resolves `comfy` from COMFY_CLI_PATH, PATH, or the selected workspace's .venv/venv. Driven by the `action` parameter: - action:"status" — Inspect the comfy-cli integration and selected environment (

  • enqueue_workflow

    Submit work to the ComfyUI execution queue — the primary way an agent starts a render. Driven by the `action` parameter: - action:"enqueue" — Submit an API-format workflow you are already holding (one you built with create_workflow, loaded with get_workflow, or edited with create_workflow action:"mo

  • get_system_stats

    Inspect the connected ComfyUI server: what it is running on, what it has logged, and whether it is healthy enough to dispatch work to. All three actions are READ-ONLY — nothing here mutates anything. Driven by the `action` parameter: - action:"stats" — Get system information from the connected Comfy

  • visualize_workflow

    DRAW a diagram of, or convert, workflow JSON you PASS IN (a JSON string or object) — it does NOT read the user's live canvas, so for 'show me what's on the canvas' / the CURRENTLY-OPEN graph use panel_graph_outline instead. Driven by the `action` parameter: - action:"render" — Mermaid flowchart of t

  • create_workflow

    Author and check ComfyUI workflow JSON. Driven by the `action` parameter: - action:"create" — Create a ready-to-run API-format workflow from a built-in template (txt2img, img2img, upscale, inpaint, controlnet, ip_adapter, ace_step_15, stable_audio_3, remove_background, ltx_video). Pure local generat

  • queue

    Inspect and manage the ComfyUI execution queue. Driven by the `action` parameter: - action:"list" — The job running now plus all pending jobs, each with its prompt_id and position. Read-only; requires a reachable ComfyUI server (works against local or remote --comfyui-url). Omits queued workflow pay

  • search_custom_nodes

    Discover ComfyUI custom node PACKS in the public ComfyUI Registry (registry.comfy.org). Read-only and network-only: queries the hosted registry over HTTP and does NOT require a running ComfyUI or COMFYUI_PATH. This searches node PACKS, not models (use download_model action:"search") and not local in

  • download_model

    Find model weights and get them onto the connected ComfyUI, and track the transfers. Driven by the `action` parameter: - action:"download" — Download a model file to the connected ComfyUI's models directory from a URL (HuggingFace, direct HTTP(S), s3://, or Azure Blob). Requires `url` + `target_subf

  • list_local_models

    Inspect what models this ComfyUI has installed, and where it looks for them. Driven by the `action` parameter: - action:"list" — List model files available to the connected ComfyUI, grouped by type. Read-only. Queries ComfyUI's /models REST endpoint first (works with remote ComfyUI and respects extr

  • get_history

    Read what has already been generated on this machine — execution history, why a run failed, and the settings your past renders actually used. Driven by the `action` parameter: - action:"list" — Execution history for a ComfyUI prompt: status, timing, cached nodes, and output details (media filenames

  • runpod

    Deploy, start, stop, inspect and connect to RunPod cloud GPU pods, and switch rendering between your local machine and a pod. Driven by the `action` parameter. SPENDS MONEY: action:"create" and action:"start" put a pod into a billing state; action:"stop" ends GPU billing. Confirm with the user befor

  • runpod_watch

    Watch a RunPod pod's live status in the control panel, stop watching it, or diagnose why it isn't usable. Driven by the `action` parameter. None of these actions DEPLOYS or resumes a pod — the runpod tool does that. One of them CAN stop one, though: action:"watch" arms the idle auto-stop, so a watch

  • get_workflow

    Return, list, summarize or query a SAVED workflow FILE — files on disk, named from the library or given as a path/JSON — NOT the graph open on the user's canvas (that is panel_graph_outline). Every action here is READ-ONLY; saving and locking are save_workflow. Driven by the `action` parameter: - ac

  • save_workflow

    WRITE to the ComfyUI user library: persist a workflow, or capture/verify its provenance lock. This is the only tool here that writes — reading is get_workflow. Driven by the `action` parameter: - action:"save" — Save a workflow JSON to the connected ComfyUI server's user library so it appears in the

  • restart_comfyui

    Control the lifecycle of the ComfyUI server process. Driven by the `action` parameter: - action:"restart" — Restart ComfyUI: stops the running process (capturing its config), waits for the port to free, relaunches with the same arguments, and polls the API for bounded readiness. Also works against a

  • get_image

    Fetch, browse and inspect ComfyUI images and registered assets. Driven by the `action` parameter: - action:"get" — Fetch a generated image from ComfyUI by FILENAME and return it as an inline image. Video/audio outputs (e.g. a VHS_VideoCombine .mp4) and allowlisted mesh/material attachments (.obj, .g

  • upload_image

    Put a file where ComfyUI (or cloud storage) can read it. Driven by the `action` parameter: - action:"image" — Upload a local image file to the connected ComfyUI's input/ directory via the HTTP /upload/image endpoint so it can be referenced in LoadImage nodes. Works for both local and remote ComfyUI.

  • clear_vram

    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.

  • get_defaults

    Read and write settings — either OUR generation defaults or ComfyUI's own frontend UI settings. These are two SEPARATE stores and the `action` says which one you mean: - action:"get" — Return the merged view of OUR generation defaults with per-source attribution. Precedence (lowest → highest): confi

  • generate_image

    Generate media from a prompt or an existing image — the high-level entry points that build the graph for you. Every action enqueues on the connected ComfyUI and returns the prompt_id immediately; the resulting asset_id arrives in the completion notification. Driven by the `action` parameter: - actio

  • node_snapshot

    Custom-node snapshots via ComfyUI-Manager (mirrors `comfy node save-snapshot` / `restore-snapshot`). Driven by the `action` parameter: - action:"list" — List the snapshots ComfyUI-Manager knows about. No other parameters. Read-only. - action:"save" — Save the current custom-node and version state. W

  • bisect

    Binary-search (git-bisect style) over installed ComfyUI custom nodes to find which one causes a problem. A state machine driven by the `action` parameter: - action:"start" — Begin a session over all currently-enabled custom nodes. Enables half and disables the rest for the first test round, then gui

  • install_custom_node

    Install, repair, enable/disable and remove ComfyUI custom node packs on this ComfyUI. To FIND a pack in the public registry first, use search_custom_nodes. Driven by the `action` parameter: - action:"install" — Install a pack by registry id, git URL, or name. Local installs prefer official comfy-cli

  • report_issue

    DISABLED — issue reporting remains off during limited maintenance. This tool files NOTHING and contacts no service. It returns the reporting status, without a prefilled issue link. Kept registered for older prompts and skills; continue helping with the task, without retrying or filing through anothe

  • install_comfyui

    Install, update and configure the local ComfyUI installation, its sidebar panel, and this MCP server itself. Driven by the `action` parameter: - action:"install" — Install ComfyUI locally: git-clone it into `target_path`, create a dedicated workspace virtualenv (<target>/.venv), and install Python r

  • model_metadata

    Curate a model file's embedded .safetensors metadata (Model Explorer). Driven by the `action` parameter: - action:"read" — Read a model file's CURRENT embedded metadata + evidence, for curating it. Returns classify (asset_type/base/precision/rank), the current model_card and prompt_director namespac

  • workspace

    Inspect and manage ComfyUI workspaces (local installs). Driven by the `action` parameter: - action:"get" — Report the active ComfyUI workspace (mirrors `comfy-cli which`): the local installation path being used (from COMFYUI_PATH or auto-detection), the source of that path, any persisted default wor

  • list_api_nodes

    Discover and run hosted partner/API nodes 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 — they spend PAID api credits, unlike a local-GPU render.

  • node_pack

    Author, edit, test and publish YOUR OWN ComfyUI custom-node pack under the custom_nodes/ directory the running ComfyUI actually scans. LOCAL-ONLY: it acts on the local filesystem and is meaningless for a remote --comfyui-url target. Every file-touching action (list_files, read, search, write, patch,

  • apply_manifest

    Apply a ComfyUI setup manifest from an inline object or .json/.yaml/.yml file. Composes custom-node installs and model downloads, installs pip packages, and reports apt entries as skipped (system packages need manual/root installation). LOCAL ComfyUI: model downloads use the connected server's live/

  • list_packs

    Bundled ComfyUI knowledge — installer packs, model-family skills, workflow templates — plus the two workflow-readiness checks. Driven by the `action` parameter: - action:"list" — List the bundled installer packs under packs/: one-command setups for a model family (custom nodes + model weights via ma

  • calculate

    Evaluate a batch of math expressions exactly — no ComfyUI connection needed, so it works even in cloud mode or when ComfyUI is down. A safe, zero-dependency expression evaluator (no eval): numbers only, no strings/arrays/property access. Handy for the arithmetic agents get wrong token-by-token. Eac

  • train_prepare_dataset

    Stage and curate the training DATASETS a LoRA run consumes — the images and their captions. Datasets are keyed by `name`; the jobs that train on them live in the separate `train_start` tool and are keyed by `id`. Driven by the `action` parameter: - action:"prepare" — Stage training images + captions

  • train_start

    Run and inspect LoRA training JOBS — launch a run, poll it, stop it, delete it, and read back the settings behind it. Jobs are keyed by `id`; the datasets they train on live in the separate `train_prepare_dataset` tool and are keyed by `name`. Driven by the `action` parameter: - action:"start" — Sta

  • train_doctor

    Preflight and set up the TRAINER ITSELF — the docker/GPU/venv machinery every training job needs. Touches no dataset and no job. Driven by the `action` parameter: - action:"doctor" — Preflight the local trainer: docker daemon reachable, `--gpus all` GPU passthrough working (NVIDIA Container Toolkit)

  • apps

    Micro-apps on this ComfyUI (panel Apps feature): named workflows packaged for one-click runs. Driven by the `action` parameter: - action:"list" — List every registered app. Each entry is the app's manifest: id, name, description, appMode {inputs, outputs}, deps, hideWorkflow, published. No other par

  • batch

    Run MANY ComfyUI workflows under one durable batch_id. Driven by the `action` parameter: - action:"submit" — Enqueue a batch. Provide EITHER `workflows` (array of API-format workflows) OR one `workflow` plus a `sweep` (array of flat input-override sets — each set produces one job, applied to every n

  • kitchen

    See what comfy-kitchen can do on this GPU, find where a graph is leaving it on the table, and apply the faster path. Driven by `action`: - action:"status" — kitchen version, backends (hip/cuda/triton/eager), INT8 attention, GPU fp8/NVFP4/MXFP8, launch flags (--use-ck-attention, --enable-triton-backe

  • list_tools

    List 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_tool

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

    Execute a tool from the catalog by name. Pass its parameters in `args` (object). The result is exactly what the underlying tool returns.

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

Comfyui MCP alternatives

View more →

Similar mcp servers in Design & Media, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Comfyui MCP (this page)
artokun
881MITOct 26, 2026Scanned, no flagged issues
Next AI Draw Io
DayuanJiang
37kApache-2.0Nov 1, 2026Scanned, no flagged issues
MCP For Blender
ahujasid
33kMITOct 29, 2026Scanned, no flagged issues
Figma Context MCP
GLips
16kMITOct 27, 2026Scanned, no flagged issues
Nginx UI
0xJacky
12kAGPL-3.0Nov 1, 2026Scanned, no flagged issues
Lamda
firerpa
8.7kMITSep 27, 2026Scanned, no flagged issues