Skip to main content
Glama

IMPORTANT

Personal-use tool. Colab compute belongs to your Google account. Sharing it with others may violate the Colab terms/FAQ (e.g. reselling or sharing compute) and can get the account restricted. Keep access to yourself or a handful of family/friends. Not affiliated with Google or Comfy Org.


πŸ“– Overview

A tiny gateway, comfy-gate (Python / aiohttp), runs on your VPS behind Cloudflare Access.

NOTE

The Gate's Essential Role: comfy-gate is fundamentally a lifecycle, cold-start, and auto-shutdown gateway β€” it does NOT reimplement ComfyUI. When the GPU is asleep, it serves a lightweight, zero-compute wake card with real-time SSE progress. When booted, it transparently reverse-proxies directly into the authentic, full-featured ComfyUI Web Application (including node graph, App mode, custom nodes, extensions, and WebSocket streaming), injecting only a non-intrusive floating overlay to switch between App mode and the Node Graph.

Pillar

What you see

How

1 Β· Wake on demand

Sleep card β†’ Wake β†’ stages + logs β†’ ComfyUI Web App

10-state machine, colab new (L4) + setup via colab exec, streaming reverse proxy (HTTP + /ws)

2 Β· Switchable profiles

Pick MOSS-Image, SD3.5, … before waking

profile.yaml + JSON Schema; zero secrets, models by public URL

3 Β· Auto-stop

Overlay shows time left; sleeps on idle / max session / quiet hours / CU budget

every rule configured in .env


Related MCP server: comfy-draftsman

πŸ–ΌοΈ Preview

πŸ€– AI Agent Driving the GPU

Two real sessions where an AI agent called the gateway end-to-end β€” no browser, no manual cell.

🟒 Text-to-Image

🟣 Image-to-Image

Agent command

text to img: a pic about "hello world: comfy-colab-kit" 1024 Γ— 1024

img to img, using the highest quality, generate an image based on the reference image, maintaining the original composition, and completely change the girl's outfit to a bikini.

Skill entry

/comfy-colab-kit

/comfy-colab-kit

Pipeline

MOSS-Image DeBand text-to-image

character matte β†’ beach plate β†’ MOSS-Image DeBand img2img

Profile preset

Fast alt β€” 10 steps + anti-banding LoRAs

Quality β€” 25 steps, banding-fix LoRAs at full strength, no turbo LoRAs

Resolution

1024 Γ— 1024

1024 Γ— 1024, 2 variations

GPU state on arrival

already ready β€” no wake-up needed

already ready β€” session reused

Wall time

41 s

2 m 14 s

Output

one PNG (outputs/hello-world-comfy-colab-kit-1024.png)

beachA (sheer wrap) and beachB (plain two-piece)

CU ledger

22.16 CU left Β· 1.71 CU/hr while up

20.99 CU left Β· 1.71 CU/hr while up

Afterwards

agent can call stop to release the GPU immediately

agent keeps the GPU warm for the next variation, then releases it

Both flows run entirely through the gateway's REST/MCP surface: the agent never touches a browser, a notebook cell, or a Colab URL.


πŸ’‘ Why Comfy Colab Kit? (The Paradigm Shift)

Traditional Colab forces you to sit in front of a computer, manually run notebook cells, and baby-sit browser tabs that disconnect when your laptop sleeps. Comfy Colab Kit completely decouples compute execution from human attendance:

Dimension

❌ Traditional Colab Notebooks

⚑ Comfy Colab Kit

Trigger Method

Sit at PC, open browser, manually execute cells

Anywhere & Autonomous Agents: 1-click wake on mobile, tablet, or headless AI agent (REST / MCP)

Session Reliability

Dies if laptop sleeps, tab closes, or Wi-Fi blips

Decoupled Cloud Gateway: VPS gateway persists state, auto-reconnects, survives local disconnects

Access & Security

Ephemeral random *.trycloudflare.com URLs with zero auth

Single Custom Domain + Cloudflare Access: Enterprise Zero-Trust SSO / OTP, service tokens for agents

Collaboration

Teammates accidentally spin up duplicate VMs, burning CU

Global Idempotent Shared Session: All visitors join the running instance with live streaming logs

Budget Safety

Leaving notebooks running overnight drains entire CU quotas

Smart Auto-Shutdown: Automatic spin-down on idle (e.g. 20m), max session time, or CU hard budget

Automation & MCP

Inaccessible to headless AI coding agents

AI Agent & MCP Native: Full Model Context Protocol (stdio + HTTP), ckit CLI, RFC 8628 device flow, /comfy-colab-kit skill

✨ Features

  • Remote & Mobile Wake β€” Wake ComfyUI on Colab L4 from your smartphone, tablet, or terminal. No desktop browser or manual cell execution required.

  • One shared session β€” wake is idempotent; a second visitor (or agent) joins the in-flight boot instead of starting another VM. State survives gate restarts (STATE_DIR/session.json).

  • Model Context Protocol (MCP) Native β€” Full MCP JSON-RPC 2.0 support via local stdio (ckit mcp) and remote HTTP (/mcp), exposing gate_status, gate_wake, gate_txt2img, gate_img2img, gate_generate, and gate_stop.

  • Live progress for everyone β€” Server-Sent Events broadcast state, download GB / speed and setup logs.

  • Dual-Mode Access Control (Mode B Default) β€” OWNER_ONLY_CONTROL=true restricts wake, stop, profile switch, and extension to administrators (OWNER_EMAILS), safeguarding Colab compute units while allowing all authenticated team members to share ComfyUI once ready. Switchable to Mode A collaborative control ("who wakes can stop").

  • Multi-IdP & Access-verified identity β€” Supports Google & GitHub OAuth alongside Email OTP. Every request verifies Cf-Access-Jwt-Assertion (RS256, AUD, issuer).

  • Backend locked to a service token β€” the Colab tunnel hostname only admits the gate's Access service token.

  • Fast cold start & L4 hardware acceleration β€” a parallel HTTP Range downloader streams the 24.9 GB MOSS-Image profile at T0 straight into a RAM tmpfs at up to 1,096 MB/s (8.77 Gbps), overlapping tool installs and ComfyUI boot. --highvram keeps the entire 18 GB model suite resident in L4's 24 GB VRAM with 100% cache retention (zero PCIe swapping), yielding ~90 s (~1.5 min) cold starts and 26.8 s warm 1024Γ—1024 generations.

  • App mode first β€” workflows get ComfyUI App-mode metadata; the injected overlay toggles App ⇄ Graph.

  • Full ComfyUI API passthrough β€” transparently proxies /upload/image for Img2Img reference images, /prompt, /history, /view, /object_info, /system_stats, /queue, and WebSocket /ws.

  • Autonomous Agent friendly β€” RFC 8628 device flow (ckit auth), 1-click prompt copy in Web UI, docs/AGENT_SKILL.md, docs/MCP.md, skills/comfy-colab-kit/SKILL.md, and llms.txt.

πŸš€ Quick start (VPS + Cloudflare)

git clone <this repo> comfy-colab-kit && cd comfy-colab-kit
cp .env.example .env                         # set PUBLIC_HOST, COLAB_TUNNEL_HOST, CF_ACCESS_*, emails
mkdir -p secrets data && chmod 700 secrets data
ZONE_NAME=example.com COLAB_TUNNEL_HOST=comfy-colab.example.com \
  CLOUDFLARE_API_TOKEN=… scripts/cf-setup.sh # tunnel + DNS + backend Access app + service token β†’ secrets/
openssl rand -hex 32 > secrets/agent_token && chmod 600 secrets/*
docker compose -f deploy/docker-compose.yml run --rm comfy-gate colab sessions   # one-time colab login
docker compose -f deploy/docker-compose.yml up -d
# add deploy/Caddyfile.snippet to Caddy, reload, open https://$PUBLIC_HOST

Pre-built container images are also published on GHCR (docker pull ghcr.io/firetable/comfy-colab-kit:latest), and the operator CLI / MCP client can be installed standalone via uv tool install git+https://github.com/FireTable/comfy-colab-kit.git (or from the .whl attached to GitHub Releases).

Full walkthrough: docs/DEPLOY_VPS.md, docs/ACCESS.md (browser, guest link, LAN & agent access), docs/CLOUDFLARE.md, and docs/AGENT.md (comprehensive credential guide).

πŸ€– For AI Agents & Automation (Agent Skill Protocol)

Autonomous coding agents (Claude Code, Cursor, OpenClaw, Codex, LangGraph) can wake, monitor, use, and release the ComfyUI GPU backend without manual browser interaction:

[Agent] ──Bearer / Service Token──► comfy-gate (/_gate/status)
                                          β”‚ If sleeping: POST /_gate/wake
                                          β–Ό
                                    Colab VM boots L4 ComfyUI
                                          β–Ό
[Agent] ◄──standard ComfyUI API───► Proxied /prompt, /history, /view
                                          β–Ό
[Agent] ──POST /_gate/stop────────► Releases GPU (or auto-sleep on idle)
  1. Authentication & Pairing: Provide Authorization: Bearer <agent_token> or Cloudflare Access Service Token headers. Alternatively, use RFC 8628 device flow via ckit auth https://<host> or click πŸ€– Copy Prompt for AI Agent in the Web UI.

  2. Status Check & Discovery: Call GET /_gate/status (or ckit status --json). Discover supported workflows via ckit profiles --json or GET /_gate/profiles.

  3. Idempotent Wake: Call POST /_gate/wake (or ckit wake --profile <name> --wait). Multiple concurrent wakes safely join the in-flight boot.

  4. Model Context Protocol (MCP): Run ckit mcp locally for Cursor/Claude Desktop, or point streamable MCP clients to https://<host>/mcp to use gate_status, gate_wake, gate_txt2img, gate_img2img, gate_generate, and gate_stop.

  5. ComfyUI API Passthrough: Once ready, call standard ComfyUI endpoints directly through the gate (POST /upload/image for Img2Img reference uploads, POST /prompt, GET /history/{prompt_id}, GET /view?filename=..., and WebSocket /ws).

  6. Clean Shutdown: When execution completes and no humans are active (clients == 0), call POST /_gate/stop (or MCP gate_stop) to immediately release compute, or allow the idle auto-stop rule to reclaim the VM.

πŸ“– Agent References & Protocols:

  • docs/AGENT_SCAFFOLDING.md β€” Let AI Build Your Profile or Adapt a Fork: Agent runbook & copy-paste prompts for generating custom ComfyUI profiles or adapting a fork of this gateway to run any Google Colab GPU workload (vLLM, Ollama, Forge, Gradio, etc.).

  • docs/MCP.md β€” Comprehensive Model Context Protocol guide (stdio ckit mcp, remote HTTP /mcp, Cursor & Claude setup).

  • skills/comfy-colab-kit/SKILL.md β€” Universal Agent Skill specification (/comfy-colab-kit) with Txt2Img vs Img2Img decision tree.

  • skills/comfy-workflow-ui/SKILL.md β€” ComfyUI App Mode and workflow UI inspection & audit runbook.

  • docs/APP_MODE.md β€” ComfyUI App Mode (Linear Mode) architecture, schemas, and node serialization rules.

  • docs/AGENT_SKILL.md β€” Detailed Agent Skill specification, credential handling, and tool patterns.

  • docs/AGENT.md β€” Autonomous VPS deployment guide, credential procurement, and Cloudflare Access setup.

  • apps/gate/openapi.yaml β€” OpenAPI 3.1 specification for all /_gate/* and passthrough routes.

  • llms.txt β€” LLM context index for AI systems.

🧩 Profiles

Profile

Purpose

Default download

moss-image (primary)

MOSS-Image: DeBand int8 default, 4-step turbo, official quality / layout, edit (optional) β€” side by side in App mode

~26 GB core / ~57 GB full default set

sd-latest

Stable Diffusion 3.5: Large fp8 default, TurboX 8-step, Medium turbo (gated, optional)

~15 GB core / ~22 GB

qwen-image

Qwen-Image 2.1: Turbo T2I default, full T2I, Turbo / full Edit

~27 GB core / ~43 GB

Workflows are only community-published ones, fetched from the author with source and license recorded. Format and passthrough options: docs/PROFILES.md.

TIP

Need a different model or a non-ComfyUI Colab service? If the built-in profiles don't include the model you want β€” or if you want to fork this repository and reuse its wake-on-demand gateway, Zero-Trust auth, RAM tmpfs Range downloader, and auto-stop rules for any Google Colab GPU workload (vLLM, Ollama, SD-WebUI Forge, Gradio, etc.) β€” point your AI coding agent at docs/AGENT_SCAFFOLDING.md to scaffold it automatically.

⏱️ Auto-stop

IDLE_TIMEOUT_MIN Β· MAX_SESSION_HOURS / EXTEND_MAX_TIMES Β· BOOT_TIMEOUT_MIN Β· STOP_ON_PAGE_CLOSE_MIN Β· QUIET_HOURS Β· DAILY_CU_BUDGET / MONTHLY_CU_BUDGET / MIN_CU_BALANCE Β· ORPHAN_SWEEP_MIN Β· WATCHDOG_GATE_LOST_MIN (Colab-side self-release). Details: docs/AUTO_STOP.md.

πŸ” Security

No secret ever enters the repo: .env, secrets/, data/ are ignored, gitleaks + scripts/check-secrets.sh run in pre-commit and CI, profiles reject credential-like keys. Secrets reach Colab over colab exec stdin and live only in kernel memory. See docs/SECURITY.md.

πŸ—οΈ Monorepo Architecture

Comfy Colab Kit is structured as an engineering monorepo separating server applications, runtime packages, model profiles, and deployment automation:

comfy-colab-kit/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ gate/                 # [Application] Gateway & Reverse Proxy (backend Python + web UI)
β”‚   β”‚   β”œβ”€β”€ app.py            # aiohttp entrypoint, routes, middleware, auto-stop loop
β”‚   β”‚   β”œβ”€β”€ session.py        # Central single-instance Session orchestrator
β”‚   β”‚   β”œβ”€β”€ proxy.py          # Reverse proxy with SSE/WS streaming & overlay injection
β”‚   β”‚   β”œβ”€β”€ openapi.yaml      # OpenAPI 3.1 specification
β”‚   β”‚   └── web/              # Wake page static UI (index.html, bg.js, logo.svg)
β”‚   └── site/                 # [Application] Showcase / Landing Site
β”‚       β”œβ”€β”€ index.html        # Showcase documentation & promo page
β”‚       β”œβ”€β”€ styles.css        # Aligned theme styles
β”‚       └── main.js           # Client interactions
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ colab/                # [Package] Colab VM agent & runtime (setup.py)
β”‚   β”œβ”€β”€ cli/                  # [Package] Host & developer CLI tool (ckit)
β”‚   └── schemas/              # [Package] JSON Schema definitions (profile.schema.json)
β”œβ”€β”€ profiles/                 # Profiles & Model Configurations
β”‚   β”œβ”€β”€ examples/             # Built-in community profiles (moss-image, sd-latest, qwen-image)
β”‚   └── custom/               # Mount point for user custom profiles
β”œβ”€β”€ deploy/                   # Infrastructure & deployment configuration
β”‚   β”œβ”€β”€ Dockerfile            # Container build recipe
β”‚   β”œβ”€β”€ docker-compose.yml    # VPS orchestration
β”‚   └── Caddyfile.snippet     # Reverse proxy routing
β”œβ”€β”€ docs/                     # Comprehensive product & engineering documentation
β”‚   β”œβ”€β”€ AGENT.md              # VPS deployment & credential acquisition runbook
β”‚   β”œβ”€β”€ AGENT_SKILL.md        # AI agent usage guide (wake, generate, stop)
β”‚   β”œβ”€β”€ AGENT_SCAFFOLDING.md  # AI agent guide to author profiles or adapt forks for any Colab workload
β”‚   β”œβ”€β”€ APP_MODE.md           # ComfyUI App Mode form architecture & UI specifications
β”‚   └── ...
β”œβ”€β”€ skills/                   # Self-contained agent runbooks
β”‚   β”œβ”€β”€ comfy-colab-kit/      # Gateway operator skill (wake, prompt, generate, stop)
β”‚   └── comfy-workflow-ui/    # Workflow UI & App Mode inspector and audit skill
β”œβ”€β”€ scripts/                  # CI, validation and secret check utilities
└── tests/                    # Pytest test suite (157 tests)

πŸ› οΈ Development

python -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]"
npm install                 # Graphviz (WebAssembly) β€” lays out the architecture diagram
python -m pytest -q
node scripts/build-hero.mjs               # the dispatch bench, assets/architecture/hero.svg
python scripts/build-architecture-svg.py   # regenerate assets/architecture/flow*.svg
AUTH_DISABLED=true STATE_DIR=/tmp/kit COLAB_BIN=/bin/false python -m gate.app   # wake page on :8080

πŸ’– Acknowledgments & Open-Source Credits

Comfy Colab Kit stands on the shoulders of giants. We express our deepest gratitude to the creators and open-source communities who make this project possible:

  • ComfyUI β€” The revolutionary node-based diffusion execution engine and modern Web App interface created by @comfyanonymous and the Comfy Org.

  • Google Colab β€” For democratizing high-performance GPU compute (NVIDIA L4 24GB).

  • Cloudflare β€” For the rock-solid Zero Trust Access network, Named Tunnels (cloudflared), and global Pages hosting.

  • React Bits β€” The visual design foundation for the Aurora WebGL shaders, SpotlightCard cursor glow, and ShinyText animations created by David Haz.

  • Hugging Face β€” High-speed model hosting and parallel weight streaming (hf_xet).

  • uv by Astral β€” Blazing fast Python environment initialization.

  • MOSS-Image β€” Cutting-edge open diffusion weights, DeBand LoRAs, and community workflows by OpenLMLab and MATLOWAI.

  • Stability AI & Qwen Team β€” For open-weights research (SD 3.5 Large & Qwen-Image 2.1).

πŸ“„ License

MIT for this repository. Models, LoRAs, custom nodes and workflows referenced by profiles keep their own licenses (listed in each profile README) and are downloaded from their original sources. Colab is a trademark of Google; ComfyUI belongs to Comfy Org. This project is not affiliated with either.

Available Tools

6 tools
gate_generateB

Submit a raw ComfyUI prompt workflow graph to the running instance, wait for execution, and return image URLs and metadata.

NameRequiredDescriptionDefault
promptYesStandard ComfyUI prompt graph JSON object mapping node IDs to node configurations.
timeout_secondsNoMaximum seconds to wait for generation (default: 180).

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose key traits: this is a blocking call that waits for execution and returns image URLs plus metadata. It omits failure behavior β€” what happens if the graph is invalid, if the queue is busy, or what a timeout produces β€” which matters for a long-running submit-and-wait tool with a configurable 180s default timeout.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler: submit, wait, return. It could only be improved by spending one clause on when to prefer a sibling wrapper instead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description usefully states the return values (image URLs and metadata) and covers both params at full schema coverage. However, with zero annotations and a nested object parameter, the definition should say more about error/timeout outcomes and side effects (enqueueing work on a shared instance) to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented in the schema and the baseline is 3. The description adds modest value by framing 'prompt' as a raw workflow graph submitted to a running instance and by tying the wait behavior to the timeout, but it adds no format or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource β€” 'Submit a raw ComfyUI prompt workflow graph to the running instance' β€” plus the two follow-on actions (wait, return images). The word 'raw' implicitly separates it from the higher-level gate_txt2img/gate_img2img siblings, but it never names them, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and nothing points the agent to gate_txt2img or gate_img2img for simpler cases. The term 'raw ... workflow graph' implies this is the low-level escape hatch when a full graph is needed, which is meaningful but left for the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gate_img2imgB

Generate a new image variation from a reference image (local file path, HTTP/HTTPS URL, or uploaded ComfyUI input filename) and a text prompt.

NameRequiredDescriptionDefault
seedNoRandom seed for reproducible generation (optional).
imageYesReference image: local file path (e.g. '~/pic.png'), HTTP/HTTPS image URL, or filename already in ComfyUI input/.
presetNoSpeed/quality preset: 'Fast alt' (default, 10 steps), 'Fast', 'Balanced', 'Quality' (25 steps).
promptYesText description guiding the image-to-image transformation.
denoiseNoDenoising strength from 0.05 (subtle) to 1.0 (complete redraw). Default: 0.75.
negative_promptNoOptional negative prompt elements to avoid.
timeout_secondsNoMaximum seconds to wait for generation (default: 180).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about whether generation is synchronous or long-running, what happens on timeout, whether GPU resources are consumed, or where the resulting image ends up. For a potentially slow generation tool with a configurable timeout_seconds parameter, these omissions matter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the action front-loaded and no filler. The parenthetical enumerating image sources duplicates the schema and could be trimmed, but overall it is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and seven parameters, the description should explain execution behavior and the nature of the returned artifact. It covers only the input contract, leaving the agent without enough information to set expectations about latency, failure modes, or results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters such as seed, preset, denoise, negative_prompt and timeout_seconds are already fully documented in the schema. The description's parenthetical listing image source types (local path, HTTP/HTTPS URL, uploaded ComfyUI filename) restates the schema's image description rather than adding new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate') and resource ('a new image variation') and states the two required inputs (reference image + text prompt). It implicitly distinguishes itself from gate_txt2img by requiring a reference image, but never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the right tool when it has an existing image to transform. There is no explicit when-to-use/when-not guidance and no mention of gate_txt2img or gate_generate as alternatives for prompt-only generation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gate_statusA

Inspect the Comfy Colab session state, active profile, progress, remaining time, and Compute Unit balance.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. "Inspect" signals a read-only, side-effect-free operation and the enumerated fields effectively describe what the caller gets back, which is valuable given there is no output schema. It does not state whether polling is cheap, whether it consumes Compute Units, or how fresh the reported progress is, which leaves real behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the action first and the returned data listed after. No filler, no redundancy, and every clause names a distinct piece of state an agent would want.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status tool with no output schema, the description supplies exactly the missing piece: what data comes back. Completeness would be higher if it noted the absence of side effects or how often it is reasonable to poll during a long generation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies; no parameter meaning is missing or contradicted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Inspect" is a specific verb and the description enumerates the exact resources returned: session state, active profile, progress, remaining time, and Compute Unit balance. This clearly separates it from siblings gate_wake, gate_generate, and gate_stop, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The read-only inspection framing implies the natural use case (checking session state before spending time or Compute Units via gate_generate), but the description never states when to call it versus the alternatives or any preconditions. Guidance is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gate_stopA

Stop the Colab GPU session immediately and release hardware to avoid unnecessary Compute Unit charges.

NameRequiredDescriptionDefault
reasonNoOptional human-readable reason for stopping the session.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description still discloses the key effects: termination is immediate, hardware is released, and billing stops accruing. It omits whether in-flight work is lost, whether the call is idempotent if the session is already stopped, and that gate_wake is required to resume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with the action first and the motivation second; every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter action tool with no output schema, the description covers what happens and why. The remaining gap is recoverability β€” that the session must be woken again via a sibling β€” which an agent could infer but is not stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional 'reason' parameter, so the schema already documents it fully. The description adds nothing about the parameter, making the baseline of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: stop the Colab GPU session and release its hardware. The intent is unmistakable against gate_status and gate_wake, though neither sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'to avoid unnecessary Compute Unit charges' implies the condition for calling it (GPU idle or no longer needed), but there is no explicit when-not-to-use guidance and no instruction to use gate_wake for restarting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gate_txt2imgB

Generate an image from a text prompt using the active profile's pipeline (MOSS-Image DeBand or SD 3.5 Large fp8). Returns full image URLs.

NameRequiredDescriptionDefault
seedNoRandom seed for reproducible generation (optional, default random integer).
widthNoImage width in pixels (default: 1024).
heightNoImage height in pixels (default: 1024).
presetNoSpeed/quality preset (for moss-image): 'Fast alt' (default, 10 steps, recommended), 'Fast' (10 steps), 'Balanced' (14 steps), 'Quality' (25 steps).
promptYesText description of the image to generate (positive prompt).
negative_promptNoOptional negative prompt elements to avoid (default: 'worst quality, bad anatomy, watermark, jpeg artifact').
timeout_secondsNoMaximum seconds to wait for generation (default: 180).

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose the two possible backends (MOSS-Image DeBand or SD 3.5 Large fp8) and that output is returned as full image URLs. It omits important behavior such as whether generation is blocking or queued, whether images persist, and what happens if the wait exceeds timeout_seconds, so the safety/cost profile remains unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with purpose and ending with the return format. Nothing is wasted and no filler or restatement of the name appears.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter generation tool with no annotations and no output schema, the definition is thin: it never explains the response object beyond "full image URLs" and never situates the tool relative to gate_status or gate_img2img. The rich input schema compensates for the parameter side, but the operational context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and every parameter (seed, width, height, preset, prompt, negative_prompt, timeout_seconds) is documented with defaults and semantics in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Generate an image from a text prompt") and identifies the underlying pipeline, so the agent knows exactly what the call produces. It does not explicitly distinguish itself from the close sibling gate_img2img, which is the only thing keeping this from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when/when-not guidance, no mention of prerequisites such as an active profile or server state (gate_status), and no pointer to gate_img2img for image-input work. Usage is only implied by the words "text prompt".

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gate_wakeB

Wake or join the shared Google Colab L4 GPU instance with a specified model profile (e.g. 'moss-image', 'sd-latest', 'qwen-image').

NameRequiredDescriptionDefault
waitNoWhether to wait until ComfyUI reaches 'ready' state before returning (default: true).
profileNoThe profile ID to wake. If omitted, the gate default profile is used.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden, and it discloses very little: no mention of startup latency, GPU quota/cost implications, authentication or Colab account requirements, or what state the instance is left in. 'Join' weakly implies idempotency, but the blocking semantics of the wait parameter are only covered in the schema, not the prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the action and the target resource before the optional qualifier. Nothing is redundant or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a resource-provisioning operation on a cloud GPU with no annotations and no output schema, and the description says nothing about cost, latency, failure modes, or what the caller receives on return. For a tool of this operational weight, one sentence leaves the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns an extra point by supplying concrete example profile IDs ('moss-image', 'sd-latest', 'qwen-image') that the schema does not enumerate, giving the agent a usable vocabulary for the profile parameter. It adds nothing for wait, which is already well documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb pair ('wake or join') and a concrete resource ('shared Google Colab L4 GPU instance'), plus the notion of a model profile. This lets an agent distinguish it from siblings like gate_status and gate_stop, though it never explicitly names those siblings or states the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Wake or join' hints that the call is safe whether or not the instance is already up, but there is no guidance on when to call this versus gate_status (to check state) or gate_stop, and no preconditions or exclusions are given. The agent must infer the workflow ordering entirely.

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.

  1. 6 tool updatesv0.1.0
    • First observedgate_generate
    • First observedgate_img2img
    • First observedgate_status
    • First observedgate_stop
    • First observedgate_txt2img
    • First observedgate_wake

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation4/5

Each tool maps to a distinct action: status inspection, session start, three generation modes, and stop. The only mild overlap is gate_txt2img vs gate_generate, but the descriptions clarify that one uses a preset profile pipeline while the other accepts a raw ComfyUI graph.

Naming Consistency4/5

All tools share a consistent 'gate_' prefix and snake_case form, which makes the set instantly recognizable as one family. The only deviation is gate_status being a noun while the rest are verbs (wake, txt2img, img2img, generate, stop).

Tool Count5/5

Six tools is a tightly scoped set for a GPU session manager plus image generation surface. Every tool earns its place, with no redundant or filler entries.

Completeness4/5

The session lifecycle is fully covered (status, wake, stop) and generation is well served by txt2img, img2img, and raw-graph modes. Minor gaps exist: no tool to enumerate available model profiles (they are only referenced by example) and no way to cancel or interrupt an in-flight generation.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers