Local GPU Imagegen
This server is an MCP control plane for local GPU image generation, primarily managing reviewed ComfyUI workflows (with WebUI and Diffusers compatibility), model trust, and durable run evidence.
Check local image-generation readiness (
local_gpu_imagegen_check): Python/CUDA/WebUI/backend status.Generate images through compatibility tools (
local_gpu_generate_image): txt2img, img2img, inpaint; WebUI/Diffusers; seeds, samplers, schedulers, LoRA, CPU fallback, explicit downloads.Discover local models (
local_gpu_discover_models) without loading weights: API-only or bounded filesystem scans with stages for index, fingerprint, verify, revoke.Inspect and register ComfyUI workflows (
local_gpu_inspect_workflow,local_gpu_register_workflow): hash workflows, infer safe txt2img bindings, register immutable proposals.Manage model trust (
local_gpu_set_model_trust): inspect/approve/revoke exact local model identities, including split-model component bundles and public-evidence metadata.Recommend routes (
local_gpu_recommend_models): one exact route plus alternatives based on profile, style, dimensions, VRAM, and authorization scope.List profiles and capabilities (
local_gpu_list_profiles): available visual-asset profiles, models, styles, and backend capabilities.Run durable visual-asset runs (
local_gpu_start_run,local_gpu_get_run,local_gpu_generate_round): freeze confirmed intents, track rounds, idempotency, recovery, and manifest state.Create immutable child revisions (
local_gpu_branch_run): preserve/change contracts with prompt-refine, img2img, or inpaint edit modes.Prepare and confirm inpainting masks (
local_gpu_prepare_mask,local_gpu_confirm_mask): geometry/user masks with JPEG overlays and approval binding.Record structured reviews (
local_gpu_record_review): rubric scores, visual checks, hard failures, constraint results, and next-action decisions.Finalize reviewed candidates (
local_gpu_finalize_run): publish the user-confirmed round as final PNG, with optional anime-only Real-ESRGAN upscaling.Clean up run artifacts (
local_gpu_cleanup_run): remove intermediates or the full confirmed run directory.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Local GPU Imagegenrun this supported txt2img ComfyUI workflow from Codex and show me the result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Local GPU Imagegen
An MCP-first control plane with cryptographic model identity, explicit approvals, and durable run evidence for the ComfyUI setup you already use.
Run a supported ComfyUI workflow from Codex without modifying your setup.
uvx local-gpu-imagegen verify
uvx local-gpu-imagegen setup codex --applySetup stores a resolved, version-pinned launcher equivalent to
uvx --from local-gpu-imagegen==0.9.1 local-gpu-imagegen serve; it does not
depend on a console script from the temporary uvx environment. If an older
entry reports client_setup_drift, remove only that client entry and apply
setup again. Starting ComfyUI does not repair an MCP launcher failure; backend
readiness is checked after the client loads the server.
Ask Codex:
Run this supported ComfyUI API workflow from Codex: <path>.
Use this prompt: <prompt>. Preserve every other workflow setting.This path requires Python 3.11 or 3.12, Codex, an already-running local ComfyUI
instance, an already-installed model, and one ordinary txt2img API workflow
using the supported built-in topology. It uses your existing local image
backend and model with no silent model downloads or switches. It does not
install a backend, download a model, convert UI-format JSON, or execute a
workflow that requires unsupported custom nodes. An explicit Windows portable
managed-start option is documented below.
The v0.9 supported host scope is Windows 10/11 x64 with NVIDIA. The single
py3-none-any wheel describes pure-Python packaging, not a separate Linux
edition or a claim of Linux managed-generation support. Ubuntu CI verifies the
platform-neutral MCP, packaging, existing-backend, and unsupported-platform
contracts; Windows runs the complete portable-bootstrap suite.
ComfyUI generates the pixels. Local GPU Imagegen controls authority, reproducibility, review, and recovery around that generation.
Five-minute Quickstart | Launch playbook | Alternatives
Bring Your Own ComfyUI Workflow
The retained Codex workflow-onboarding session inspected and registered a supported graph, then bound its exact model components; it did not submit a prompt or use the GPU. Historical generated-image records remain available for technical audit, but v0.9 does not use them as promotional visuals or as evidence of image-quality superiority.
This path requires an existing local image backend and model; there are no silent model downloads or switches.
Related MCP server: DocuMind MCP Server
Guided Bootstrap (Windows NVIDIA)
For an existing environment, run bootstrap status and reuse only a verified
portable root, checkpoint, and loopback endpoint. For a zero-environment setup,
bootstrap plan shows the exact portable archive, checkpoint, byte ceiling,
license URLs, SHA-256 hashes, disk/VRAM requirements, and bounded rollback;
bootstrap apply requires the displayed explicit confirmation. Downloads are
resumable and never silent. The frozen scope is Windows 10/11 x64 with NVIDIA
RTX 20-series or newer, 10 GiB VRAM, and 30 GiB free disk. Docker is not
required. This model-free
bootstrap contract does not prove image generation or production readiness.
setup is read-only without --apply. The apply path delegates to the client's official mcp add command; Local GPU Imagegen does not edit client configuration files directly or download a model.
Trust proof: the retained ordinary-route result came from one installed Codex session. Discovery did not load weights; trust and route identity were explicit; successful rounds were bounded; review used the original-resolution PNG; finalization was bound to the reviewed bytes; and the run state remains recoverable. The evidence proves this one result, not complete 9+3 acceptance, measured performance, or production readiness.
v0.9 local acceptance: a fresh Windows/NVIDIA installation built from the user-approved ComfyUI archive and SDXL checkpoint reached managed readiness, served exactly seventeen MCP tools, and finalized one reviewed non-human environment image with byte-identical source and final hashes. The artifact remains local until a separate sanitized export and is not bundled in the package. Two separate character attempts failed strict hand, eye, or tail review; prominent-human anatomy quality is therefore not established.
Optional Managed ComfyUI Startup
Windows setup can register one existing portable root for managed startup:
uvx local-gpu-imagegen setup codex --apply `
--auto-start-comfyui `
--comfyui-root "<ComfyUI_windows_portable>"The opt-in command validates the fixed portable layout and registers
python_embeded\python.exe -s ComfyUI\main.py at 127.0.0.1:8188. It does not
install ComfyUI or download a model. An already-running endpoint is reused but
never owned or stopped. A child started by the MCP process is stopped at MCP
exit only when its queue is empty; a non-empty queue is retained and reported.
Both modes use the existing backend and model with no silent model downloads
or switches. Workflow execution remains limited to supported built-in
topologies; managed startup does not remove or manage custom nodes already
present in the selected portable installation.

The animation is a deterministic simulated protocol demonstration, not model output or image-quality evidence. It remains secondary to the protocol and test evidence. Model-free tests cover the protocol and backend contracts, not image quality, broader named-client generation, performance, or complete 9+3 acceptance.
For Claude Code, use uvx local-gpu-imagegen setup claude-code --apply. Remove the entries with codex mcp remove local-gpu-imagegen or claude mcp remove --scope user local-gpu-imagegen. Use uvx local-gpu-imagegen doctor to inspect local backend readiness. The setup contracts and equivalent stdio launches are verified; one Codex installed-client generation is retained, while Claude Code generation remains pending. See Client compatibility.
DeepSeek Harness (DSH) connects through the same standard stdio MCP protocol with no setup command: register the server through dsh plugin --profile <name> add or point any MCP-compatible client at scripts/mcp_server.py. A real DSH-driven run completed the full discover_models (api_only) → recommend_models → start_run → get_run → generate_round sequence against a live ComfyUI checkpoint and produced a round-01.png artifact; initialize/tools/list/ping, verify_mcp.py, and verify_client_configs.py all pass.
Before PyPI publication, install the verified wheel or a source checkout, then use the equivalent local-gpu-imagegen verify and local-gpu-imagegen setup ... commands.
Why This Project
Run supported workflows from your Agent: inspect and register ordinary ComfyUI API graphs instead of rebuilding them as one-off scripts.
Reuse or explicitly manage your backend: ComfyUI is the primary existing-workflow path; an opt-in Windows portable supervisor removes manual startup without taking ownership of an existing process. AUTOMATIC1111/Forge and Diffusers remain compatibility paths.
Make runs reproducible: freeze workflow, model identity, prompts, settings, seed, budget, and output hashes in a durable manifest.
Use the installed CLI: verify readiness and delegate setup to the official Codex or Claude Code command without requiring a source checkout.
Keep model authority explicit: discovery never loads weights, and generation cannot silently download or switch a model.
Retain structured evidence: routes, budgets, attempts, image hashes, reviews, and recovery actions remain machine-readable and durable.
Keep acceptance with the user: original-resolution review and later byte-bound finalization separate a generated image from an accepted final.
Agent-guided workflow: a bundled Agent Skill turns a natural-language brief into a catalog-gated, confirmed run.
Three delivery Profiles: standalone illustrations, presentation visuals, and UI visual assets share one deterministic run and review contract.
Auditable hot revision: an immutable child run records a preserve/change contract and uses prompt refinement, img2img, or explicitly confirmed inpainting.
Dependency-light MCP layer: protocol checks and tests use the Python standard library and require no GPU.
Focused scope: image generation is kept separate from planning, memory, and unrelated agent features.
Experimental Composition Controls
The golden path uses ordinary sdxl-txt2img. The sdxl-regional-txt2img and sdxl-two-stage-copy-subject routes remain experimental, are not part of the golden path, and provide no fallback from the ordinary route. Their retained negative evidence does not establish a visual-quality improvement.
Image Quality Boundary
Model and workflow quality remain user supplied. Local GPU Imagegen adds explicit execution, review, recovery, and evidence; it does not modify diffusion algorithms or guarantee that a prompt workflow improves an image. Review now treats a change to the requested product medium, subject, practical use, or asset slot as semantic substitution and a failed constraint, even when the replacement looks cleaner.
See Image quality control and the frozen workflow no-regression gate. The retained gate ended in FAIL_WORKFLOW_REGRESSION; no public image-quality superiority claim is supported.
Source Checkout And Backend Setup
1. Verify The MCP Server
Python 3.11 or 3.12 is enough for this check. No GPU, model, or AI client is required.
python .\scripts\verify_mcp.pyExpected result:
{
"ok": true,
"transport": "stdio",
"python": "<current-python>",
"server": {"name": "local-gpu-imagegen", "version": "0.9.1"},
"protocolVersion": "2024-11-05",
"tools": [
"local_gpu_branch_run",
"local_gpu_cleanup_run",
"local_gpu_confirm_mask",
"local_gpu_discover_models",
"local_gpu_finalize_run",
"local_gpu_generate_image",
"local_gpu_generate_round",
"local_gpu_get_run",
"local_gpu_imagegen_check",
"local_gpu_list_profiles",
"local_gpu_prepare_mask",
"local_gpu_recommend_models",
"local_gpu_record_review",
"local_gpu_register_workflow",
"local_gpu_set_model_trust",
"local_gpu_start_run",
"local_gpu_inspect_workflow"
]
}2. Choose A Backend
Backend | Best when | Setup | Network behavior |
WebUI | AUTOMATIC1111 or Forge is already installed | Start it with API access enabled | Prompts/images go to the configured WebUI URL |
ComfyUI | You already run ComfyUI and want reviewed graph execution | Start it yourself, or opt into | Prompts/images go only to the loopback or separately confirmed endpoint |
Diffusers | You want a self-contained Python pipeline | Create the project | Model/LoRA downloads are blocked unless explicitly allowed |
Check current readiness:
python .\scripts\check_gpu.pyThe command returns JSON. ready: false is a valid diagnostic state, not a protocol failure.
Managed startup is explicit and Windows-portable-only. It forces Python -s
isolation so user-site Torch packages cannot contaminate the portable runtime,
starts in the background so MCP initialization is not delayed, and lets the
first managed readiness check wait up to the configured startup timeout.
doctor itself remains read-only and never starts a backend.
To verify the MCP server under a specific virtual environment and call readiness through MCP:
python .\scripts\verify_mcp.py `
--python .\.venv\Scripts\python.exe `
--check-readiness3. Connect An MCP Client
The bundled .mcp.json uses a relative command and cwd. For a client with global configuration, replace <project-root> with this clone's absolute path:
{
"mcpServers": {
"local-gpu-imagegen": {
"command": "python",
"args": ["<project-root>\\scripts\\mcp_server.py"]
}
}
}Restart the client, then call local_gpu_imagegen_check before the first generation.
4. Ask For A Visual Asset
The bundled Agent Skill accepts ordinary requests. For example:
Create a 16:9 standalone anime character illustration with no generated text. Use up to two successful rounds, keep downloads disabled, and ask before changing the seed.
The Skill will not guess from a checkpoint filename or silently select a backend. It discovers current local inventory, applies user-local trust, recommends one exact route, and waits for confirmation without downloading a model.
Agent Skill Workflow
Call
local_gpu_discover_modelsinapi_onlymode when inventory is unknown. Broader scans require a displayed plan and exact confirmation before filesystem access.Use
local_gpu_set_model_trustonly after displaying one exact identity and receiving its exact trust confirmation. Private use and public evidence are separate scopes.Call
local_gpu_list_profilesfor the intended authorization scope. Reuse known brief values and ask only for missing high-impact boundaries.Call
local_gpu_recommend_models. It returns one exact route and at most two alternatives without weakening hard requirements.Display the exact resolved
model_choice, backend, identity strength/hash or binding warning, workflow, compiler, dimensions, and budget. Wait for a new explicit confirmation after that display.Start the frozen route -> read the persisted frozen run -> construct the complete generation plan -> spend at most the confirmed successful-round budget. Copy every route, identity, workflow, compiler, policy, and budget field from that run before adding prompts and parameters. A retained image consumes a round; a backend failure does not.
On a vision-capable host, display and inspect the original full-resolution image. Record the required anatomy, feet/contact, hands/objects, and text/watermark checks with the full rubric; a preview alone is insufficient. Failed or uncertain checks require refine or explore. A refine preserves the seed; an explore changes the seed.
When an eligible review returns quality status
candidate, display its limitations, image SHA-256, and exactfinalize:<run_id>:<round_number>:<image_sha256>value, then stop. Only a later user message containing that displayed value may authorize finalization; the Agent cannot accept its own candidate.On a text-only host, retain exactly one successful round, mark
review unavailable, report the unreviewed path, and stop. Do not invent scores or call review/finalization tools.
After a reviewed or finalized candidate, the user can describe what to keep and what to change. The Skill presents an auditable preserve/change contract, asks for a separate one-to-three-round revision budget, and creates an immutable child run only after confirmation. It chooses the least destructive mode: same-seed prompt refinement, then low-strength img2img, then inpainting with explicit mask-overlay confirmation. No-mask preservation is best-effort.
For the optional copy-subject-v1 route, the Agent displays both normalized regions as decimals and percentages, both regional prompts and strengths, the exact sdxl-regional-txt2img route, and the successful-round budget before confirmation. The geometry is frozen for that run. Refinement may change regional prompts or strengths, but moving a region requires a newly confirmed root or child; unavailable or drifted regional capability never falls back to prompt-only sdxl-txt2img.
For the optional sdxl-two-stage-copy-subject route, local_gpu_set_model_trust accepts the exact two_stage_layout; callers never provide control_sha256. The server normalizes that layout, inspects the shipped workflow, derives the control digest, and includes the workflow, bundle, and control digests in the displayed trust confirmation. Approval and later routing require the same normalized layout, workflow, component bundle, endpoint, and model identity. The Agent also displays pixel geometry and percentages, the base and derived subject seeds, subject conditioning, and the two-stage budget. One round costs two stage units and retains three role-bound PNGs: a base artifact, mask artifact, and final artifact. Protected-pixel and saved-mask gates run before review; a partial result stops with no fallback. Both base and final receive full-resolution stage review, and only the final artifact can become a candidate. The first live GPU gate is exactly one two-stage round.
The earlier single-pass copy-subject-v1 regional route remains as retained negative evidence and experimental compatibility. Its model-free control contract remains useful, but the observed output does not establish a visual-quality improvement. Neither route is presented as positive image-quality evidence until retained full-resolution acceptance exists.
The adaptive sequence is discovery -> trust when needed -> scoped catalog -> brief -> exact-route recommendation -> post-display confirmation -> start -> read persisted run -> construct complete plan -> generate -> full-resolution inspect -> review -> refine/explore or display candidate -> wait for a later user message -> finalize. The configured max_rounds must be from 1 through 3, and urgency or sunk cost never extends it.
Visual Profiles And Scope
Profile | Supported subtypes | Delivery focus |
|
| Self-contained illustration output. |
|
| Visual-only slide assets with safe-area and overlay constraints. |
|
| Raster visuals that can be composed into an interface. |
Complete PPT decks are excluded. Frontend code and components are excluded. Production icons, SVG, and transparent PNG are excluded. Automatic segmentation is excluded. Seamless-texture guarantees are excluded. The project produces inspectable raster assets, not slide layouts or interface implementations.
Bring Your Own Model Safely
Discovery has four levels: api_only, selected_folders, common_locations, and full_drive. Filesystem discovery is two-stage: index records bounded metadata without opening checkpoint payloads; fingerprint computes SHA-256 only for explicitly selected indexed candidates. .ckpt remains opaque, and scans do not follow symlinks, junctions, or reparse points.
Trust is stored outside the repository under the OS user-state directory, overridable with LOCAL_GPU_IMAGEGEN_STATE_DIR. A backend_binding identity can be trusted only for private use. For split ComfyUI routes, the trust tool first offers a non-mutating inspection action that binds the primary model, text encoder, VAE, and reviewed workflow into one canonical SHA-256 bundle. The exact bundle digest is part of the later trust confirmation and route token. A cryptographic bundle may become a public_evidence candidate only with exact source, license, and output-redistribution metadata for every component; acceptance authority must approve that same bundle before export.
Safe Workflow Onboarding
Existing ComfyUI API-format workflows can be inspected and registered without caller-supplied node IDs when they are ordinary txt2img graphs using either a single checkpoint or split model topology. The bounded sequence is:
API-only discovery (when current inventory is absent)
-> local_gpu_inspect_workflow
-> display hashes, inferred binding, components, limitations, confirmation
-> later exact user confirmation
-> local_gpu_register_workflow
-> separate local_gpu_set_model_trust with `registered_workflow_id`Inspection reads one explicit local JSON file, accepts a bare API graph or a unique prompt wrapper, and reports source_sha256, workflow_sha256, topology, inferred binding, owned output, and component identities. Registerable results include register_workflow:<source_sha256>:<proposal_digest>; diagnostic results have no confirmation. UI format is not converted; registration does not grant model trust or public authority. Zero-GPU real-client onboarding evidence is retained; generation evidence remains separate.
No model weights are bundled. The repository catalog includes the auditable ID civitai/anything-v5@30163 for an already reviewed local WebUI checkpoint, and downloads remain unapproved. Other local models can enter the private catalog only through discovery and explicit trust; model quality still comes from the user's model. This project adds safer routing, durable review, and hot revision rather than claiming a superior prompt translator.
ComfyUI ships reviewed sd15-txt2img-v1.json, sdxl-txt2img-v1.json, sdxl-regional-txt2img-v1.json, sdxl-two-stage-copy-subject-v1.json, z-image-turbo-txt2img-v1.json, and anima-txt2img-v1.json workflow files. Discovery distinguishes CheckpointLoaderSimple, UNETLoader, CLIPLoader, and VAELoader. A private backend-bound route may still bind only the primary loader, but public-evidence eligibility for a split workflow requires current API identities plus filesystem SHA-256 identities for every frozen component. A pure split-model installation may have no checkpoint choices. Shell, Python/script/process execution, network/download/webhook/fetch nodes, commands, unknown custom nodes, unbound parameters, and resource overruns are rejected.
The workflow files do not include, install, trust, or license model weights. Z-Image and Anima still require exact local discovery, user approval, and a confirmed route. Anima is an optional anime route and must not be presented as a commercial or public-evidence default under its upstream weight restrictions. ComfyUI adapter: contract-tested; local Z-Image and Anima adapter executions: observed; public acceptance evidence: not retained.
Tool Reference
The public MCP surface has exactly seventeen tools: two compatibility tools and fifteen high-level discovery/onboarding/run/revision tools.
local_gpu_imagegen_check
Reports Python packages, CUDA devices, WebUI reachability, and aggregate readiness. A machine can be not ready while the tool call itself succeeds.
local_gpu_generate_image
Supports:
txt2img,img2img, and inpaintingfixed seeds
WebUI checkpoint and sampler selection
Diffusers scheduler selection
LoRA loading
VAE tiling and optional CPU offload
explicit CPU fallback
explicit model/LoRA download permission
The tool schema validates types, ranges, enums, unknown fields, image-mode requirements, and dimensions before starting the backend process.
These two compatibility tools remain available beside the fifteen high-level tools. In particular, the low-level local_gpu_generate_image compatibility tool is unchanged: its optional model value remains a direct compatibility passthrough and is not the catalog-gated Agent workflow. Its WebUI/Diffusers options and explicit model-download controls are unchanged.
High-Level Run Tools
Tool | Responsibility |
| Plan or execute bounded API/filesystem inventory without loading model weights. |
| Inspect one ordinary ComfyUI API |
| Recheck an exact proposal and store its immutable registered workflow copy after later digest-bound confirmation. |
| Inspect a reviewed component bundle without mutation, or approve/revoke one exact identity in user-local state after confirmation. |
| Return one deterministic route and at most two explained alternatives. |
| List registered use-case profiles and the current backend capabilities. |
| Persist a confirmed intent, profile, constraints, backend choice, and round budget. |
| Read the durable manifest and its |
| Create an immutable child run from one reviewed parent round and preserve/change contract. |
| Prepare a user or rectangle/polygon mask and return a bounded JPEG overlay. |
| Confirm an unchanged prepared mask after explicit user approval. |
| Generate one root or fixed-mode child round and optionally return a bounded JPEG preview. |
| Store rubric scores, required structured visual checks, hard failures, constraint and preservation results, critique, and next action. |
| Verify the image-bound user confirmation and publish the nominated eligible round as the final local PNG. |
| Remove intermediates or the entire confirmed run directory. |
max_rounds must be from 1 through 3. Only successfully retained PNG rounds consume that budget; a backend failure is recorded as an attempt without consuming a round. Every new review requires full_resolution_inspected: true, whether a prominent human is present, and explicit observations for limb separation, feet/contact, hands/held objects, and text/watermarks. Human anatomy checks cannot be not_applicable; any required fail or uncertain result can request only refine or explore.
An eligible review exposes quality status candidate, never acceptance, and binds the run, round, and retained image SHA-256. The Agent displays the original image, limitations, hash, and exact finalize:<run_id>:<round_number>:<image_sha256>, then waits for a later user message. local_gpu_finalize_run requires that exact confirmation plus the nominated round_number and summary. It revalidates the candidate under the run lock, then publishes that nominated reviewed round without substituting a higher-scoring round; only the published result receives accepted.
An ineligible reviewed artifact is never published. Refine or explore while confirmed budget remains; otherwise retain it and request a new user decision without publication. Existing finalized manifests and the lower-level store compatibility path may still contain needs_user_review, but an unfinalized legacy review without structured visual checks cannot produce a public-engine candidate.
local_gpu_list_profiles returns the scoped merged catalog and current capabilities. local_gpu_start_run requires the exact route_token, authorization scope, model, backend, dimensions, workflow, and compiler that were displayed. Identity drift fails before backend invocation; root and child runs never switch routes silently.
Run Files, Retry, And Recovery
The default durable layout is:
outputs/
runs/
<run_id>/
manifest.json
parent-source.png
round-01.png
round-01-preview.jpg
final.png
final-upscaled.png
masks/
mask-01.png
mask-01-overlay.jpgoutputs/runs/<run_id>/manifest.json is the source of truth for confirmed input, attempts, rounds, reviews, warnings, final metadata, and state revisions. A successful first round retains round-01.png and may create round-01-preview.jpg; later rounds use the same hyphenated preview pattern. Stored legacy manifests that reference round-01.preview.jpg remain readable and are not rewritten. Finalization publishes final.png. A preview file is optional: the MCP response may include the bounded JPEG preview, while full_image_path identifies the full-resolution local PNG. A preview warning or encoding failure does not discard the validated PNG.
An immutable child run copies the selected parent PNG to parent-source.png, records parent lineage and hashes, and never writes the parent manifest. Img2img and inpaint use that retained source. Inpaint additionally requires a confirmed masks/mask-01.png; masks/mask-01-overlay.jpg is returned for approval first. Changing source or mask bytes invalidates confirmation.
Each generation request needs an idempotency_key. Repeating the same key with the same request returns the completed round or reports that the attempt is busy; reusing the key for different inputs is rejected. After interruption, call local_gpu_get_run and follow recoverable_next_actions. The engine can reclaim stale attempts and resume preview creation when a validated full PNG was already retained.
Cleanup is explicit. For both intermediates and all, confirmation must exactly equal the run_id. The intermediates scope preserves the manifest and published final file; all removes the confirmed run directory.
Optional Anime Real-ESRGAN Postprocess
Anime-only 4x postprocessing is explicit and local. Configure the tool root only with LOCAL_GPU_IMAGEGEN_REALESRGAN_DIR; the server accepts only realesrgan-ncnn-vulkan.exe plus one of the supported model pairs, realesrgan-x4plus-anime or realesr-animevideov3-x4, under that root. It accepts no arbitrary executable path or model name, and it does not download a binary or model.
No postprocessor runs automatically. Even upscale_policy: auto records permission only: the caller must pass the exact postprocess object to local_gpu_finalize_run, and the confirmed style must be anime. A successful request preserves the original final.png, returns final-upscaled.png, and records model, scale, source/output paths, hashes, dimensions, and MIME types in final postprocess metadata. Unavailable or failed postprocessing falls back to the original final with a structured warning. Real binary, GPU, quality, and performance behavior remains unverified.
Standalone Usage
Generate through an already-running WebUI:
python .\scripts\generate_image.py `
--backend webui `
--prompt "a small robot reading a circuit diagram, clean concept art" `
--width 1024 --height 1024 --seed 42Create a project-local Diffusers environment:
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1Diffusers will not fetch missing model files by default. After reviewing the model license and storage requirement, opt in for a specific run:
.\.venv\Scripts\python.exe .\scripts\generate_image.py `
--backend diffusers `
--model stabilityai/sd-turbo `
--allow-download `
--prompt "a compact lunar research station, technical concept art" `
--seed 42Compatibility-tool files default to outputs/. Override this with LOCAL_GPU_IMAGEGEN_OUTPUT_DIR or --output-dir. High-level runs use the runs/<run_id>/ layout under that output root.
Architecture
flowchart LR
A["MCP client"] -->|"stdio JSON-RPC"| B["Thin MCP server"]
B --> H["Discovery + trust + capability router"]
H --> C["Frozen route + durable run engine"]
C --> E["AUTOMATIC1111 / Forge adapter"]
C --> I["Reviewed ComfyUI workflow adapter"]
C --> F["Diffusers compatibility runner"]
E --> G["Full local PNG + bounded preview"]
I --> G
F --> G
G --> C
C --> B
B --> AThe transport layer owns JSON-RPC, schemas, validation, dispatch, timeouts, and structured results. The run engine owns orchestration and delegates durable state to RunStore; backend loading and image generation stay in scripts/generate_image.py.
See Architecture for the detailed control flow and error model.
Safety And Privacy
The MCP process does not use an application-specific cloud image API.
A confirmed LAN WebUI/ComfyUI endpoint sends prompts and source images to that server. Loopback is local; each LAN endpoint requires exact transmission confirmation, and public internet endpoints are rejected.
Discovery does not follow links or load checkpoint payloads. Broader filesystem scans require an unchanged, unexpired plan and exact confirmation.
Trust state stays outside Git. Private trust never authorizes public evidence, and credentials are rejected recursively.
scripts/install.ps1downloads Python packages when the user runs it.Diffusers model and LoRA downloads require
--allow-downloador MCPallow_download: true.Disabling a model safety checker is explicit and off by default.
Input images and generated files remain ordinary local files; protect their directories with OS permissions appropriate to their sensitivity.
See Security before exposing a WebUI API beyond localhost.
Test
The suite requires no GPU and downloads no models:
python -m unittest discover -s tests -v
python .\scripts\verify_mcp.pyCoverage includes protocol initialization/listing/ping, the exact seventeen-tool contract, bounded discovery/onboarding/trust/routing, WebUI and ComfyUI adapter contracts, durable root/child transitions, fixed two-region SDXL route/conditioning/exhaustion behavior, mask confirmation, idempotency, stale-attempt recovery, atomic publication, bounded preview handling, the mocked/model-free anime loop, all nine fixed briefs and three child revisions, fake-runner postprocessing, and download policy.
Project Status
Verified:
stdio MCP initialization, tool listing, ping, and tool contract
structured tool success/error results
fifteen high-level discovery/onboarding/run/revision tools and two compatibility tools under mocked/model-free coverage
adaptive Agent Skill briefing, exact-model confirmation, successful-round budgeting, and honest text-only stopping policy
exact local-model identity, user-local trust, deterministic route, and drift-rejection contracts
explicit anime-only Real-ESRGAN adapter behavior under fake-runner tests
contract-tested WebUI and ComfyUI adapter success/failure paths
durable manifest transitions, idempotency, recovery, review, finalization, and cleanup contracts
three Profile contracts plus immutable preserve/change child runs and confirmed geometry/user masks
fixed copy/subject geometry, regional conditioning, route drift rejection, and a two-round model-free regional vertical slice
server-derived two-stage control identity, control-bound trust confirmation, contradictory-binding rejection, and exact model-free route recovery
a fake-backend contract matrix covering nine fixed briefs and three child revisions
local-only Diffusers hub policy by default
installable
serve,doctor,verify,config, and read-only-by-defaultsetupCLI contracts, including an isolated wheel smoke testofficial Codex and Claude Code setup-contract parsing plus equivalent exact-seventeen-tool stdio launches; Claude Desktop remains a legacy render-only template
Pending before a 1.0 claim:
a complete retained 9+3 real host/vision acceptance matrix
real Real-ESRGAN binary/GPU execution evidence
additional generated named-client session evidence beyond the retained Codex result, including Claude Code
measured performance or VRAM data
any production-readiness claim
The Mocked/model-free matrix is deterministic protocol evidence, not the retained real Codex/vision/GPU result. It exercises nine fixed briefs and three child revisions with a fake backend; it does not prove visual quality. Local Z-Image and Anima calls through the project adapter have been observed, but they are local development validation rather than public acceptance evidence. Historical generated-image records remain technical audit material and are not v0.9 promotional visuals. The test suite does not load a production model, GPU backend, or Real-ESRGAN binary. No production, performance, VRAM, image-quality superiority, guaranteed Star, or broader named-client generation claim is made.
The repository has no approved v0.9 promotional image and no complete real 9+3 image-acceptance matrix. It makes no generalized image-quality, performance, or VRAM claim. Use the readiness commands above to inspect the target environment.
Documentation
License
Released under the MIT License. Model weights, backend applications, and generated outputs retain their own licenses and terms; none are relicensed by this repository.
Available Tools
17 toolslocal_gpu_branch_runC
Create an immutable child revision run from one reviewed parent round.
| Name | Required | Description | Default |
|---|---|---|---|
| contract | Yes | ||
| edit_mode | Yes | ||
| max_rounds | Yes | ||
| parent_round | Yes | ||
| parent_run_id | Yes | ||
| denoising_strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses one behavioral trait ('immutable') but omits side effects, permissions, or how the child run relates to the workflow. For a creation tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is under-specified for a tool with six parameters. Conciseness should not come at the expense of necessary details; this is too terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested contract, output schema, 16 siblings), a one-sentence description is completely inadequate. It lacks context on the run lifecycle, the meaning of contract fields, and when to start a child versus other run operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description adds no parameter meaning. It only implies 'parent_round' through 'reviewed parent round,' but the complex contract, edit_mode, and denoising_strength are unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('immutable child revision run'), and it distinguishes this from sibling tools like local_gpu_start_run and local_gpu_generate_round by specifying it is a child of a reviewed parent round.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from one reviewed parent round' provides clear context and a prerequisite, but it does not explicitly name alternatives or state when not to use. Still, it gives enough directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_cleanup_runC
Remove run intermediates or a fully confirmed run directory.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | ||
| run_id | Yes | ||
| confirmation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It mentions removal but does not warn that this is destructive and irreversible, nor does it explain the role of the 'confirmation' parameter. The phrase 'fully confirmed' is vague and lacks details about confirmation requirements or consequences for unconfirmed runs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key verb and resource. It is not bloated, though it could add a bit more context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, return values need not be described. However, the tool is destructive with three required parameters and no annotations. The description omits critical context about when cleanup is appropriate, how confirmation works, and what data is affected, making it incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partially explains the 'scope' parameter by mentioning 'intermediates' vs 'fully confirmed run directory', but gives no insight into 'run_id' or 'confirmation'. The required confirmation parameter is not addressed at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Remove') and resource ('run intermediates or a fully confirmed run directory'). It distinguishes from sibling tools by focusing on cleanup/removal, which is unique among the listed operations like generate, start, or inspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, scenarios for cleaning intermediates vs full directories, or contrast with any sibling. The reader must infer usage from the name and basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_confirm_maskC
Confirm an unchanged prepared mask after explicit overlay approval.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| mask_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool confirms a mask but does not explain what confirmation entails—whether it validates, records, updates state, or rejects changed masks—nor does it describe side effects, failures, or output. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It efficiently conveys the core action and condition, earning every word's place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's role in a workflow with siblings like local_gpu_prepare_mask and local_gpu_generate_round, the description lacks contextual completeness. It does not explain how this confirmation step fits into the overall process, what happens if the mask is not unchanged, or what the output represents. The presence of an output schema does not compensate for the missing workflow and behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about run_id or mask_id. The phrase 'prepared mask' hints at mask_id but does not clarify relationships, expected values, or how the parameters interact, leaving the agent without adequate parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (confirm), the object (an unchanged prepared mask), and the condition (after explicit overlay approval). It distinguishes this tool from siblings like local_gpu_prepare_mask and local_gpu_record_review by indicating a post-approval validation step, though it could be more explicit about the tool's unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is only implied through the phrase 'after explicit overlay approval,' which suggests a sequencing condition but does not explicitly state when to use this tool versus alternatives. No exclusions or alternative tools are mentioned, leaving the agent without clear decision-making criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_discover_modelsC
Plan or execute bounded local model discovery without loading model weights.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| phase | Yes | ||
| roots | No | ||
| stage | No | ||
| plan_id | No | ||
| backends | No | ||
| confirmation | No | ||
| authorization_id | No | ||
| explicit_includes | No | ||
| selected_candidates | No | ||
| network_confirmation | No | ||
| expected_backend_model_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only mentions that model weights are not loaded and that discovery is bounded. It does not explain side effects, phases, authorization requirements, confirmation flows, or network behavior even though schema parameters hint at these. The description adds some value but is far from transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that avoids redundancy and directly conveys the core action. However, it is under-specified for the tool's complexity, but that is more a completeness issue than a structural problem. It earns its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters, multiple phases, stages, and confirmation/authorization fields, the description is inadequate. It omits the meaning of 'plan' vs 'execute', the discovery stages (index/fingerprint/verify/revoke), and the scope modes. Even though an output schema exists, the description does not provide enough context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 12 parameters, and the description does not explain any of them. The phrase 'bounded' and 'without loading model weights' gives general context but no specific parameter meanings. The description fails to compensate for the complete lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: planning or executing bounded local model discovery without loading model weights. The verb 'plan or execute' combined with the resource 'local model discovery' is specific, and the qualifier 'without loading model weights' adds a distinctive safety constraint. However, it does not explicitly differentiate from sibling tools like local_gpu_recommend_models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for model discovery when avoiding weight loading is desired, but it lacks explicit when-to-use or when-not-to-use guidance and does not mention alternatives. There are no prerequisites or exclusions stated, leaving the decision to the agent without additional context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_finalize_runB
Publish the selected reviewed round as the run's final PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| summary | Yes | ||
| postprocess | No | ||
| confirmation | Yes | ||
| round_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It states the core action (publish) but gives no information about side effects, such as whether it overwrites an existing final PNG, whether the action is irreversible, or what happens to previous rounds. It also does not explain the confirmation parameter, which appears to be a safety mechanism. This is a significant transparency gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence that front-loads the primary action and outcome. It earns its place with no filler words. However, it is so terse that it sacrifices necessary detail, making it only slightly less than ideal in structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, a nested object with enums, and a required confirmation string) and the presence of an output schema (which is not shown but implies return values), the description provides no context about the workflow step, prerequisites, or consequences. It does not explain what 'publish' does operationally, how confirmation is used, or what happens to previous rounds. This is a finalization action that would benefit from explicit state-change semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the five parameters (run_id, round_number, summary, confirmation, postprocess). The description only implies run_id (the run) and round_number (the reviewed round), but says nothing about summary, confirmation, or the postprocess object. This provides minimal value beyond the schema and leaves most parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Publish') and resource ('selected reviewed round' as 'run's final PNG'). It clearly distinguishes from sibling tools like local_gpu_record_review (which records the review) and local_gpu_generate_round (which generates a round). The purpose is unambiguous without needing the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'selected reviewed round' implies that it should be used after a round has been reviewed, but the description does not explicitly state when to use it versus alternatives or any preconditions. It does not mention that it is the final step in a run, nor does it exclude using it before review. This is merely implied context, not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_generate_imageB
Compatibility tool for WebUI or Diffusers image generation; not for ComfyUI routes and never a bypass for the confirmed high-level run workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| lora | No | ||
| mode | No | ||
| seed | No | ||
| model | No | ||
| steps | No | ||
| width | No | ||
| height | No | ||
| prompt | Yes | ||
| backend | No | ||
| filename | No | ||
| strength | No | ||
| allow_cpu | No | ||
| scheduler | No | ||
| webui_url | No | ||
| lora_scale | No | ||
| mask_image | No | ||
| output_dir | No | ||
| vae_tiling | No | ||
| cpu_offload | No | ||
| input_image | No | ||
| sampler_name | No | ||
| allow_download | No | ||
| guidance_scale | No | ||
| negative_prompt | No | ||
| disable_safety_checker | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| mode | Yes | |
| path | Yes | |
| backend | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only describes the tool as a compatibility layer, offering no information about how invocation behaves, side effects, blocking semantics, resource usage, or error handling. This is a significant gap for a tool with 25 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose and immediately followed by exclusionary boundaries. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 25 parameters, multiple enums, an output schema, and no annotations, this description is severely incomplete. It does not cover parameter selection, backend behavior, prerequisites, or relationship to sibling tools beyond the bare exclusions. The output schema exists but the description fails to provide the contextual glue needed for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides zero information about any of the 25 parameters. It does not explain which parameters are relevant for WebUI vs. Diffusers backends, how modes like txt2img/img2img/inpaint interplay, or what required versus optional parameters mean. The description adds no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a compatibility layer for WebUI or Diffusers image generation, which aligns with its name. It explicitly distinguishes itself from ComfyUI routes and the high-level run workflow, making its purpose and scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-not-to-use guidance: not for ComfyUI and never as a bypass for the confirmed high-level run workflow. However, it does not name specific alternative tools, such as local_gpu_generate_round, so the guidance is clear but not fully explicit about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_generate_roundC
Generate one root or immutable revision round and return an optional bounded JPEG preview.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | ||
| seed | Yes | ||
| action | Yes | ||
| run_id | Yes | ||
| mask_id | No | ||
| edit_mode | Yes | ||
| change_summary | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the result is an optional bounded JPEG preview and that rounds are 'root or immutable revision', but it doesn't explain side effects, GPU usage, idempotency behavior, or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and object. It contains no filler, but it's so terse that it sacrifices essential context. Still, for what it includes, it's well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 params, 7 required, enums, nested objects) and lack of annotations or parameter descriptions, the description is too thin to allow an agent to use it correctly. The existence of an output schema helps with return values but not with usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 8 parameters with 0% description coverage, and the tool description does not explain any of them (run_id, idempotency_key, action, edit_mode, plan, seed, change_summary). It only references 'round' and 'preview' without mapping to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('generate') and resource ('one root or immutable revision round') and mentions a return value ('optional bounded JPEG preview'). It distinguishes from sibling 'local_gpu_generate_image' by focusing on 'round' rather than a single image, but the concept of 'round' is not defined, so it lacks clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like local_gpu_generate_image or local_gpu_branch_run. The description does not mention scenarios (initial vs refine vs explore) or why a 'round' is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_get_runB
Get the current persisted state of a visual-asset run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Get the current persisted state' implies a read-only operation with no side effects, which is appropriate. However, it does not disclose error behavior, whether the state is always available, or whether any special conditions apply (e.g., whether the run must be finalized). For a simple getter, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. There is no redundant information, and the phrasing is direct and front-loaded with the verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter) and the existence of an output schema (which presumably documents return values), a short description is somewhat acceptable. However, the absence of usage guidance relative to sibling tools and the lack of behavioral details (e.g., error handling) make it only minimally complete for a tool in a larger workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, run_id, is documented in the schema as a required string with minLength 1, but the schema description coverage is 0% and the description adds no additional meaning. The tool name and context hint that run_id identifies a run, but there is no guidance on where to obtain it, its format, or potential constraints. The description does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'Get' and specifies the resource as 'the current persisted state of a visual-asset run.' This distinguishes it from sibling tools that start runs (local_gpu_start_run), generate images (local_gpu_generate_image), or inspect workflows (local_gpu_inspect_workflow). It could be slightly more explicit about how it differs from other 'get' or inspection tools, but it is adequately specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as local_gpu_inspect_workflow or local_gpu_list_profiles. It does not state exclusion criteria or mention any prerequisites. Users are left to infer the appropriate context from the tool's name and brief purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_imagegen_checkA
Check Python packages and CUDA readiness for local GPU image generation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ready | Yes | |
| bootstrap | No | |
| webui_ready | No | |
| diffusers_ready | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. The verb 'Check' implies a read-only diagnostic, which is a minimal behavioral signal, but the description does not explicitly state whether it modifies anything, whether packages are installed, or how it reports failure. This is adequate but leaves ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loaded with the action verb, no filler or redundancy. It is concise and well-structured, with every word contributing to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter diagnostic with an output schema, the description states the core subject matter but omits when to run it and what the results imply for subsequent generation steps. It is minimally complete for a simple check tool but lacks fuller context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100% trivially. For a zero-parameter tool, the baseline is 4; the description adds value by clarifying what the check covers (Python packages, CUDA readiness), even though no parameters need documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and names concrete resources: Python packages and CUDA readiness for local GPU image generation. Among sibling tools (generate, discover, inspect, register, etc.), no other tool is a preflight environment check, so it is clearly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but 'for local GPU image generation' implies it is a prerequisite readiness check before generation. No exclusions or alternative tools are mentioned, providing only implied usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_inspect_workflowA
Inspect one local ComfyUI API workflow and infer a safe ordinary txt2img binding without writing state.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states 'without writing state,' which is a key non-mutating guarantee. However, it does not elaborate on what 'infer a safe ordinary' entails or any potential failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence of 14 words, front-loaded with the action and side-effect guarantee. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the essential purpose and non-mutating behavior. The vague phrase 'safe ordinary txt2img binding' leaves some ambiguity, but it is sufficient for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description relates workflow_path to 'one local ComfyUI API workflow,' adding meaning beyond the bare parameter name in the schema. Yet it lacks detail about the expected path format, file type, or validity requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: inspecting a local ComfyUI API workflow and inferring a safe txt2img binding. The verb 'Inspect' and specific resource distinguish it from siblings like generation or registration tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as local_gpu_register_workflow or local_gpu_generate_image. It does not mention any context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_list_profilesB
List registered visual-asset profiles and current local backend capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| authorization_scope | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It only states the action without confirming read-only status, permissions, or side effects. The optional 'authorization_scope' parameter is not explained, and 'capabilities' is undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. It front-loads the action and resource, making it easy to parse while conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered. However, the description omits any explanation of the authorization_scope parameter and provides no usage context (e.g., when to use vs. siblings). These gaps make it only minimally viable for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional enum parameter 'authorization_scope' with 0% schema description coverage. The description does not mention it, leaving its meaning and effect on the returned profiles completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with clear resources: 'registered visual-asset profiles' and 'current local backend capabilities.' This distinguishes it from sibling tools like local_gpu_generate_image or local_gpu_discover_models, which focus on generation or model discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a discovery/inventory use case but provides no explicit when-to-use guidance or alternatives. It names no exclusions or conditions for choosing this over sibling tools, leaving the context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_prepare_maskC
Prepare an unconfirmed child-run inpaint mask and return its JPEG overlay.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| geometry | No | ||
| feather_pixels | No | ||
| user_mask_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool 'prepare[s]' a mask, implying a state change, but does not clarify whether this modifies the run, is reversible, or requires special permissions. The return of a JPEG overlay is mentioned, but side effects, rate limits, and whether the operation is read-only or destructive are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the core purpose. It is efficient and easy to parse. However, it is so brief that it omits essential details, but that is more a completeness issue than a structure one. For what it does contain, it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no annotations, and no output schema details in the description, the single-sentence description is insufficient. It does not explain what a 'child-run' is, how the mask is generated, what the JPEG overlay represents, or how the parameters interact. An agent would likely struggle to invoke this tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description itself does not mention any parameters. It does not explain the role of run_id, geometry, feather_pixels, or user_mask_path, nor how they influence the prepared mask. This leaves the agent without semantic understanding of how to populate the parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Prepare an unconfirmed child-run inpaint mask and return its JPEG overlay.' It uses a specific verb ('prepare'), identifies the resource ('child-run inpaint mask'), and specifies the output ('JPEG overlay'). The term 'unconfirmed' differentiates it from the sibling tool 'confirm_mask', making its role in the workflow clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool, what prerequisites are needed, or how it relates to alternatives. It does not mention that it should be used before 'confirm_mask' or under what circumstances. The context is entirely implicit, offering no contextual cues about workflow placement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_recommend_modelsA
Recommend one exact confirmed-capability route and at most two alternatives. preferred_model_id must be an exact catalog ID. Display the selected route and start_run_boundary, then wait for later user confirmation before local_gpu_start_run.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | ||
| width | Yes | ||
| height | Yes | ||
| profile | Yes | ||
| operation | Yes | ||
| affinity_tags | Yes | ||
| regional_layout | No | ||
| required_vram_gb | Yes | ||
| two_stage_layout | No | ||
| preferred_model_id | Yes | ||
| authorization_scope | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose key behaviors: it recommends one confirmed route plus alternatives, requires exact catalog IDs, displays the selected route and start_run_boundary, and defers execution until user confirmation. However, it leaves open what 'confirmed-capability' means, whether any state is mutated, and what happens on failure or multiple matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, starts with the primary action, and includes critical constraints without any fluff. Every clause adds useful information, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is incomplete for a tool with 11 parameters, 9 of which are required, and no annotations. It introduces undefined terms like 'start_run_boundary' and 'confirmed-capability route' without explaining them, and it gives no guidance on how to fill the required parameters or what the recommendation workflow should look like beyond the confirmation step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 11 parameters with 0% description coverage, so the description must compensate. It only adds meaning for preferred_model_id ('must be an exact catalog ID'), while the other 10 parameters, including required ones like operation, profile, width, height, and authorization_scope, remain unexplained by the description. This is insufficient for a tool with many required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: recommend one exact confirmed-capability route with up to two alternatives. It uses an action verb ('recommend') and references the resource (model routes), and it distinguishes itself from sibling local_gpu_start_run by explicitly saying it waits for later confirmation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: before starting a run, and it explicitly says to wait for user confirmation before calling local_gpu_start_run. However, it does not mention when to prefer sibling tools like local_gpu_discover_models or local_gpu_inspect_workflow, so it lacks full alternative differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_record_reviewB
Record human or model review evidence for one generated round.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| scores | Yes | ||
| critique | Yes | ||
| next_action | Yes | ||
| round_number | Yes | ||
| stage_checks | No | ||
| hard_failures | Yes | ||
| visual_checks | Yes | ||
| constraint_results | Yes | ||
| preservation_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only says 'record' without detailing side effects, persistence behavior, requirements (e.g., round must exist), or how the evidence is stored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. However, given the tool's 10 parameters and nested structure, one sentence may be too terse to be truly helpful, but it earns high marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is inadequate for a tool with this complexity. It fails to explain key concepts like stage_checks vs visual_checks, the meaning of next_action, or the relationship to generated rounds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter-level meaning. It does not mention any of the 10 parameters (run_id, round_number, scores, etc.) or explain their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('record') and resource ('review evidence for one generated round'), clearly distinguishing this tool from siblings like local_gpu_generate_round or local_gpu_finalize_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage context (recording evidence after a generation round) but does not explicitly state when to use this vs alternatives like get_run or generate_round. No exclusions or when-not guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_register_workflowA
Recheck and immutably register one exact previously inspected ComfyUI workflow proposal.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation | Yes | ||
| workflow_path | Yes | ||
| proposal_digest | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses 'immutably' to indicate irreversibility, and 'recheck' implies verification, but it omits details about what confirmation entails, possible side effects, or error behavior. This is adequate but has clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no filler. It front-loads the action ('Recheck and immutably register') and immediately specifies the resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists to cover return values, the description leaves many questions unanswered: the exact sequence relative to other tools, the meaning of 'confirmation', what 'recheck' involves, and the implications of immutability. For a tool with no annotations and 0% parameter coverage, it is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for missing parameter meanings. It does not explicitly explain any of the three parameters. The phrase 'previously inspected workflow proposal' vaguely hints at proposal_digest, and 'register' could relate to confirmation, but no direct mapping is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('recheck and immutably register') and the specific resource ('one exact previously inspected ComfyUI workflow proposal'). It differentiates from sibling tools by emphasizing 'previously inspected', which implies it must follow inspect_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously inspected' provides a clear precondition, indicating this tool is used after an inspection step. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_set_model_trustB
Inspect, approve, or revoke one exact current local model identity. A trust mutation requires the exact confirmation previously returned for the same mutation boundary, displayed to the user, and repeated in a later user message.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| catalog_id | No | ||
| preference | No | ||
| capabilities | No | ||
| confirmation | No | ||
| workflow_path | No | ||
| identity_token | Yes | ||
| public_metadata | No | ||
| two_stage_layout | No | ||
| workflow_binding | No | ||
| workflow_template_id | No | ||
| registered_workflow_id | No | ||
| component_identity_tokens | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a critical behavioral requirement: trust mutations require a previously returned confirmation to be displayed to the user and repeated later. With no annotations provided, this adds important context. However, it does not explain side effects, destructive potential of revoke, or other operational details expected for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the primary purpose. It avoids unnecessary filler but is so brief that it sacrifices completeness for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 params, nested objects, output schema, multiple action enums), the description is too sparse. It does not explain the 'action' values, identity_token purpose, workflow binding fields, or the confirmation workflow beyond a single sentence. The output schema may cover return values, but the description leaves many usage gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter-related mention is the 'exact confirmation previously returned' which maps to the 'confirmation' field. With 13 parameters and 0% schema coverage, the description fails to explain identity_token, action enum values, nested objects, or other critical parameters, leaving the agent under-informed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly ('Inspect, approve, or revoke one exact current local model identity') with a specific resource. It distinguishes the tool from sibling tools by focusing on trust operations. However, the phrase 'mutation boundary' is jargon and not explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for trust inspection/approval/revocation, but does not explicitly state when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or alternative tools for related tasks like model discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_gpu_start_runA
Create a visual-asset run only after later user confirmation; copy start_run_boundary exactly from the previously displayed recommendation and add the remaining run fields.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | ||
| intent | Yes | ||
| backend | Yes | ||
| profile | Yes | ||
| subtype | Yes | ||
| max_rounds | Yes | ||
| constraints | Yes | ||
| route_token | Yes | ||
| model_choice | Yes | ||
| upscale_policy | Yes | ||
| authorization_scope | Yes | ||
| initial_regional_conditioning | No | ||
| initial_two_stage_conditioning | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the prerequisite of a previous recommendation and the exact-copy requirement, adding some behavioral context. However, it omits side effects, authorization needs, or what 'start_run_boundary' means, and whether the run starts a background process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the main verb and key constraint. It avoids fluff, though phrases like 'remaining run fields' are vague. Overall, it is concise and structured enough for a short tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (13 parameters, nested objects, enums, no parameter descriptions) but the description gives almost no guidance on how to fill parameters or what workflow precedes this call. The mismatch between 'start_run_boundary' and the actual schema further reduces completeness, leaving the description inadequate for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only references 'start_run_boundary', which is not a property in the schema (and additionalProperties is false). It vaguely says 'add the remaining run fields' without explaining any of the 13 parameters or nested objects, providing minimal semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Create a visual-asset run') and adds a key constraint ('only after later user confirmation'), distinguishing it from sibling tools that generate images or finalize runs. It is specific about the resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit timing guidance ('only after later user confirmation') and instructs to copy 'start_run_boundary exactly' from a prior recommendation, which helps when to use it. It does not explicitly name alternative tools or exclusion cases, so it's one step below full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v0.9.0- First observed
local_gpu_branch_run - First observed
local_gpu_cleanup_run - First observed
local_gpu_confirm_mask - First observed
local_gpu_discover_models - First observed
local_gpu_finalize_run - First observed
local_gpu_generate_image - First observed
local_gpu_generate_round - First observed
local_gpu_get_run - First observed
local_gpu_imagegen_check - First observed
local_gpu_inspect_workflow - First observed
local_gpu_list_profiles - First observed
local_gpu_prepare_mask - First observed
local_gpu_recommend_models - First observed
local_gpu_record_review - First observed
local_gpu_register_workflow - First observed
local_gpu_set_model_trust - First observed
local_gpu_start_run
TDQS
Each tool has a clearly defined role in the local GPU image generation pipeline, from environment checks to run finalization. The two generation tools (generate_image and generate_round) are distinct, with one serving as a compatibility fallback and the other as part of the core workflow.
All tools follow a strict 'local_gpu_<verb>_<noun>' convention using snake_case. The pattern is uniform and predictable, making it easy to deduce tool behavior from the name alone.
At 17 tools, the set is slightly above the typical 3-15 range, but the complexity of the domain (workflow inspection, trust management, run lifecycle, and mask handling) justifies the count. Each tool serves a distinct purpose, so the overhead is acceptable.
The toolset provides end-to-end coverage for managing local GPU image generation runs, including setup, registration, recommendation, execution, review, and cleanup. Minor gaps exist, such as no explicit list-runs tool and no update operation for run fields, but these are not critical given the immutable nature of runs.
Maintenance
Related MCP Connectors
Dive into the world of open-source with the GitHub Repo Explorer! Utilize the powerful GitHub
Human visual review for agent-built HTML: publish artifacts, pull anchored comments, push fixes.
Independent static verification for exact immutable public GitHub commits.
Read-only AI project discovery, verification, comparison, shortlisting, and stack planning.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceThe Comfy MCP Server uses the FastMCP framework to generate images from prompts by interacting with a remote Comfy server, allowing automated image creation based on workflow configurations.45MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that analyzes and evaluates GitHub README documentation quality using advanced neural processing, providing scores and improvement suggestions.1-
- FlicenseBqualityCmaintenanceReads README files from the file system and automatically generates structured Product Requirements Documents (PRDs), saving users time on documentation tasks.19-
- FlicenseBqualityDmaintenanceEnables LLMs to automatically analyze project structures, detect technologies, and generate comprehensive, professional README documentation files with proper formatting, badges, and sections.41-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChevalGrand520/local-gpu-imagegen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server