v0.2.0
First tagged release of comfy-local-mcp: the local MCP server that lets agents drive a local ComfyUI install through comfy-cli. Everything since the initial 0.1.0 scaffold rides in here.
Highlights
Tool surface
- Run and monitor:
run_workflow(streams progress via MCP progress notifications, #11),wait_for_job(#9),watch_job(#20),get_queue/cancel_job(#4),fetch_outputswith inline image return (#23) - One-shot generation:
generate_imagewrappingcomfy generate(#27) - Diagnostics:
get_logs(#24, line-capped in #31),get_execution_error(#22),server_infonow verifies comfy-cli envelope/version compatibility (#37) - Workflow building: slot editing via
list_workflow_slots/set_workflow_slot/vary_workflow(#16), node graph introspection (#15), node and model discovery (#6), template search and fetch (#7, tightened in #41) - Lifecycle and assets:
launch_comfyui/stop_comfyui(#8) /restart_comfyui(#23),download_model(#21),upload_fileandvalidate_workflow(#5), CLI introspection viadiscover/which(#18)
Reliability
search_modelspasses the query via--textinstead of positionally, fixing empty results (#35)- Exit-0 comfy-cli commands without a JSON envelope now count as success for lifecycle commands (#36) and
download_model(#49) - comfy-cli timeouts surface captured stdout/stderr tails instead of failing silently (#40)
- comfy-cli file watcher suppressed via
COMFY_NO_WATCHso runs terminate cleanly (#38) - Bounded credential retry and
COMFY_API_KEYdocumentation for partner/API nodes (#42) validate_workflowdocuments the upstream validator's known blind spots (#46)
Project
- Relicensed from GPL-3.0 to Apache-2.0 (#25)
- Requires comfy-cli >= 1.12.0 (#24)
- Install and client-configuration guide for Claude Code, Claude Desktop, and Cursor (#12)
Install
See the README for install and per-client configuration.
What's Changed
- feat: local Comfy MCP — thin Python wrapper over comfy-cli (4 tools) by @mattmillerai in #1
- ci: add GitHub Actions gate (pytest + ruff) and regression tests by @mattmillerai in #2
- ci: harden workflow (persist-credentials, job name, timeout) and cap ruff by @mattmillerai in #3
- feat: job management tools — cancel_job + get_queue by @mattmillerai in #4
- feat: add upload_file + validate_workflow passthroughs by @mattmillerai in #5
- feat: discovery tools — search_nodes / get_node / search_models by @mattmillerai in #6
- feat: template tools — search_templates / get_template / fetch_template by @mattmillerai in #7
- feat: lifecycle tools — launch_comfyui + stop_comfyui by @mattmillerai in #8
- feat: wait_for_job tool + MCP server instructions by @mattmillerai in #9
- test: e2e smoke harness for the no-model round-trip by @mattmillerai in #10
- feat: stream run_workflow progress via MCP progress notifications by @mattmillerai in #11
- chore: add day-one governance files (SECURITY, dependabot, PR template, secret-scanning, AGENTS) by @mattmillerai in #13
- docs: install & client-configuration guide (Claude Code / Desktop / Cursor) by @mattmillerai in #12
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #14
- ci: add cursor-review caller (wire into shared reusable workflow) by @mattmillerai in #19
- feat: node graph-introspection tools (ls / upstream / downstream / path / types / categories) by @mattmillerai in #15
- feat: workflow slot-editing tools — list_workflow_slots / set_workflow_slot / vary_workflow by @mattmillerai in #16
- refactor: wrap comfy download --where local in fetch_outputs by @mattmillerai in #17
- feat: add watch_job tool to stream live progress for async-submitted jobs by @mattmillerai in #20
- feat: add download_model tool wrapping
comfy model downloadby @mattmillerai in #21 - feat: add discover + which introspection tools by @mattmillerai in #18
- feat: add get_execution_error diagnostics tool (BE-2384) by @mattmillerai in #22
- ci: bump cursor-review to github-workflows@3aead23 by @cloud-code-bot[bot] in #47
- docs: public-launch polish — README beta + community health files by @mattmillerai in #26
- feat: add restart_comfyui and inline image return from fetch_outputs by @mattmillerai in #23
- feat: add generate_image tool wrapping comfy generate (BE-2536) by @mattmillerai in #27
- fix(e2e): await run_workflow — async drift broke the live smoke by @mattmillerai in #32
- fix(search_models): pass query via --text, not positional (BE-2952) by @mattmillerai in #35
- fix: treat exit-0 lifecycle commands as success when no JSON envelope (BE-2953) by @mattmillerai in #36
- fix(search_templates): filter real rows payload, compact projection, pagination + gallery-filter passthrough (BE-3342) by @mattmillerai in #41
- docs(validate_workflow): disclose known comfy-cli validator blind spots (BE-3360) by @mattmillerai in #46
- feat: add get_logs tool and require comfy-cli >= 1.12.0 by @mattmillerai in #24
- chore: relicense GPL-3.0 → Apache-2.0 by @mattmillerai in #25
- feat: verify comfy-cli envelope/version compatibility in server_info by @mattmillerai in #37
- fix: suppress comfy-cli watcher via COMFY_NO_WATCH and fix async e2e smoke (BE-3074) by @mattmillerai in #38
- fix(get_logs): cap oversized log lines to bound agent context (BE-2388) by @mattmillerai in #31
- fix(download_model): treat exit-0 no-envelope download as success (BE-3345) by @mattmillerai in #49
- fix(timeout): surface captured stdout/stderr tails on comfy-cli timeout (BE-3343) by @mattmillerai in #40
- feat(partner-auth): document COMFY_API_KEY, pass CLI hint/details verbatim, bounded credential retry by @mattmillerai in #42
- fix: remove shadowing duplicate _parse_version, unblock version-check tests (BE-3474) by @mattmillerai in #51
- chore: bump version to 0.2.0 for first tagged release by @mattmillerai in #52
New Contributors
- @dependabot[bot] made their first contribution in #14
- @cloud-code-bot[bot] made their first contribution in #47
Full Changelog: https://github.com/Comfy-Org/comfy-local-mcp/commits/v0.2.0