comfyui-mcp 0.51.53 → 0.51.54
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.
|
@@ -59,6 +59,13 @@ export function startPanelMcpHttpServer(bridge, port, host = "127.0.0.1", workfl
|
|
|
59
59
|
// tabId -> (sessionId -> Session). A tab can hold multiple Codex sessions
|
|
60
60
|
// across reconnects; each is its own server+transport over the SAME tab ctx.
|
|
61
61
|
const tabs = new Map();
|
|
62
|
+
// The port ACTUALLY bound, which is not always the port asked for: `listen(0)`
|
|
63
|
+
// means "any free port", and the OS picks it. Everything downstream — the URL
|
|
64
|
+
// handed to the backend, the transport's DNS-rebinding allowlist, and the Host
|
|
65
|
+
// guard below — has to name the real one, or a server that came up fine is
|
|
66
|
+
// unreachable at the address it advertises and rejects the requests that do
|
|
67
|
+
// arrive. Kept in sync at `listen`, before any of those readers can run.
|
|
68
|
+
let boundPort = port;
|
|
62
69
|
const newSession = async (tabId) => {
|
|
63
70
|
const server = new McpServer({ name: "comfyui-panel", version: "1.0.0" });
|
|
64
71
|
// Tab-bound context: every tool forwards to the bridge for THIS tab — the
|
|
@@ -70,7 +77,7 @@ export function startPanelMcpHttpServer(bridge, port, host = "127.0.0.1", workfl
|
|
|
70
77
|
// host to 127.0.0.1 to reach this loopback server). We also Host/Origin-guard
|
|
71
78
|
// in the request handler since we hand-roll http.createServer.
|
|
72
79
|
enableDnsRebindingProtection: true,
|
|
73
|
-
allowedHosts: [`127.0.0.1:${
|
|
80
|
+
allowedHosts: [`127.0.0.1:${boundPort}`, `localhost:${boundPort}`],
|
|
74
81
|
allowedOrigins: [], // no browser origin should ever reach this (Codex sends none)
|
|
75
82
|
onsessioninitialized: (sid) => {
|
|
76
83
|
let m = tabs.get(tabId);
|
|
@@ -101,7 +108,7 @@ export function startPanelMcpHttpServer(bridge, port, host = "127.0.0.1", workfl
|
|
|
101
108
|
// local Codex app-server should reach it — and it sends an exact-loopback
|
|
102
109
|
// Host and NO browser Origin. Reject anything else before doing any work.
|
|
103
110
|
const hostHeader = req.headers.host;
|
|
104
|
-
if (hostHeader !== `127.0.0.1:${
|
|
111
|
+
if (hostHeader !== `127.0.0.1:${boundPort}` && hostHeader !== `localhost:${boundPort}`) {
|
|
105
112
|
res.writeHead(403, { "content-type": "application/json" }).end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32001, message: "Forbidden host." }, id: null }));
|
|
106
113
|
return;
|
|
107
114
|
}
|
|
@@ -117,6 +124,34 @@ export function startPanelMcpHttpServer(bridge, port, host = "127.0.0.1", workfl
|
|
|
117
124
|
const sessionId = req.headers["mcp-session-id"];
|
|
118
125
|
const tabSessions = tabs.get(tabId);
|
|
119
126
|
const existing = sessionId ? tabSessions?.get(sessionId) : undefined;
|
|
127
|
+
// #1524 — a session id we do not know is a SESSION problem, and the status
|
|
128
|
+
// code is the only place the protocol says so. 404 means "that session is
|
|
129
|
+
// gone", on which the client MUST open a new one with a fresh
|
|
130
|
+
// InitializeRequest; 400 means "this request was malformed", which no
|
|
131
|
+
// client retries and none re-initializes on. Answering the first case with
|
|
132
|
+
// the second is why the panel half of a dropped session never came back
|
|
133
|
+
// while the stdio `comfyui` half — which the client simply respawns, and
|
|
134
|
+
// which needs no such signal — always did.
|
|
135
|
+
//
|
|
136
|
+
// Every session map here is process-local, so an orchestrator restart
|
|
137
|
+
// invalidates every id at once. That is not an edge case on this install:
|
|
138
|
+
// the dev build self-restarts on rebuild.
|
|
139
|
+
//
|
|
140
|
+
// Scoped deliberately to "an id was presented and is unknown". A request
|
|
141
|
+
// with NO id keeps its 400 below: there is no session to recover, and
|
|
142
|
+
// sending it to re-initialize something it never opened would loop it.
|
|
143
|
+
if (sessionId && !existing) {
|
|
144
|
+
res.writeHead(404, { "content-type": "application/json" }).end(JSON.stringify({
|
|
145
|
+
jsonrpc: "2.0",
|
|
146
|
+
error: {
|
|
147
|
+
code: -32001,
|
|
148
|
+
message: "Session not found — this session id is not known to this orchestrator " +
|
|
149
|
+
"(it may have restarted). Open a new session with an initialize request.",
|
|
150
|
+
},
|
|
151
|
+
id: null,
|
|
152
|
+
}));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
120
155
|
if (existing) {
|
|
121
156
|
// Established session — GET (SSE), POST (messages), DELETE (close).
|
|
122
157
|
const body = req.method === "POST" ? await readJsonBody(req) : undefined;
|
|
@@ -165,10 +200,16 @@ export function startPanelMcpHttpServer(bridge, port, host = "127.0.0.1", workfl
|
|
|
165
200
|
return new Promise((resolve, reject) => {
|
|
166
201
|
httpServer.on("error", (err) => reject(err));
|
|
167
202
|
httpServer.listen(port, host, () => {
|
|
168
|
-
|
|
203
|
+
// Read the port back off the socket rather than echoing the request. They
|
|
204
|
+
// are the same number for every caller that names one, and different for
|
|
205
|
+
// `listen(0)` — where echoing produced a server advertising `:0`, which no
|
|
206
|
+
// client can dial and whose own Host guard would reject anything that did.
|
|
207
|
+
const addr = httpServer.address();
|
|
208
|
+
boundPort = typeof addr === "object" && addr ? addr.port : port;
|
|
209
|
+
logger.info(`[panel-mcp-http] panel_* MCP listening on http://${host}:${boundPort}/<tabId> (loopback, Codex)`);
|
|
169
210
|
resolve({
|
|
170
|
-
port,
|
|
171
|
-
urlFor: (tabId) => `http://${host}:${
|
|
211
|
+
port: boundPort,
|
|
212
|
+
urlFor: (tabId) => `http://${host}:${boundPort}/${encodeURIComponent(tabId)}`,
|
|
172
213
|
stop: async () => {
|
|
173
214
|
for (const tabSessions of tabs.values()) {
|
|
174
215
|
for (const s of tabSessions.values()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-mcp-http.js","sourceRoot":"","sources":["../../src/orchestrator/panel-mcp-http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"panel-mcp-http.js","sourceRoot":"","sources":["../../src/orchestrator/panel-mcp-http.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,mEAAmE;AACnE,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,iFAAiF;AACjF,iFAAiF;AACjF,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,4DAA4D;AAE5D,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkB5C;gDACgD;AAChD,SAAS,YAAY,CAAC,GAAoB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,SAAS,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAgB,EAChB,IAAY,EACZ,IAAI,GAAG,WAAW,EAClB,eAAqC;IAErC,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAgC,CAAC;IAErD,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAoB,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,0EAA0E;QAC1E,mEAAmE;QACnE,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;YACtC,6EAA6E;YAC7E,8EAA8E;YAC9E,+DAA+D;YAC/D,4BAA4B,EAAE,IAAI;YAClC,YAAY,EAAE,CAAC,aAAa,SAAS,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC;YAClE,cAAc,EAAE,EAAE,EAAE,8DAA8D;YAClF,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;oBACd,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC;gBACD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAChC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gCAAgC;YAC7E,CAAC;QACH,CAAC,CAAC;QACF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAW,YAAY,CAAC,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE;QACpF,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,6EAA6E;gBAC7E,yEAAyE;gBACzE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpC,IAAI,UAAU,KAAK,aAAa,SAAS,EAAE,IAAI,UAAU,KAAK,aAAa,SAAS,EAAE,EAAE,CAAC;oBACvF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAClG,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wCAAwC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CACzH,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,oCAAoC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CACrH,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;gBACtE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAErE,2EAA2E;gBAC3E,0EAA0E;gBAC1E,8DAA8D;gBAC9D,sEAAsE;gBACtE,2EAA2E;gBAC3E,wEAAwE;gBACxE,yEAAyE;gBACzE,2CAA2C;gBAC3C,EAAE;gBACF,sEAAsE;gBACtE,0EAA0E;gBAC1E,0CAA0C;gBAC1C,EAAE;gBACF,yEAAyE;gBACzE,sEAAsE;gBACtE,uEAAuE;gBACvE,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC;wBACb,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,CAAC,KAAK;4BACZ,OAAO,EACL,wEAAwE;gCACxE,yEAAyE;yBAC5E;wBACD,EAAE,EAAE,IAAI;qBACT,CAAC,CACH,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,oEAAoE;oBACpE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACzE,MAAM,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACvD,OAAO;gBACT,CAAC;gBAED,wDAAwD;gBACxD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;wBACrD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,kEAAkE;4BAClE,yDAAyD;4BACzD,IAAI,CAAC;gCACH,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;4BAC/B,CAAC;4BAAC,MAAM,CAAC;gCACP,cAAc;4BAChB,CAAC;4BACD,MAAM,CAAC,CAAC;wBACV,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC;wBACb,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qDAAqD,EAAE;wBACvF,EAAE,EAAE,IAAI;qBACT,CAAC,CACH,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,sCAAsC;gBACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CACjH,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAC5D,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CACzG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACjC,0EAA0E;YAC1E,yEAAyE;YACzE,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;YAClC,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,CAAC,IAAI,CACT,oDAAoD,IAAI,IAAI,SAAS,4BAA4B,CAClG,CAAC;YACF,OAAO,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBACrF,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;wBACxC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;4BACrC,IAAI,CAAC;gCACH,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;4BAC5B,CAAC;4BAAC,MAAM,CAAC;gCACP,8BAA8B;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "comfyui-mcp",
|
|
3
|
-
"version": "0.51.
|
|
3
|
+
"version": "0.51.54",
|
|
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",
|