Skip to main content
Glama
koten-ai

io.github.koten-ai/zeus-dev-helper

Official
by koten-ai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ZEUS_URLYesPublic Zeus API base URL (port 8080). Remote host first; localhost only when Zeus is local.
ZEUS_MODENoDefault catalog modeanalytics
ZEUS_SCOPENoScope for bootstrap and auth probes
LLM_API_KEYNoPresence checked by validate_env; required for smoke_test_agent
ZEUS_BUCKETNoScope for bootstrap and auth probes
ZEUS_PASSWORDNoBasic auth (never logged)
ZEUS_USERNAMENoBasic auth (never logged)
OPENAI_API_KEYNoPresence checked by validate_env; required for smoke_test_agent
ZEUS_AUTH_MODENoAuth mode (none, basic, bearer)
ZEUS_COLLECTIONNoScope for bootstrap and auth probes
ZEUS_BEARER_TOKENNoBearer auth (never logged)
ZEUS_CHAT_REQUEST_DIRNoLocal directory of min catalog templates; auto-set when list_catalog_modes / fetch_chat_request locate or clone public zeus_chat_request
DEMO_TRAVEL_SAMPLE_DIRNoLocal sample directory for use_sample / travel_golden_path
ZEUS_DEV_HELPER_TOOLSETSNoStatic toolsets: core (default), plus catalog,lint,travel,support,handoff or allcore
ZEUS_DEV_HELPER_STATE_DIRNoChecklist, prereqs, and local metrics~/.config/zeus_dev_helper

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
doctorB

Health / doctor. detail: health | env | compat | cache | all.

env/compat/cache fold validate_env, compat_check, and semantic_cache_status (those names stay on the lint toolset).

If the user already gave a Zeus URL or sample name, next call set_prereq with those values (not Helper localhost defaults), then start_project / next_step. Do not grep the Zeus engine tree for first green.

start_projectB

Start or reset first-app coaching checklist (single-agent default).

sample:

  • travel (default) — UI path via demo_travel_sample / use_sample

  • beer — beer-sample catalog UI; search is run_turn + MINI-SCHEMA (use_sample sample=beer)

  • demo_yelp — yelp-demo UI; use_sample clones the LocalAI template https://github.com/koten-ai/demo_yelp (aliases yelp-demo, demo-yelp)

  • api — API-only FastAPI scaffold (scaffold_app app_kind=api)

  • yelp / multi — gated until single-agent smokes green unless force_multi. Not the yelp demo. Utterances yelp-demo / demo_yelp use sample=demo_yelp.

Multi-agent goals (goal=multi or sample=yelp) are gated until single-agent smokes are green, unless force_multi=true (ZDH-11).

When no Zeus URL is stored, the MCP call asks for the public :8080 URL before the checklist starts. Leave zeus_url empty when the user did not name one. Do not copy the host ZEUS_URL. Do not pass a password.

next_stepA

Return the single current checklist blocker + recommended Helper tools (coach).

Call only the recommended tool next. If the user named a URL/bucket and prereqs are unset, recommend set_prereq first. Prefer zeus-helper:// + readiness_check / smoke_test_zeus over hand-rolled curl.

set_prereqA

Store non-secret prereqs for readiness (does not store password/token values).

Put real secrets in environment variables (ZEUS_PASSWORD, ZEUS_BEARER_TOKEN, LLM_API_KEY). When the user named a Zeus URL or sample in chat, pass that zeus_url / bucket / scope here (not Helper localhost defaults). If the user did not name a URL, leave zeus_url empty and wait for the form. Do not copy the host ZEUS_URL. Persisted values override MCP host ZEUS_* env defaults so readiness/doctor hit the user's cluster (ZDM-3). Presence flags only for credentials and LLM key.

load_process_loginA

Load Zeus login from a mode-600 env file into this process.

Write ZEUS_USERNAME and ZEUS_PASSWORD to a file outside the repo or gitignored, chmod 600, then pass that path. The password is not an argument. set_prereq stores presence flags only. The result lists loaded names and never values. Then readiness_check.

readiness_checkB

Live Zeus platform gates: healthz/readyz/version, auth, bootstrap, chat_request.

Never returns secret values. Emits failure_class + next_action on red paths.

explain_scopeB

Summarize the live chat_request stamp on public :8080.

Entity types, display fields, text-search fields, foreign-key fields, and the verb for list (find), detail (get), and search. No prompt text, document bodies, or secrets. fetch_chat_request stays template only. A failed stamp sets failure_class and does not invent entity types.

scaffold_appA

Write a ZeusRuntime middle-man.

app_kind=cli (default) or api (FastAPI POST /turn). coding_language=python only today. UI demos use use_sample / demo_travel_sample, not this tool. When no Zeus URL is stored, the MCP call asks before writing files. Do not pass a password.

use_sampleA

UI sample: travel clone, beer catalog UI, live-stamp page, or yelp demo clone.

sample=travel — locate/clone demo_travel_sample; set DEMO_TRAVEL_SAMPLE_DIR. sample=beer — write demo_beer_sample catalog UI. Search is rt.agent.run_turn with chat_request omitted (catalog.load_for_turn merges MINI-SCHEMA). LLM key required. No pipeline body. sample=catalog — write demo_catalog_sample from explain_scope. A beer-sample bucket, or entity types that are exactly Beer and Brewery, still writes the beer UI. sample=demo_yelp — locate or clone the LocalAI template https://github.com/koten-ai/demo_yelp (aliases yelp-demo, demo-yelp); set DEMO_YELP_SAMPLE_DIR. When parent_dir is set, clone into that directory. The checkout is the app: pip install -e . && python -m local_guide on http://127.0.0.1:5000, and cd frontend && npm install && npm run dev on http://localhost:5173 (the SPA proxies /api to port 5000). Writes gitignored mode-600 config.json from this process. llm.api_key_env stays the name LLM_API_KEY. Search POSTs /api/search and sends the live chat_request.json for yelp-demo/_default mode analytics as the session body. A 401 stays red. Search cards get latitude and longitude from biz:yelp: when the project step omits them, including a cached business page. The business page GETs /api/business/{id} when the id is not in the bundled catalog. Review text is the source document, not the rev: doc key. Also downloads the public business photo set into frontend/public/business-images//{1,2,3}.png (no biz: prefix, no API key). Do not write a replacement or copy demo_beer_sample. Bare sample=yelp stays the multi-agent handoff. project_name = directory name (defaults: demo_travel_sample / demo_beer_sample / demo_catalog_sample / demo_yelp). Extra travel-only phases stay on travel_golden_path (travel toolset). When no Zeus URL is stored, the MCP call asks before writing or cloning. Do not pass a password.

smoke_test_zeusB

Smoke Zeus without LLM: readiness + POST /v2/{bucket}/{scope}/describe.

website_greenB

Install, start, and check the catalog page.

Separate from smoke_test_zeus. Mints the scope session when auth is basic, then checks list cards and, when Pour is on, one search. A title-cased doc_key or src_keys entry is not a search card. A describe 200 is not this check. Does not call smoke_test_agent. No secrets in the result.

smoke_test_agentC

One ZeusRuntime run_turn (requires kotenai-zeus-client>=2.3.0 + LLM key).

If the client is missing and demo_travel_sample documents Docker install, returns guide-only docker compose next_action instead of only pip install.

diagnose_errorB

Map a symptom to failure_class + one generated-file change.

Accepts symptom text, optional req_id, hop name, HTTP status, and the top-level keys of the hop result. Does not accept document bodies. Does not echo a password, session id, or document body. Includes Detective URL templates when req_id/chat_id are present. Does not scrape Hub.

sample_support_packA

Read-only paste for a beer, travel, or yelp-demo support request.

Writes nothing and calls no Zeus API. Returns one Markdown paste: sample kind, bound directory, creation log, prereqs, open checklist rows in phases 1–5, the last website_green class, local setup, recent tool names, and the support-journal tail. Session ids stay in support_pack_from_turn. sample=api and bare sample=yelp are refused.

recommend_surfaceC

Pick Direct vs agent surface + Trace-Class (ZDH-18). Does not call Zeus.

bind_contractA

Extract stamped contract.hash only. Refuse placeholders / compute_local (ZDH-22).

Prompts

Interactive templates invoked by user choice

NameDescription
first_greenDay-one path to a first green ZeusRuntime turn.
smoke_questionAdvice-shaped question for smoke_test_agent.
support_packRedacted support pack from a failed turn.

Resources

Contextual data attached and managed by the client

NameDescription
checklistFirst-app coaching checklist JSON
glossaryGlossary topic index (read zeus-helper://glossary/{topic} for a page)
verbsV2 verb index (read zeus-helper://verbs/{name} for a page)
hash_boundaryWhat is excluded from contract_hash (MINI-SCHEMA / brief)
req_id_policyOne UUID per hop; never composite hop ids; never Rewind /turn
catalog_modesV2 min chat_request modes from zeus_chat_request (TEMPLATE ONLY)

TDQS

B3.1/5.0

Scored across 16 tools

Disambiguation3/5

Several tools overlap in verification/prereq/diagnostic space (readiness_check, smoke_test_zeus, smoke_test_agent, website_green, doctor, diagnose_error), and setup tools (set_prereq, load_process_login) can be confused. Descriptions explicitly clarify separations and non-goals, but the agent still needs careful reading to avoid misselection.

Naming Consistency3/5

Most names are snake_case, but the set mixes verb_noun patterns (start_project, use_sample, bind_contract) with noun phrases (readiness_check, sample_support_pack) and a single bare noun (doctor). It remains readable but not predictably patterned.

Tool Count3/5

With 16 tools, the set sits at the heavy end for a dev-helper server. Many tools earn their place across the lifecycle, but the count feels borderline and contributes to overlap among readiness, smoke, website, and diagnostic operations.

Completeness4/5

The surface covers prereq setup, login loading, sample creation, scaffolding, readiness, smoke tests, website checks, diagnostics, support, next-step coaching, surface recommendation, and contract binding. Minor gaps exist around cleanup/reset beyond start_project and explicit secret management, but core workflows are covered.

Maintenance

ActivityActive
ResponsivenessNo issues