v0.4.0
Thin MCP wrapper over comfy-cli for driving a local ComfyUI.
Highlights since v0.3.0
auth_login— an agent can now get you signed in to Comfy Cloud instead of telling you to run the CLI by hand. It startscomfy cloud login --no-browserin the background and hands back the OAuth URL for you to open; confirm withauth_status. comfy-cli owns the PKCE flow and the loopback callback, so no OAuth logic lives here and no tokens ever cross the tool boundary. One sign-in at a time: calling it again mid-flow re-reports the same URL rather than racing a second listener. (#98)update_comfyui— wrapscomfy update [all|comfy|cli]. (#92)- Structured workflow slots —
{address, value}slot items alongside the existing string form. (#100) run_template(wait=True)— streams live progress, matchingrun_workflow. (#82)- Opt-in failure log — a local rotating log of comfy-cli failures for debugging, off by default. (#77)
Hardening
A full sweep of the argv boundary: every remaining unguarded argument site now rejects option-like and NUL input (#83, #85, #86, #87, #88, #94), download_model confines relative_path to the models tree (#89, #87), oversized and NaN timeouts are clamped rather than forwarded (#78), and a timed-out comfy-cli spawn reaps its whole process group (#97).
Plus: comfy-cli spawns are now asynchronous throughout (#102), launch guarantees COMFY_BIN's directory is on the child PATH (#96), and restart_comfyui recognizes comfy-cli's plain "nothing to stop" message (#93).
Also fixed
generate_image runs the local text-to-image template instead of the partner-only comfy generate verb (#74); get_queue no longer lists cloud-tracked jobs among the local ones (#71); a macOS Full Disk Access failure now explains the fix instead of relaying a raw PermissionError (#72); and envelope failure messages carry the stdout/stderr tails (#73).
Requirements unchanged
comfy-cli >= 1.12.0, Python >= 3.10. auth_login does not raise the floor.
Full changelog: v0.3.0...v0.4.0