v0.5.0
Thin MCP wrapper over comfy-cli for driving a local ComfyUI.
42 commits since v0.4.0. Tool count 39 to 50.
Breaking changes
Read this section before upgrading.
- The package is now
comfy-mcp(#152). The distribution, the import package, the console script and the failure-log directory all move offcomfy-local-mcp/comfy_local_mcp.pip install .will not finish this for you, becausecomfy-mcpis a new name and the old install stays on yourPATHpointing at a package that no longer exists: runpip uninstall comfy-local-mcpfirst, reinstall, then change"command"tocomfy-mcpin every MCP client config. The README carries the full migration table. - Relicensed from Apache-2.0 to
AGPL-3.0-or-later OR LicenseRef-Comfy-Commercial(#135), the same dual license Comfy Desktop is moving to. Commercial terms via licensing@comfy.org. - Requires MCP Python SDK 2.x (
mcp>=2,<3, #111). SDK 2.0 deletedmcp.server.fastmcpoutright with no shim, and the elicitation types behind the spend-confirmation interlock moved with it. - comfy-cli floor raised to >= 1.13.0 (#106), the first release carrying the
login_urleventauth_loginblocks on. On 1.12.0 that tool started a login, sat there, and only then reported failure. Now the version guard says no on the first call instead. fetch_templatereturns{path, local_check}rather than a bare path string (#104).discoverdefaults to--schemas-only(#112). The full surface was 181 KB against a client output cap of 25k tokens, and the cap truncates rather than rejects, so the tool had been handing back JSON cut mid-structure that would not parse. It is now roughly 35 KB and actually usable.
New tools
Eleven of them, taking the surface from 39 to 50.
node_dependencies(#155) reports each custom node pack's declared Python requirements against what is installed in the workspace venv, including for a registry pack you have not installed yet, so conflicts can be checked before installing rather than after.emit_partner_workflow(#113) lets the local ComfyUI execute partner nodes.list_partner_modelsandpartner_model_schema(#118) discover partner models and their parameters.system_statsandfree_memory(#116) for VRAM coordination.list_workflow_notes(#117) reads a template's authored notes.switch_comfyui_version(#126), consent gated.download_status,wait_for_downloadandcancel_download(#105), the background half of the download rework below.
Downloads stop reporting false failures
download_model now submits comfy model download --background and polls, instead of holding the MCP request open for the whole byte transfer (#105). A multi-GB checkpoint outlasts a typical client's 120s request deadline, so the client fired a timeout while the download was quietly succeeding, with no handle to check the real outcome. Bound expiry now returns {timed_out: true, download_id, status} rather than raising, because a slow download is progress, not an error. A comfy-cli without the background verbs falls back to the old synchronous path; #132 makes that fallback honor the caller's timeout and die on cancel.
Consent gates
- Network-exposing launch flags (#131).
launch_comfyuiandrestart_comfyuiforwardedextra_argsverbatim, so--listen 0.0.0.0or--enable-cors-headerpublished an unauthenticated ComfyUI, meaning arbitrary workflow execution plus file reads and writes under the ComfyUI directory, to anything that could route to the machine. Those specific arguments now require confirmation. An ordinary launch is untouched. run_workflow(confirm_spend=True)(#133) forwards--allow-spend, matchingpartner_generateandrun_template.switch_comfyui_version(#126) prompts on every call, since comfy-cli does not gate it at all.
Also in this release
get_template and fetch_template cross-check a template against the live install and tell you before you run it that a node class or model option is missing, which was previously a successful fetch followed by a mystifying runtime failure (#104). get_logs gained a port hint plus source and staleness metadata (#119). Server instructions now route off server_info's hardware block (#114). emit_partner_workflow gates on a comfy-cli that actually has --emit-workflow (#115).
Docs: the COMFYUI_URL / COMFY_LOCAL_URL collision is resolved (#154), SECURITY.md documents the threat model (#129), subgraph templates are written down as fully supported so agents stop refusing to run them (#107), and every catalog tool states a per-surface freshness policy (#134).
Plus routine maintenance: secret-scanning jobs (#143, #144, #145), CI pins and the groom sweep (#109, #110, #149, #150, #151), CODEOWNERS (#127, #141), and docs (#125, #128, #130, #142, #146, #147, #148, #153).
Requirements
comfy-cli >= 1.13.0, Python >= 3.10, MCP Python SDK >= 2, < 3.
Full changelog: v0.4.0...v0.5.0