The second batch of MCP tools: they change things, through the same code the UI uses. - Canvas, done by the open ComfyUI page: describe_canvas, set_prompt, set_model, add_lora, place_combo, check_workflow_models, fix_workflow_models, run_workflow, open_in_anomalous. api/mcp_bridge.py sends the action over ComfyUI's websocket and waits; web/modules/mcp_bridge.js claims it (visible tab first), does it with Anomalous's canvas code and answers. Each change is one Ctrl+Z step, shows a toast and is logged as the AI's (activity entries carry via: "mcp", with their undo). - This server: scan_models (new / look up again / picked models, via /anomalous/scan_all), list_voices and speak (Anomalous TTS through /prompt and /history). - graph_splice.js takes the chain's slot types, so a LoRA can go into a model-only (UNet, Flux) chain as LoraLoaderModelOnly; the default (MODEL and CLIP) is unchanged. - Nothing deletes or renames files; acting tools are not marked read-only, so AI apps ask before calling them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Architecture Topic Guide
Start with the repository-root ARCHITECTURE.md, then
open only the topic needed for the current task.
backend.md: Python routes, filesystem safety, persistence, scan state, model sidecars, and backend performance.frontend.md: extension bootstrap, UI ownership, localization, media lifecycle, panel state, and graph mutations.recipes.md: Workflow Recipes, packages, galleries, Parameter Notebooks, prompt roles, and recipe-to-model transitions.material-library.md: saved prompts and node values (material files), keeping an output image, and dragging prompts onto the canvas.recipe-model-lifecycle.md: authoritative model fields, Hash synchronization, local matching, partial append, and note privacy.model-resolution.md: model provenance, Model Check, hash injection, model scanning, and recovery policy.../decisions/README.md: concise records of product and architectural decisions that still explain current behavior.
These documents describe current contracts rather than implementation history.
For exact changes, use Git history. For user-visible releases, use
CHANGELOG.md. For recurring implementation traps, use
.agents/logs/ai_lessons.md.