comfyui-mcp 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +24 -0
- package/CHANGELOG.md +61 -0
- package/Dockerfile +50 -0
- package/README.md +67 -2
- package/dist/comfyui/client.d.ts +1 -1
- package/dist/comfyui/client.d.ts.map +1 -1
- package/dist/comfyui/client.js +24 -3
- package/dist/comfyui/client.js.map +1 -1
- package/dist/comfyui/types.d.ts +9 -0
- package/dist/comfyui/types.d.ts.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +39 -5
- package/dist/config.js.map +1 -1
- package/dist/index.js +27 -10
- package/dist/index.js.map +1 -1
- package/dist/services/api-nodes.d.ts +77 -0
- package/dist/services/api-nodes.d.ts.map +1 -0
- package/dist/services/api-nodes.js +205 -0
- package/dist/services/api-nodes.js.map +1 -0
- package/dist/services/civitai-resolver.d.ts +27 -0
- package/dist/services/civitai-resolver.d.ts.map +1 -0
- package/dist/services/civitai-resolver.js +82 -0
- package/dist/services/civitai-resolver.js.map +1 -0
- package/dist/services/generate-conditioned.d.ts +50 -0
- package/dist/services/generate-conditioned.d.ts.map +1 -0
- package/dist/services/generate-conditioned.js +95 -0
- package/dist/services/generate-conditioned.js.map +1 -0
- package/dist/services/install-comfyui.d.ts +89 -0
- package/dist/services/install-comfyui.d.ts.map +1 -0
- package/dist/services/install-comfyui.js +288 -0
- package/dist/services/install-comfyui.js.map +1 -0
- package/dist/services/manager-config.d.ts +59 -0
- package/dist/services/manager-config.d.ts.map +1 -0
- package/dist/services/manager-config.js +309 -0
- package/dist/services/manager-config.js.map +1 -0
- package/dist/services/model-resolver.d.ts.map +1 -1
- package/dist/services/model-resolver.js +31 -2
- package/dist/services/model-resolver.js.map +1 -1
- package/dist/services/node-bisect.d.ts +105 -0
- package/dist/services/node-bisect.d.ts.map +1 -0
- package/dist/services/node-bisect.js +426 -0
- package/dist/services/node-bisect.js.map +1 -0
- package/dist/services/node-management.d.ts +90 -0
- package/dist/services/node-management.d.ts.map +1 -0
- package/dist/services/node-management.js +377 -0
- package/dist/services/node-management.js.map +1 -0
- package/dist/services/node-snapshots.d.ts +27 -0
- package/dist/services/node-snapshots.d.ts.map +1 -0
- package/dist/services/node-snapshots.js +203 -0
- package/dist/services/node-snapshots.js.map +1 -0
- package/dist/services/update-comfyui.d.ts +34 -0
- package/dist/services/update-comfyui.d.ts.map +1 -0
- package/dist/services/update-comfyui.js +206 -0
- package/dist/services/update-comfyui.js.map +1 -0
- package/dist/services/workflow-autoload.d.ts.map +1 -1
- package/dist/services/workflow-autoload.js +1 -1
- package/dist/services/workflow-autoload.js.map +1 -1
- package/dist/services/workflow-composer.d.ts.map +1 -1
- package/dist/services/workflow-composer.js +145 -0
- package/dist/services/workflow-composer.js.map +1 -1
- package/dist/services/workflow-deps.d.ts +135 -0
- package/dist/services/workflow-deps.d.ts.map +1 -0
- package/dist/services/workflow-deps.js +306 -0
- package/dist/services/workflow-deps.js.map +1 -0
- package/dist/services/workflow-dsl.d.ts +4 -0
- package/dist/services/workflow-dsl.d.ts.map +1 -0
- package/dist/services/workflow-dsl.js +95 -0
- package/dist/services/workflow-dsl.js.map +1 -0
- package/dist/services/workflow-executor.d.ts +2 -0
- package/dist/services/workflow-executor.d.ts.map +1 -1
- package/dist/services/workflow-executor.js +1 -1
- package/dist/services/workflow-executor.js.map +1 -1
- package/dist/services/workspace-env.d.ts +68 -0
- package/dist/services/workspace-env.d.ts.map +1 -0
- package/dist/services/workspace-env.js +371 -0
- package/dist/services/workspace-env.js.map +1 -0
- package/dist/tools/api-nodes.d.ts +9 -0
- package/dist/tools/api-nodes.d.ts.map +1 -0
- package/dist/tools/api-nodes.js +85 -0
- package/dist/tools/api-nodes.js.map +1 -0
- package/dist/tools/generate-conditioned.d.ts +3 -0
- package/dist/tools/generate-conditioned.d.ts.map +1 -0
- package/dist/tools/generate-conditioned.js +78 -0
- package/dist/tools/generate-conditioned.js.map +1 -0
- package/dist/tools/generation-tracker.d.ts.map +1 -1
- package/dist/tools/generation-tracker.js +3 -4
- package/dist/tools/generation-tracker.js.map +1 -1
- package/dist/tools/image-management.d.ts.map +1 -1
- package/dist/tools/image-management.js +1 -3
- package/dist/tools/image-management.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +24 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/install-comfyui.d.ts +3 -0
- package/dist/tools/install-comfyui.d.ts.map +1 -0
- package/dist/tools/install-comfyui.js +51 -0
- package/dist/tools/install-comfyui.js.map +1 -0
- package/dist/tools/manager-config.d.ts +3 -0
- package/dist/tools/manager-config.d.ts.map +1 -0
- package/dist/tools/manager-config.js +45 -0
- package/dist/tools/manager-config.js.map +1 -0
- package/dist/tools/memory-management.js +1 -1
- package/dist/tools/memory-management.js.map +1 -1
- package/dist/tools/model-extras.d.ts +3 -0
- package/dist/tools/model-extras.d.ts.map +1 -0
- package/dist/tools/model-extras.js +135 -0
- package/dist/tools/model-extras.js.map +1 -0
- package/dist/tools/model-management.js +3 -3
- package/dist/tools/model-management.js.map +1 -1
- package/dist/tools/node-bisect.d.ts +3 -0
- package/dist/tools/node-bisect.d.ts.map +1 -0
- package/dist/tools/node-bisect.js +60 -0
- package/dist/tools/node-bisect.js.map +1 -0
- package/dist/tools/node-management.d.ts +3 -0
- package/dist/tools/node-management.d.ts.map +1 -0
- package/dist/tools/node-management.js +143 -0
- package/dist/tools/node-management.js.map +1 -0
- package/dist/tools/node-snapshots.d.ts +3 -0
- package/dist/tools/node-snapshots.d.ts.map +1 -0
- package/dist/tools/node-snapshots.js +59 -0
- package/dist/tools/node-snapshots.js.map +1 -0
- package/dist/tools/queue-management.js +4 -4
- package/dist/tools/queue-management.js.map +1 -1
- package/dist/tools/registry-search.js +4 -4
- package/dist/tools/registry-search.js.map +1 -1
- package/dist/tools/skill-generator.js +2 -2
- package/dist/tools/skill-generator.js.map +1 -1
- package/dist/tools/update-comfyui.d.ts +3 -0
- package/dist/tools/update-comfyui.d.ts.map +1 -0
- package/dist/tools/update-comfyui.js +27 -0
- package/dist/tools/update-comfyui.js.map +1 -0
- package/dist/tools/workflow-autoload.d.ts.map +1 -1
- package/dist/tools/workflow-autoload.js +7 -2
- package/dist/tools/workflow-autoload.js.map +1 -1
- package/dist/tools/workflow-compose.js +3 -3
- package/dist/tools/workflow-compose.js.map +1 -1
- package/dist/tools/workflow-deps.d.ts +3 -0
- package/dist/tools/workflow-deps.d.ts.map +1 -0
- package/dist/tools/workflow-deps.js +111 -0
- package/dist/tools/workflow-deps.js.map +1 -0
- package/dist/tools/workflow-dsl.d.ts +3 -0
- package/dist/tools/workflow-dsl.d.ts.map +1 -0
- package/dist/tools/workflow-dsl.js +29 -0
- package/dist/tools/workflow-dsl.js.map +1 -0
- package/dist/tools/workflow-execute.js +1 -1
- package/dist/tools/workflow-execute.js.map +1 -1
- package/dist/tools/workflow-library.js +3 -3
- package/dist/tools/workflow-library.js.map +1 -1
- package/dist/tools/workspace-env.d.ts +3 -0
- package/dist/tools/workspace-env.d.ts.map +1 -0
- package/dist/tools/workspace-env.js +55 -0
- package/dist/tools/workspace-env.js.map +1 -0
- package/dist/transport/cli.d.ts +15 -0
- package/dist/transport/cli.d.ts.map +1 -0
- package/dist/transport/cli.js +48 -0
- package/dist/transport/cli.js.map +1 -0
- package/dist/transport/comfyui-url.d.ts +12 -0
- package/dist/transport/comfyui-url.d.ts.map +1 -0
- package/dist/transport/comfyui-url.js +15 -0
- package/dist/transport/comfyui-url.js.map +1 -0
- package/dist/transport/http.d.ts +17 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +95 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/utils/errors.d.ts +6 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -0
- package/dist/utils/errors.js.map +1 -1
- package/glama.json +6 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/.dockerignore
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Build artifacts and deps — rebuilt inside the image
|
|
2
|
+
node_modules
|
|
3
|
+
dist
|
|
4
|
+
|
|
5
|
+
# VCS and local agent worktrees
|
|
6
|
+
.git
|
|
7
|
+
.claude
|
|
8
|
+
|
|
9
|
+
# Env / secrets / local user config
|
|
10
|
+
.env
|
|
11
|
+
.env.*
|
|
12
|
+
model-settings.user.jsonc
|
|
13
|
+
|
|
14
|
+
# Tests and docs not needed at runtime
|
|
15
|
+
src/__tests__
|
|
16
|
+
**/*.test.ts
|
|
17
|
+
*.md
|
|
18
|
+
TODO.md
|
|
19
|
+
|
|
20
|
+
# Editor / OS cruft
|
|
21
|
+
.vscode
|
|
22
|
+
.idea
|
|
23
|
+
.DS_Store
|
|
24
|
+
npm-debug.log*
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented here. This project adheres to
|
|
4
|
+
[Semantic Versioning](https://semver.org/) and the format follows
|
|
5
|
+
[Keep a Changelog](https://keepachangelog.com/).
|
|
6
|
+
|
|
7
|
+
## [0.6.0] - 2026-05-25
|
|
8
|
+
|
|
9
|
+
A large feature release that ports much of the [`comfy-cli`](https://github.com/Comfy-Org/comfy-cli)
|
|
10
|
+
workflow into MCP tools. New tools operate on the connected ComfyUI (local or a
|
|
11
|
+
remote `--comfyui-url` target), preferring the ComfyUI-Manager HTTP API with a
|
|
12
|
+
subprocess fallback where the API can't do the job.
|
|
13
|
+
|
|
14
|
+
### Added — comfy-cli capability port
|
|
15
|
+
|
|
16
|
+
- **Custom-node management** — `install_custom_node`, `update_custom_node`,
|
|
17
|
+
`reinstall_custom_node`, `fix_custom_node`, `list_installed_nodes`,
|
|
18
|
+
`sync_node_dependencies` (#15)
|
|
19
|
+
- **Node snapshots** — `save_node_snapshot`, `restore_node_snapshot`,
|
|
20
|
+
`list_node_snapshots`; honors comfy-cli's `.json`/`.yaml` snapshot contract (#13)
|
|
21
|
+
- **Node bisect** — `bisect_start`, `bisect_good`, `bisect_bad`, `bisect_reset`,
|
|
22
|
+
`bisect_status` to isolate a faulty custom node; never re-enables packs you had
|
|
23
|
+
disabled before the session (#14)
|
|
24
|
+
- **Workflow dependencies** — `extract_workflow_dependencies`,
|
|
25
|
+
`install_workflow_dependencies` (handles API- and UI-format workflows) (#16)
|
|
26
|
+
- **Install ComfyUI** — `install_comfyui`: clones ComfyUI (+ ComfyUI-Manager) and
|
|
27
|
+
installs requirements into a dedicated workspace virtualenv (#17)
|
|
28
|
+
- **Update** — `update_comfyui` (core) and `update_all` (all custom nodes) (#18)
|
|
29
|
+
- **Models** — `remove_model` (path-safe) and `download_civitai_model` (#19)
|
|
30
|
+
- **Workspace & environment** — `get_workspace`, `set_default_workspace`,
|
|
31
|
+
`list_workspaces`, `get_environment` (#20)
|
|
32
|
+
- **API / partner nodes** — `list_api_nodes`, `get_api_node_schema`,
|
|
33
|
+
`generate_with_api_node` (#21)
|
|
34
|
+
- **ComfyUI-Manager configuration** — `configure_manager` (#22)
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- Rewrote tool descriptions and parameter docs across the core tool set for
|
|
39
|
+
clearer purpose, usage guidance, and behavioral transparency — improving agent
|
|
40
|
+
tool-selection quality (#23).
|
|
41
|
+
- Added a `Dockerfile`, `.dockerignore`, `glama.json`, and Glama quality badges
|
|
42
|
+
for the [glama.ai](https://glama.ai) listing.
|
|
43
|
+
|
|
44
|
+
### Security
|
|
45
|
+
|
|
46
|
+
- CivitAI authentication is now sent as an `Authorization: Bearer` header instead
|
|
47
|
+
of a `?token=` query parameter, so the API token no longer leaks into logs,
|
|
48
|
+
errors, or redirect URLs. Model-download filenames are validated to stay within
|
|
49
|
+
the models directory (closes a path-traversal hole shared with `download_model`) (#19).
|
|
50
|
+
- `COMFY_API_KEY` is delivered to API nodes via the `/prompt` `extra_data` payload
|
|
51
|
+
rather than being placed in the workflow (#21).
|
|
52
|
+
|
|
53
|
+
### Notes
|
|
54
|
+
|
|
55
|
+
- Local-management tools (install/update ComfyUI, custom-node installs, model
|
|
56
|
+
removal) require a local install (`COMFYUI_PATH`) and return a clear error when
|
|
57
|
+
targeting a remote instance where the operation cannot apply.
|
|
58
|
+
|
|
59
|
+
Earlier releases predate this changelog.
|
|
60
|
+
|
|
61
|
+
[0.6.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.6.0
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
#
|
|
3
|
+
# Container image for the comfyui-mcp server.
|
|
4
|
+
# Used by Glama (https://glama.ai) to run automated safety/quality checks.
|
|
5
|
+
#
|
|
6
|
+
# The server speaks MCP over stdio by default. Point it at a running ComfyUI
|
|
7
|
+
# with the COMFYUI_URL env var, e.g.:
|
|
8
|
+
# docker run --rm -i -e COMFYUI_URL=http://host.docker.internal:8188 comfyui-mcp
|
|
9
|
+
# To expose the streamable-HTTP transport instead, append CLI flags:
|
|
10
|
+
# docker run --rm -p 9100:9100 comfyui-mcp --http --host 0.0.0.0 --port 9100
|
|
11
|
+
|
|
12
|
+
# ---- Builder: install deps (incl. native build for better-sqlite3) + compile TS ----
|
|
13
|
+
FROM node:22-bookworm AS builder
|
|
14
|
+
WORKDIR /app
|
|
15
|
+
|
|
16
|
+
# Toolchain for native deps (better-sqlite3) when no prebuilt binary is available.
|
|
17
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
18
|
+
python3 make g++ \
|
|
19
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
20
|
+
|
|
21
|
+
# Install against the lockfile. scripts/ is needed because our (safe) postinstall
|
|
22
|
+
# runs during install; copying it first keeps the dependency layer cacheable.
|
|
23
|
+
COPY package.json package-lock.json ./
|
|
24
|
+
COPY scripts ./scripts
|
|
25
|
+
RUN npm ci
|
|
26
|
+
|
|
27
|
+
# Compile TypeScript -> dist/
|
|
28
|
+
COPY tsconfig.json ./
|
|
29
|
+
COPY src ./src
|
|
30
|
+
RUN npm run build
|
|
31
|
+
|
|
32
|
+
# Drop devDependencies; the compiled native modules in node_modules are kept.
|
|
33
|
+
RUN npm prune --omit=dev
|
|
34
|
+
|
|
35
|
+
# ---- Runtime: slim image with only production artifacts ----
|
|
36
|
+
FROM node:22-bookworm-slim AS runtime
|
|
37
|
+
ENV NODE_ENV=production
|
|
38
|
+
WORKDIR /app
|
|
39
|
+
|
|
40
|
+
# bookworm <-> bookworm-slim share glibc, so the native better-sqlite3 binary
|
|
41
|
+
# built in the builder stage is ABI-compatible here.
|
|
42
|
+
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
|
|
43
|
+
COPY --from=builder --chown=node:node /app/dist ./dist
|
|
44
|
+
COPY --from=builder --chown=node:node /app/package.json ./package.json
|
|
45
|
+
COPY --chown=node:node scripts ./scripts
|
|
46
|
+
|
|
47
|
+
# Run as the image's built-in unprivileged user.
|
|
48
|
+
USER node
|
|
49
|
+
|
|
50
|
+
ENTRYPOINT ["node", "dist/index.js"]
|
package/README.md
CHANGED
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
[](https://nodejs.org)
|
|
7
7
|
[](./LICENSE)
|
|
8
8
|
|
|
9
|
+
[](https://glama.ai/mcp/servers/artokun/comfyui-mcp)
|
|
10
|
+
[](https://glama.ai/mcp/servers/artokun/comfyui-mcp)
|
|
11
|
+
|
|
9
12
|
Works on **macOS**, **Linux**, and **Windows**. Auto-detects your ComfyUI installation and port.
|
|
10
13
|
|
|
11
|
-
**
|
|
14
|
+
**70+ MCP tools** | **10 slash commands** | **4 knowledge skills** | **3 autonomous agents** | **3 hooks**
|
|
12
15
|
|
|
13
16
|
---
|
|
14
17
|
|
|
@@ -104,7 +107,31 @@ claude plugin install comfyui-mcp
|
|
|
104
107
|
|
|
105
108
|
## MCP Tools
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
46 tools across workflow execution, generation, iteration, composition, models, and more:
|
|
111
|
+
|
|
112
|
+
### Image Generation (high-level)
|
|
113
|
+
|
|
114
|
+
| Tool | Description |
|
|
115
|
+
|------|-------------|
|
|
116
|
+
| `generate_image` | Generate from a text prompt — builds a txt2img workflow, fills unspecified params from your defaults, auto-selects a checkpoint |
|
|
117
|
+
| `generate_with_controlnet` | Generate conditioned by a ControlNet image (pose/depth/canny/normal) + prompt |
|
|
118
|
+
| `generate_with_ip_adapter` | Generate guided by a reference image's style/subject via IP-Adapter (needs ComfyUI_IPAdapter_plus) |
|
|
119
|
+
|
|
120
|
+
### Assets & Iteration
|
|
121
|
+
|
|
122
|
+
| Tool | Description |
|
|
123
|
+
|------|-------------|
|
|
124
|
+
| `view_image` | Return a generated asset's bytes as an inline image so the agent can see the result |
|
|
125
|
+
| `regenerate` | Re-run the workflow that produced an `asset_id`, with optional parameter overrides |
|
|
126
|
+
| `list_assets` | Browse recently generated assets (newest-first) by `asset_id` |
|
|
127
|
+
| `get_asset_metadata` | Full provenance for an asset, including the originating workflow |
|
|
128
|
+
|
|
129
|
+
### Defaults
|
|
130
|
+
|
|
131
|
+
| Tool | Description |
|
|
132
|
+
|------|-------------|
|
|
133
|
+
| `get_defaults` | Show merged generation defaults with per-source attribution |
|
|
134
|
+
| `set_defaults` | Update runtime defaults; `persist: true` writes the config file |
|
|
108
135
|
|
|
109
136
|
### Workflow Execution
|
|
110
137
|
|
|
@@ -379,6 +406,7 @@ The server auto-detects your ComfyUI installation and port. Override with enviro
|
|
|
379
406
|
|
|
380
407
|
| Variable | Default | Description |
|
|
381
408
|
|----------|---------|-------------|
|
|
409
|
+
| `COMFYUI_URL` | | Full ComfyUI URL, e.g. `https://comfy.example.com:8443` — overrides `COMFYUI_HOST`/`PORT`/`SSL` and skips auto-detection (use for remote ComfyUI) |
|
|
382
410
|
| `COMFYUI_HOST` | `127.0.0.1` | ComfyUI server address |
|
|
383
411
|
| `COMFYUI_PORT` | *(auto-detect)* | ComfyUI server port (tries 8188, then 8000) |
|
|
384
412
|
| `COMFYUI_PATH` | *(auto-detect)* | Path to ComfyUI data directory |
|
|
@@ -387,6 +415,35 @@ The server auto-detects your ComfyUI installation and port. Override with enviro
|
|
|
387
415
|
| `GITHUB_TOKEN` | | GitHub token for skill generation (avoids rate limits) |
|
|
388
416
|
| `LOG_LEVEL` | `info` | Logging verbosity: `debug`, `info`, `warn`, `error` |
|
|
389
417
|
|
|
418
|
+
### Transports
|
|
419
|
+
|
|
420
|
+
The server speaks **stdio by default** (what Claude Code, Claude Desktop, and the MCP Inspector expect — no flags needed). For MCP gateways, remote/hosted setups, or `fetch`-based clients, opt into **streamable-HTTP**:
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
# stdio (default)
|
|
424
|
+
npx -y comfyui-mcp
|
|
425
|
+
|
|
426
|
+
# streamable-HTTP on http://127.0.0.1:9100/mcp
|
|
427
|
+
npx -y comfyui-mcp --http
|
|
428
|
+
npx -y comfyui-mcp --http --host 0.0.0.0 --port 9100 # bind/port overrides
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
| Flag | Env | Default | Description |
|
|
432
|
+
|------|-----|---------|-------------|
|
|
433
|
+
| `--http` / `--transport http` | `MCP_TRANSPORT=http` | `stdio` | Serve streamable-HTTP at `/mcp` instead of stdio |
|
|
434
|
+
| `--host <h>` | `MCP_HOST` | `127.0.0.1` | HTTP bind host (use `0.0.0.0` to expose) |
|
|
435
|
+
| `--port <n>` | `MCP_PORT` | `9100` | HTTP port |
|
|
436
|
+
| `--comfyui-url <url>` | `COMFYUI_URL` | *(auto-detect)* | Target a specific (incl. remote) ComfyUI |
|
|
437
|
+
|
|
438
|
+
### Remote ComfyUI
|
|
439
|
+
|
|
440
|
+
Point the server at a ComfyUI running anywhere — no local install required:
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
npx -y comfyui-mcp --comfyui-url http://192.168.1.50:8188
|
|
444
|
+
npx -y comfyui-mcp --http --comfyui-url https://comfy.example.com:8443
|
|
445
|
+
```
|
|
446
|
+
|
|
390
447
|
### Auto-detection
|
|
391
448
|
|
|
392
449
|
**Port**: Probes `8188` (CLI default) then `8000` (Desktop app default) via `/system_stats`.
|
|
@@ -591,6 +648,14 @@ MIT — see [LICENSE](./LICENSE) for details.
|
|
|
591
648
|
|
|
592
649
|
## Changelog
|
|
593
650
|
|
|
651
|
+
### 0.5.0 — 2026-05-21
|
|
652
|
+
|
|
653
|
+
- **Streamable-HTTP transport** — opt in with `--http` (or `MCP_TRANSPORT=http`) to serve MCP over HTTP at `/mcp` for gateways, remote, and `fetch`-based clients. stdio remains the default; `--host`/`--port` configure the bind.
|
|
654
|
+
- **Remote ComfyUI** — `--comfyui-url` / `COMFYUI_URL` targets any (incl. remote) ComfyUI instance, overriding host/port/ssl and skipping auto-detection.
|
|
655
|
+
- **`generate_with_controlnet`** — ControlNet-conditioned generation (pose/depth/canny/normal) from a control image + prompt.
|
|
656
|
+
- **`generate_with_ip_adapter`** — reference-image style/subject guidance via IP-Adapter (requires ComfyUI_IPAdapter_plus).
|
|
657
|
+
- Two new `create_workflow` templates: `controlnet`, `ip_adapter`.
|
|
658
|
+
|
|
594
659
|
### 0.4.1 — 2026-05-21
|
|
595
660
|
|
|
596
661
|
- Added `server.json` and an `mcpName` field to `package.json` for publishing to the official [MCP Registry](https://github.com/modelcontextprotocol/registry) (`io.github.artokun/comfyui-mcp`).
|
package/dist/comfyui/client.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare function interrupt(promptId?: string): Promise<void>;
|
|
|
15
15
|
* Fire-and-forget: enqueue a prompt via HTTP POST (no WebSocket needed).
|
|
16
16
|
* Returns prompt_id and queue position immediately.
|
|
17
17
|
*/
|
|
18
|
-
export declare function enqueuePrompt(workflow: Record<string, unknown>): Promise<{
|
|
18
|
+
export declare function enqueuePrompt(workflow: Record<string, unknown>, extraData?: Record<string, unknown>): Promise<{
|
|
19
19
|
prompt_id: string;
|
|
20
20
|
queue_remaining?: number;
|
|
21
21
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/comfyui/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAIvD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIvE,wBAAgB,SAAS,IAAI,MAAM,CAalC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAWrD;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CA0BvD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAI3D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAIzD;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAOrD;AAED,wBAAsB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/comfyui/client.ts"],"names":[],"mappings":"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"}
|
package/dist/comfyui/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Client } from "@stable-canvas/comfyui-client";
|
|
2
|
-
import { config, getComfyUIApiHost } from "../config.js";
|
|
2
|
+
import { config, getComfyUIApiHost, getComfyUIProtocol } from "../config.js";
|
|
3
3
|
import { logger } from "../utils/logger.js";
|
|
4
4
|
import { ConnectionError } from "../utils/errors.js";
|
|
5
5
|
let clientInstance = null;
|
|
@@ -82,8 +82,29 @@ export async function interrupt(promptId) {
|
|
|
82
82
|
* Fire-and-forget: enqueue a prompt via HTTP POST (no WebSocket needed).
|
|
83
83
|
* Returns prompt_id and queue position immediately.
|
|
84
84
|
*/
|
|
85
|
-
export async function enqueuePrompt(workflow) {
|
|
86
|
-
const client = getClient();
|
|
85
|
+
export async function enqueuePrompt(workflow, extraData) {
|
|
86
|
+
const client = getClient();
|
|
87
|
+
// The SDK's _enqueue_prompt does not forward `extra_data`, which is how
|
|
88
|
+
// comfy.org API-node credentials (api_key_comfy_org / auth_token_comfy_org)
|
|
89
|
+
// must travel to the server. When extra_data is supplied, POST /prompt directly.
|
|
90
|
+
if (extraData && Object.keys(extraData).length > 0) {
|
|
91
|
+
const url = `${getComfyUIProtocol()}://${getComfyUIApiHost()}/prompt`;
|
|
92
|
+
const res = await fetch(url, {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: { "Content-Type": "application/json" },
|
|
95
|
+
body: JSON.stringify({
|
|
96
|
+
prompt: workflow,
|
|
97
|
+
client_id: "comfyui-mcp",
|
|
98
|
+
extra_data: extraData,
|
|
99
|
+
}),
|
|
100
|
+
});
|
|
101
|
+
if (!res.ok) {
|
|
102
|
+
const body = await res.text().catch(() => "");
|
|
103
|
+
throw new ConnectionError(`ComfyUI /prompt returned ${res.status} ${res.statusText}: ${body.slice(0, 500)}`);
|
|
104
|
+
}
|
|
105
|
+
const data = (await res.json());
|
|
106
|
+
return { prompt_id: data.prompt_id, queue_remaining: data.number };
|
|
107
|
+
}
|
|
87
108
|
const result = await client._enqueue_prompt(workflow);
|
|
88
109
|
return {
|
|
89
110
|
prompt_id: result.prompt_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/comfyui/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/comfyui/client.ts"],"names":[],"mappings":"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"}
|
package/dist/comfyui/types.d.ts
CHANGED
|
@@ -17,6 +17,15 @@ export interface ComfyUINodeDef {
|
|
|
17
17
|
category: string;
|
|
18
18
|
output_node: boolean;
|
|
19
19
|
python_module?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Set to `true` by ComfyUI's /object_info for hosted partner/API nodes
|
|
22
|
+
* (the server emits this from the node class's `API_NODE` attribute).
|
|
23
|
+
* Authoritative marker for API nodes; the `category` typically also starts
|
|
24
|
+
* with "api node/" (e.g. "api node/image/BFL").
|
|
25
|
+
*/
|
|
26
|
+
api_node?: boolean;
|
|
27
|
+
deprecated?: boolean;
|
|
28
|
+
experimental?: boolean;
|
|
20
29
|
}
|
|
21
30
|
export type NodeInputSpec = [string | string[], Record<string, unknown>?];
|
|
22
31
|
export type ObjectInfo = Record<string, ComfyUINodeDef>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comfyui/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comfyui/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
7
7
|
huggingfaceToken: z.ZodOptional<z.ZodString>;
|
|
8
8
|
githubToken: z.ZodOptional<z.ZodString>;
|
|
9
9
|
civitaiApiToken: z.ZodOptional<z.ZodString>;
|
|
10
|
+
comfyApiKey: z.ZodOptional<z.ZodString>;
|
|
10
11
|
}, "strip", z.ZodTypeAny, {
|
|
11
12
|
comfyuiHost: string;
|
|
12
13
|
comfyuiSsl: boolean;
|
|
@@ -15,6 +16,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
15
16
|
huggingfaceToken?: string | undefined;
|
|
16
17
|
githubToken?: string | undefined;
|
|
17
18
|
civitaiApiToken?: string | undefined;
|
|
19
|
+
comfyApiKey?: string | undefined;
|
|
18
20
|
}, {
|
|
19
21
|
comfyuiHost?: string | undefined;
|
|
20
22
|
comfyuiPort?: number | undefined;
|
|
@@ -23,6 +25,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
23
25
|
huggingfaceToken?: string | undefined;
|
|
24
26
|
githubToken?: string | undefined;
|
|
25
27
|
civitaiApiToken?: string | undefined;
|
|
28
|
+
comfyApiKey?: string | undefined;
|
|
26
29
|
}>;
|
|
27
30
|
export type Config = z.infer<typeof configSchema> & {
|
|
28
31
|
resolvedPort: number;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwKxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAoB7E,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAC;AAEhE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,OAAO,CAErD"}
|
package/dist/config.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from "url";
|
|
|
4
4
|
import { dirname, resolve, join } from "path";
|
|
5
5
|
import { existsSync, readdirSync } from "node:fs";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
|
+
import { parseComfyUIUrl } from "./transport/comfyui-url.js";
|
|
7
8
|
// Resolve .env from the package root, not process.cwd()
|
|
8
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
10
|
const __dirname = dirname(__filename);
|
|
@@ -116,6 +117,35 @@ async function detectComfyUIPort(host) {
|
|
|
116
117
|
console.error(`[comfyui-mcp] ComfyUI not detected on ports ${ports.join(", ")}. Defaulting to 8188.`);
|
|
117
118
|
return 8188;
|
|
118
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Resolve a ComfyUI target from --comfyui-url (argv) or COMFYUI_URL (env).
|
|
122
|
+
* Takes precedence over COMFYUI_HOST/PORT/SSL and skips port auto-detection.
|
|
123
|
+
*/
|
|
124
|
+
function resolveUrlOverride() {
|
|
125
|
+
const argv = process.argv.slice(2);
|
|
126
|
+
let raw;
|
|
127
|
+
for (let i = 0; i < argv.length; i++) {
|
|
128
|
+
const a = argv[i];
|
|
129
|
+
if (a === "--comfyui-url") {
|
|
130
|
+
raw = argv[i + 1];
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
if (a.startsWith("--comfyui-url=")) {
|
|
134
|
+
raw = a.slice("--comfyui-url=".length);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
raw = raw ?? process.env.COMFYUI_URL;
|
|
139
|
+
if (!raw)
|
|
140
|
+
return undefined;
|
|
141
|
+
try {
|
|
142
|
+
return parseComfyUIUrl(raw);
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
console.error(`[comfyui-mcp] Ignoring invalid --comfyui-url/COMFYUI_URL "${raw}": ${err instanceof Error ? err.message : err}`);
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
119
149
|
const configSchema = z.object({
|
|
120
150
|
comfyuiHost: z.string().default("127.0.0.1"),
|
|
121
151
|
comfyuiPort: z.coerce.number().int().positive().optional(),
|
|
@@ -124,19 +154,23 @@ const configSchema = z.object({
|
|
|
124
154
|
huggingfaceToken: z.string().optional(),
|
|
125
155
|
githubToken: z.string().optional(),
|
|
126
156
|
civitaiApiToken: z.string().optional(),
|
|
157
|
+
comfyApiKey: z.string().optional(),
|
|
127
158
|
});
|
|
159
|
+
const urlOverride = resolveUrlOverride();
|
|
128
160
|
const parsedConfig = configSchema.parse({
|
|
129
|
-
comfyuiHost: process.env.COMFYUI_HOST,
|
|
130
|
-
comfyuiPort: process.env.COMFYUI_PORT || undefined,
|
|
131
|
-
comfyuiSsl: process.env.COMFYUI_SSL,
|
|
161
|
+
comfyuiHost: urlOverride?.host ?? process.env.COMFYUI_HOST,
|
|
162
|
+
comfyuiPort: urlOverride?.port ?? (process.env.COMFYUI_PORT || undefined),
|
|
163
|
+
comfyuiSsl: urlOverride?.ssl ?? process.env.COMFYUI_SSL,
|
|
132
164
|
comfyuiPath: resolveComfyUIPath(process.env.COMFYUI_PATH),
|
|
133
165
|
huggingfaceToken: process.env.HUGGINGFACE_TOKEN,
|
|
134
166
|
githubToken: process.env.GITHUB_TOKEN,
|
|
135
167
|
civitaiApiToken: process.env.CIVITAI_API_TOKEN,
|
|
168
|
+
comfyApiKey: process.env.COMFY_API_KEY,
|
|
136
169
|
});
|
|
137
|
-
// Resolve port: explicit env
|
|
170
|
+
// Resolve port: explicit url/env wins, otherwise auto-detect.
|
|
171
|
+
// A --comfyui-url/COMFYUI_URL override always carries a port, so detection is skipped.
|
|
138
172
|
const resolvedPort = parsedConfig.comfyuiPort
|
|
139
|
-
?? await detectComfyUIPort(parsedConfig.comfyuiHost);
|
|
173
|
+
?? (urlOverride ? urlOverride.port : await detectComfyUIPort(parsedConfig.comfyuiHost));
|
|
140
174
|
export const config = { ...parsedConfig, resolvedPort };
|
|
141
175
|
export function getComfyUIApiHost() {
|
|
142
176
|
return `${config.comfyuiHost}:${config.resolvedPort}`;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,18 +4,35 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
4
4
|
import { registerAllTools } from "./tools/index.js";
|
|
5
5
|
import { logger } from "./utils/logger.js";
|
|
6
6
|
import { JobWatcher } from "./services/job-watcher.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
import { parseCliArgs } from "./transport/cli.js";
|
|
8
|
+
import { startHttpServer } from "./transport/http.js";
|
|
9
|
+
async function createConfiguredServer() {
|
|
10
|
+
const server = new McpServer({
|
|
11
|
+
name: "comfyui-mcp",
|
|
12
|
+
version: "0.1.0",
|
|
13
|
+
}, {
|
|
14
|
+
capabilities: { tools: {} },
|
|
15
|
+
});
|
|
14
16
|
await registerAllTools(server);
|
|
17
|
+
return server;
|
|
18
|
+
}
|
|
19
|
+
async function main() {
|
|
20
|
+
const cli = parseCliArgs(process.argv);
|
|
15
21
|
await JobWatcher.cleanupOldFiles();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
if (cli.transport === "http") {
|
|
23
|
+
await startHttpServer({
|
|
24
|
+
host: cli.host,
|
|
25
|
+
port: cli.port,
|
|
26
|
+
createServer: createConfiguredServer,
|
|
27
|
+
});
|
|
28
|
+
logger.info(`ComfyUI MCP server running on http://${cli.host}:${cli.port}/mcp`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const server = await createConfiguredServer();
|
|
32
|
+
const transport = new StdioServerTransport();
|
|
33
|
+
await server.connect(transport);
|
|
34
|
+
logger.info("ComfyUI MCP server running on stdio");
|
|
35
|
+
}
|
|
19
36
|
}
|
|
20
37
|
main().catch((err) => {
|
|
21
38
|
logger.error("Fatal error", err);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,KAAK,UAAU,sBAAsB;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC5B,CACF,CAAC;IACF,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,CAAC,eAAe,EAAE,CAAC;IAEnC,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,eAAe,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,YAAY,EAAE,sBAAsB;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,wCAAwC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|