comfyui-mcp 0.45.0 → 0.46.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.
@@ -1,15 +1,42 @@
1
1
  import { z } from "zod";
2
- import { setComfyuiTarget, getLocalComfyuiUrl } from "../config.js";
2
+ import { setComfyuiTarget, getLocalComfyuiUrl, getComfyUIBaseUrl } from "../config.js";
3
3
  import { resetClient } from "../comfyui/client.js";
4
4
  import { errorToToolResult } from "../utils/errors.js";
5
5
  import { getPod, listPods, resumePod, stopPod, createPod, comfyuiPortExposed, runpodProxyUrl, runpodDeployLink, RUNPOD_COMFYUI_PORT, RUNPOD_DEFAULT_GPU_TYPES, GPU_CLI_CREDIT, } from "../services/runpod-client.js";
6
6
  import { getRunpodWatcher } from "../services/runpod-watch.js";
7
- /** Retarget comfyui-mcp back to the local ComfyUI (shared by stop + use_local). */
8
- function retargetLocal() {
7
+ import { requestTargetChange, awaitTargetApplied, progressEnabled } from "../services/download-progress.js";
8
+ /** Retarget comfyui-mcp back to the local ComfyUI (shared by stop + use_local).
9
+ * Returns { url, applied } for display (url null when the channel is down).
10
+ * applied=false means the orchestrator SKIPPED the guarded switch (another
11
+ * tab/pod owns the target now) — the caller must not claim a local switch
12
+ * (codex finding). */
13
+ async function retargetLocal(condOnPodId) {
14
+ if (progressEnabled()) {
15
+ // condOnPodId: the stop-fallback — fall back ONLY if the orchestrator is
16
+ // really on that pod (a stale child may lag a newer target, codex). The
17
+ // unwatch is SCOPED to the stopped pod the same way (an unrelated watched
18
+ // pod must survive — codex finding).
19
+ const reqFile = requestTargetChange({ local: true, unwatch: true, wantAck: true, expectedCurrentUrl: getComfyUIBaseUrl(), ...(condOnPodId ? { onlyIfTarget: condOnPodId, unwatchPodId: condOnPodId } : {}) });
20
+ if (!reqFile)
21
+ return { url: null, applied: false };
22
+ const ack = await awaitTargetApplied(reqFile);
23
+ if (ack) {
24
+ // Align THIS child's config to the AUTHORITATIVE target either way
25
+ // (codex finding: a guarded skip left the child on a dead pod for the
26
+ // rest of the turn). `applied` only narrates whether the requested
27
+ // local switch actually happened.
28
+ setComfyuiTarget(ack.url);
29
+ resetClient();
30
+ }
31
+ return { url: ack?.url ?? null, applied: ack?.applied ?? false };
32
+ }
9
33
  const url = getLocalComfyuiUrl();
10
34
  setComfyuiTarget(url);
11
35
  resetClient();
12
- return url;
36
+ // In-process: the direct path did everything (pending clears ride the target
37
+ // event; failure clears are direct calls). Do NOT also replay a local
38
+ // request through the channel — same stale-overwrite race (codex finding).
39
+ return { url, applied: true };
13
40
  }
14
41
  /** Human-friendly uptime. */
15
42
  function fmtUptime(sec) {
@@ -104,18 +131,37 @@ export function registerRunpodTools(server) {
104
131
  }, async (args) => {
105
132
  try {
106
133
  const w = getRunpodWatcher();
107
- const wasConnected = w?.watchedPodId() === args.pod_id;
108
134
  const r = await stopPod(args.pod_id);
109
- // Stop live-status/idle-watch if this was the watched pod.
110
- if (wasConnected)
135
+ // Clear any recorded auto-connect failure for this pod — it's stopped
136
+ // now, so "still billing" reports must stop too. Both locally (when
137
+ // the watcher exists) AND through the control channel (spawned-child
138
+ // case, where it doesn't — codex finding).
139
+ getRunpodWatcher()?.clearConnectFailed(args.pod_id);
140
+ requestTargetChange({ stoppedPodId: args.pod_id });
141
+ // Unwatch ONLY after the stop succeeded — clearing it first would
142
+ // leave a possibly-still-running pod unwatched and billing when the
143
+ // API call times out or is rejected (codex finding).
144
+ if (w?.watchedPodId() === args.pod_id)
111
145
  w?.unwatch();
112
146
  // If comfyui-mcp was pointed at THIS pod, its proxy URL is now dead —
113
147
  // fall back to the local ComfyUI so rendering keeps working (the swap
114
- // half of the local⇄pod flow). Only when we were connected to it.
148
+ // half of the local⇄pod flow). The ORCHESTRATOR decides whether its
149
+ // authoritative target matches (onlyIfTarget) — a spawned child's own
150
+ // base URL can be a turn stale (codex finding: stopping B while the
151
+ // child lagged on A left the orchestrator on B's dead proxy).
115
152
  let localNote = "";
116
- if (wasConnected) {
117
- const url = retargetLocal();
118
- localNote = ` comfyui-mcp switched back to local ComfyUI (${url}).`;
153
+ if (progressEnabled()) {
154
+ const r = await retargetLocal(args.pod_id);
155
+ localNote = r.applied && r.url
156
+ ? ` comfyui-mcp switched back to local ComfyUI (${r.url}).`
157
+ : r.applied
158
+ ? " comfyui-mcp is switching back to the local ComfyUI (the orchestrator resolves the target)."
159
+ : " the session's active target moved to another pod in the meantime — leaving it there.";
160
+ }
161
+ else if (getComfyUIBaseUrl().includes(args.pod_id)) {
162
+ // In-process: this IS the orchestrator — the local check is current.
163
+ const r = await retargetLocal(args.pod_id);
164
+ localNote = r.applied && r.url ? ` comfyui-mcp switched back to local ComfyUI (${r.url}).` : "";
119
165
  }
120
166
  return { content: [{ type: "text", text: `Stopped pod \`${r.id}\` → **${r.desiredStatus}**. GPU released; disk kept.${localNote} Start it again with runpod_pod_start.` }] };
121
167
  }
@@ -128,7 +174,7 @@ export function registerRunpodTools(server) {
128
174
  name: z.string().optional().describe("Pod name (default 'comfyui-mcp')."),
129
175
  gpu_type: z.string().optional().describe(`GPU type to prefer, e.g. "NVIDIA GeForce RTX 4090". Default tries: ${RUNPOD_DEFAULT_GPU_TYPES.join(", ")}.`),
130
176
  cloud_type: z.enum(["COMMUNITY", "SECURE"]).optional().describe("COMMUNITY (cheaper, default) or SECURE."),
131
- connect: z.boolean().optional().describe("After it boots, wait and auto-connect comfyui-mcp to it (default false — deploy returns immediately; the pod still needs ~1-3min to boot)."),
177
+ connect: z.boolean().optional().describe("Auto-connect when booted: the ORCHESTRATOR waits for ComfyUI to answer (1-3min), then retargets + watches — this call returns immediately (default false: deploy only; connect later with runpod_pod_connect)."),
132
178
  }, async (args) => {
133
179
  try {
134
180
  const pod = await createPod({
@@ -138,8 +184,108 @@ export function registerRunpodTools(server) {
138
184
  });
139
185
  const cost = pod.costPerHr != null ? ` at $${pod.costPerHr.toFixed(3)}/hr` : "";
140
186
  const gpu = pod.machine?.gpuDisplayName ? ` on ${pod.machine.gpuDisplayName}` : "";
141
- // Broadcast its status to the control panels while it boots.
142
- getRunpodWatcher()?.watch(pod.id);
187
+ // Broadcast its status to the control panels while it boots — including
188
+ // the spawned-child case: a watch-ONLY control request (no retarget yet)
189
+ // so the orchestrator starts broadcasting immediately, not just after
190
+ // the readiness wait (codex finding: boot-time + timeout path were
191
+ // unwatched while the result claimed live status). NEVER displace an
192
+ // ACTIVE render target's watch for this — the current pod's idle
193
+ // auto-stop / dead-target cleanup is its billing guard (codex). Track
194
+ // whether it actually GOT watched so the result doesn't claim otherwise
195
+ // (codex finding: guarded-out creates still said "status broadcasting").
196
+ let watchedNow = false;
197
+ let activeOtherPod = null;
198
+ if (getRunpodWatcher()) {
199
+ const w = getRunpodWatcher();
200
+ const cur = w.watchedPodId();
201
+ const curIsActiveTarget = !!cur && getComfyUIBaseUrl().includes(cur);
202
+ if (curIsActiveTarget && cur !== pod.id)
203
+ activeOtherPod = cur;
204
+ if (!activeOtherPod) {
205
+ w.watch(pod.id);
206
+ watchedNow = true;
207
+ }
208
+ }
209
+ // Queue the orchestrator watch ONLY when this process has no watcher
210
+ // (spawned child) — in-process the direct watch above already applied
211
+ // synchronously, and a delayed duplicate could re-watch after a user's
212
+ // unwatch; the wantAck would also never be consumed (codex finding).
213
+ const watchReqFile = getRunpodWatcher() ? null : requestTargetChange({ watchPodId: pod.id, wantAck: true });
214
+ // In the spawned child the watcher is null — confirm the orchestrator
215
+ // actually accepted the watch (its active-target guard may REFUSE it
216
+ // to protect the current pod; claiming otherwise would lie — codex).
217
+ let watchedEffectively = watchedNow;
218
+ let watchUnknown = false;
219
+ if (!watchedEffectively && watchReqFile) {
220
+ const ack = await awaitTargetApplied(watchReqFile, 3_000);
221
+ if (ack)
222
+ watchedEffectively = ack.applied;
223
+ else
224
+ watchUnknown = true; // NO ack: unconfirmed — never claim watched (codex)
225
+ }
226
+ const watchNote = watchedNow
227
+ ? "Live status is broadcasting to the control panel (idle auto-stop active)."
228
+ : watchedEffectively
229
+ ? "Live status broadcasts on the orchestrator's next poll (idle auto-stop active)."
230
+ : watchUnknown
231
+ ? `Live status was requested but is UNCONFIRMED (no orchestrator ack yet) — check \`${pod.id}\` with runpod_pod_status in a moment; idle auto-stop may not be armed yet.`
232
+ : `NOTE: still rendering on the current pod — \`${pod.id}\` is booting UNWATCHED (its idle auto-stop is NOT armed) so the active pod keeps its billing guard; it gets watched when it becomes the target — or watch it yourself with runpod_watch once the current pod is free.`;
233
+ if (args.connect) {
234
+ // connect: true actually connects (#269 — it was a documented no-op),
235
+ // but the WAIT lives in the orchestrator, not here: an MCP tool call
236
+ // dies at the SDK's 60s default timeout while a pod takes 1-3min to
237
+ // boot (codex finding). Ask the orchestrator to probe until ready,
238
+ // then retarget+watch; this call returns immediately. NO channel
239
+ // (headless MCP server, no progress dir) → say so honestly instead of
240
+ // promising an auto-connect nothing will perform (codex).
241
+ const url = runpodProxyUrl(pod.id);
242
+ const reqFile = requestTargetChange({ watchPodId: pod.id, connectWhenReady: { url, podId: pod.id }, expectedCurrentUrl: getComfyUIBaseUrl(), wantAck: true });
243
+ if (!reqFile) {
244
+ return {
245
+ content: [
246
+ {
247
+ type: "text",
248
+ text: `🚀 Deployed pod \`${pod.id}\` (${pod.name || "comfyui-mcp"})${gpu}${cost}. It's booting (~1-3min) — auto-connect AND live status/idle auto-stop are unavailable in this mode (no panel orchestrator), so connect once it's up with runpod_pod_connect \`${pod.id}\`, watch it with runpod_pod_status, and stop it with runpod_pod_stop when done to end billing.\n\n${GPU_CLI_CREDIT}`,
249
+ },
250
+ ],
251
+ };
252
+ }
253
+ // Confirm the registration actually landed (a newer target choice
254
+ // can generation-reject it — codex finding: the tool still promised
255
+ // auto-connect while no pending entry existed). A MISSING ack (e.g.
256
+ // the channel dir rotating under a restart) is UNCONFIRMED, not a
257
+ // promise (codex finding).
258
+ const regAck = await awaitTargetApplied(reqFile, 4_000);
259
+ if (!regAck) {
260
+ return {
261
+ content: [
262
+ {
263
+ type: "text",
264
+ text: `🚀 Deployed pod \`${pod.id}\` (${pod.name || "comfyui-mcp"})${gpu}${cost}. It's booting — auto-connect is UNCONFIRMED (the orchestrator hasn't acked the registration). Check \`${pod.id}\` with runpod_pod_status in a moment, or connect manually with runpod_pod_connect when it's ready. Stop it with runpod_pod_stop when done to end billing.\n\n${GPU_CLI_CREDIT}`,
265
+ },
266
+ ],
267
+ };
268
+ }
269
+ if (!regAck.applied) {
270
+ return {
271
+ content: [
272
+ {
273
+ type: "text",
274
+ text: `🚀 Deployed pod \`${pod.id}\` (${pod.name || "comfyui-mcp"})${gpu}${cost}. It's booting, but auto-connect was SKIPPED — a newer target choice won the race. Connect manually when ready: runpod_pod_connect \`${pod.id}\`. Stop it with runpod_pod_stop when done to end billing.\n\n${GPU_CLI_CREDIT}`,
275
+ },
276
+ ],
277
+ };
278
+ }
279
+ return {
280
+ content: [
281
+ {
282
+ type: "text",
283
+ text: `🚀 Deployed pod \`${pod.id}\` (${pod.name || "comfyui-mcp"})${gpu}${cost}. It's booting — the orchestrator will AUTO-CONNECT when ComfyUI answers (usually 1-3min; it gives up honestly after 8). ` +
284
+ `${watchNote} Stop it with runpod_pod_stop when done to end billing.\n\n${GPU_CLI_CREDIT}`,
285
+ },
286
+ ],
287
+ };
288
+ }
143
289
  return {
144
290
  content: [
145
291
  {
@@ -147,7 +293,7 @@ export function registerRunpodTools(server) {
147
293
  text: `🚀 Deployed pod \`${pod.id}\` (${pod.name || "comfyui-mcp"})${gpu}${cost}. ` +
148
294
  `It's booting now — ComfyUI takes ~1-3min to come up (model volume warm-up on first boot). ` +
149
295
  `Watch it with runpod_pod_status, then runpod_pod_connect \`${pod.id}\` once ready. ` +
150
- `Live status is broadcasting to the control panel (idle auto-stop active). ` +
296
+ `${watchNote} ` +
151
297
  `Stop it with runpod_pod_stop when done to end billing.\n\n${GPU_CLI_CREDIT}`,
152
298
  },
153
299
  ],
@@ -163,12 +309,16 @@ export function registerRunpodTools(server) {
163
309
  const w = getRunpodWatcher();
164
310
  const was = w?.watchedPodId();
165
311
  w?.unwatch();
166
- const url = retargetLocal();
312
+ const r = await retargetLocal();
167
313
  return {
168
314
  content: [
169
315
  {
170
316
  type: "text",
171
- text: `✅ comfyui-mcp now targets the local ComfyUI (${url}). Renders run on this machine.` +
317
+ text: (r.applied && r.url
318
+ ? `✅ comfyui-mcp now targets the local ComfyUI (${r.url}). Renders run on this machine.`
319
+ : r.applied
320
+ ? `✅ comfyui-mcp is switching back to the local ComfyUI — the orchestrator resolves its remembered target and un-watches the pod.`
321
+ : `⚠️ The local switch was skipped — the active target changed in the meantime (check runpod_status / the host pill).`) +
172
322
  (was ? ` Pod \`${was}\` is still running — stop it with runpod_pod_stop to end billing, or reconnect with runpod_pod_connect.` : ""),
173
323
  },
174
324
  ],
@@ -253,6 +403,11 @@ export function registerRunpodTools(server) {
253
403
  if (!comfyuiPortExposed(pod)) {
254
404
  return { content: [{ type: "text", text: `Pod \`${pod.id}\` is RUNNING but doesn't expose ComfyUI on port ${RUNPOD_COMFYUI_PORT} — run runpod_pod_troubleshoot for the fix.` }] };
255
405
  }
406
+ // The generation guard needs the PRE-retarget view (the target I
407
+ // believe the orchestrator is on NOW) — capturing it after
408
+ // setComfyuiTarget would stamp the NEW url and the orchestrator would
409
+ // reject its own legitimate request every time (codex finding).
410
+ const preRetargetUrl = getComfyUIBaseUrl();
256
411
  const url = runpodProxyUrl(pod.id);
257
412
  const probeRes = await probe(`${url}/system_stats`);
258
413
  if (!probeRes.ok) {
@@ -269,6 +424,32 @@ export function registerRunpodTools(server) {
269
424
  if (!applied)
270
425
  return { content: [{ type: "text", text: `Resolved ${url} but could not retarget (unexpected URL parse failure).` }] };
271
426
  resetClient();
427
+ // Cover the spawned-child case ONLY: it asks the orchestrator to
428
+ // retarget + watch through the control channel (#269). In-process the
429
+ // direct path already did everything synchronously — replaying the
430
+ // same URL through the channel up to 700ms later could overwrite a
431
+ // NEWER choice made meanwhile (codex finding). The generation guard
432
+ // (expectedCurrentUrl) lets the orchestrator drop it if one happened.
433
+ if (progressEnabled()) {
434
+ // Confirm the AUTHORITATIVE retarget before reporting success: the
435
+ // generation guard may have rejected this (a newer target won), and
436
+ // only the child's private config changed otherwise (codex finding).
437
+ const reqFile = requestTargetChange({ url, watchPodId: pod.id, expectedCurrentUrl: preRetargetUrl, wantAck: true });
438
+ const ack = reqFile ? await awaitTargetApplied(reqFile, 4_000) : null;
439
+ if (!ack?.applied) {
440
+ // Rejected by the generation guard (a newer target won) — realign
441
+ // THIS child to the authoritative target too, or it keeps using
442
+ // the rejected pod for the rest of the turn (codex finding).
443
+ if (ack?.url) {
444
+ setComfyuiTarget(ack.url);
445
+ resetClient();
446
+ }
447
+ return { content: [{ type: "text", text: `⚠️ Pod \`${pod.id}\` is ready at ${url}, but the session did NOT retarget — the orchestrator moved to a newer target in the meantime (or the request didn't land). Retry runpod_pod_connect \`${pod.id}\` if that's wrong.` }] };
448
+ }
449
+ // Align this child to the confirmed target (its setComfyuiTarget
450
+ // above already did, but keep it explicit after the ack).
451
+ return { content: [{ type: "text", text: `✅ Connected to RunPod pod \`${pod.id}\` — comfyui-mcp now targets ${url}. All comfyui tools this session run against the pod. Live status is now broadcasting to the control panel (with idle auto-stop).` }] };
452
+ }
272
453
  // Start live status broadcasts + idle auto-stop for this pod (control panels).
273
454
  getRunpodWatcher()?.watch(pod.id);
274
455
  return { content: [{ type: "text", text: `✅ Connected to RunPod pod \`${pod.id}\` — comfyui-mcp now targets ${url}. All comfyui tools this session run against the pod. Live status is now broadcasting to the control panel (with idle auto-stop).` }] };
@@ -1 +1 @@
1
- {"version":3,"file":"runpod.js","sourceRoot":"","sources":["../../src/tools/runpod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runpod.js","sourceRoot":"","sources":["../../src/tools/runpod.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comfyui-mcp",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "mcpName": "io.github.artokun/comfyui-mcp",
5
5
  "description": "Local-first, agent-native control plane for ComfyUI — MCP server + autonomous sidebar agent that drives your live graph in natural language on ANY LLM: Claude/ChatGPT/Gemini on your subscription (no API key), free local models via Ollama (fully offline), or any hosted model via an OpenAI-compatible endpoint (DeepSeek, GLM, MiMo, OpenRouter). Generate images, video & audio, author and run workflows, manage models and custom nodes; a compact tool-router mode keeps even 4B models effective, and a built-in LLM Arena benchmarks them on real ComfyUI tasks. Also a Claude Code plugin with skills, slash commands, and installer packs. Local, LAN, VPS, or Comfy Cloud.",
6
6
  "homepage": "https://comfyui-mcp.artokun.io/docs",
@@ -214,6 +214,13 @@ const CATEGORIES: Array<{
214
214
  "train_prepare_dataset", "train_start", "train_status", "train_cancel",
215
215
  ],
216
216
  },
217
+ {
218
+ group: "Apps (micro-apps)",
219
+ slug: "apps",
220
+ icon: "layout-grid",
221
+ description: "List, inspect, and run the panel's micro-apps — named, one-click workflow apps with exposed inputs — for canvas-less clients (mobile).",
222
+ tools: ["apps_list", "apps_get", "apps_run", "apps_run_status", "apps_import"],
223
+ },
217
224
  {
218
225
  group: "comfy-cli",
219
226
  slug: "comfy-cli",