zeus_dev_helper_mcp
Developer Helper MCP — first Zeus-powered app onboarding coach.
| Board | ZDH |
| Epic | ZDH-1 |
| Skeleton | ZDH-3 |
| Catalogs | ZDH-14 → zeus_chat_request |
| Docs | docs.koten.ai · Dev Helper MCP |
Not a data-plane MCP. Coaches: checklist → templates → live readiness & smoke → handoffs.
Design: docs/DESIGN.md (ZDH-2, frozen MVP) · docs/DESIGN-0.6.md (runtime coach)
Tool catalog: docs/TOOLS.md — when to call, args, side effects, do-not
Stack
- Python 3.11+
- Official
mcpSDK (FastMCPon 1.x /MCPServeron 2.x, stdio) - Registry name:
io.github.koten-ai/zeus-dev-helper(PyPI:zeus-dev-helper-mcp)
Install
pip install zeus-dev-helper-mcp
# or
uvx zeus-dev-helper-mcp
Optional agent-smoke extra (needs kotenai-zeus-client on PyPI):
pip install "zeus-dev-helper-mcp[agent]"
Live Zeus on :8080 is the preferred catalog stamp. Offline min templates need a local zeus_chat_request clone (ZEUS_CHAT_REQUEST_DIR) or GITHUB_TOKEN for the private GitHub repo. Travel golden path needs DEMO_TRAVEL_SAMPLE_DIR when that sample is cloned.
Install (dev)
git clone https://github.com/koten-ai/zeus_dev_helper_mcp.git
cd zeus_dev_helper_mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# Agent smoke (optional):
pip install -e ".[agent]" # pulls kotenai-zeus-client
# Recommended: local catalog repo (private GH needs this or GITHUB_TOKEN)
export ZEUS_CHAT_REQUEST_DIR=../zeus_chat_request # sibling clone
# or: export GITHUB_TOKEN=... # Contents API for private zeus_chat_request
export ZEUS_URL=http://localhost:8080
export ZEUS_BUCKET=beer-sample ZEUS_SCOPE=_default
# Optional travel golden path (private sample):
# export DEMO_TRAVEL_SAMPLE_DIR=/path/to/demo_travel_sample
Run
zeus-dev-helper-mcp
# or
python -m zeus_dev_helper_mcp
Host install
Prefer the published console script (uvx / pip install) so hosts do not need a repo checkout.
Grok Build
grok mcp add treats flags like -m as its own unless they come after --.
grok mcp add zeus-dev-helper \
-e ZEUS_URL=http://localhost:8080 \
-- uvx zeus-dev-helper-mcp
From a local checkout, point command at this repo’s venv so Grok can start the server even when the TUI was launched without the venv activated:
# from this repo, after `pip install -e ".[dev]"`
grok mcp add zeus-dev-helper \
-e ZEUS_CHAT_REQUEST_DIR=/absolute/path/to/zeus_chat_request \
-e ZEUS_URL=http://localhost:8080 \
-- "$(pwd)/.venv/bin/python" -m zeus_dev_helper_mcp
Equivalent ~/.grok/config.toml (or .grok/config.toml with --scope project):
[mcp_servers.zeus-dev-helper]
command = "uvx"
args = ["zeus-dev-helper-mcp"]
env = { ZEUS_URL = "http://localhost:8080" }
enabled = true
Then /mcps → r to refresh, or grok mcp doctor zeus-dev-helper.
Common failures:
unexpected argument '-m'— missing--before the python commandNo module named 'zeus_dev_helper_mcp'/python: No such file or directory— Grok did not inherit the venv; use the.venv/bin/pythonpath aboveNo module named 'mcp.server.fastmcp'— mcp 2.x renamed FastMCP; use Helper 0.6.0+ (mcp>=1.8.0,<3)
Claude Code / Claude Desktop
Add to MCP servers config (example):
{
"mcpServers": {
"zeus-dev-helper": {
"command": "uvx",
"args": ["zeus-dev-helper-mcp"],
"env": {
"ZEUS_URL": "http://localhost:8080"
}
}
}
}
Hermes / OpenClaw
Point the host’s MCP stdio entry at uvx zeus-dev-helper-mcp (or python -m zeus_dev_helper_mcp from a venv) with the same env vars.
Implemented tools (0.6.0)
Per-tool when / args / side effects: docs/TOOLS.md. Status inventory:
| Tool | Status |
|---|---|
doctor |
Config + catalog reachability |
start_project / get_checklist / next_step / gap_report |
ZDH-8 coach walkthrough |
mark_done / mark_blocked |
Checklist updates |
set_prereq / validate_env / readiness_check |
ZDH-4 |
bootstrap_scope |
ZDH-5 live bootstrap + chat_request summary |
scaffold_app / use_sample / write_env / verify_local_setup |
ZDH-6 |
travel_golden_path |
ZDH-10 travel sample golden path |
smoke_test_zeus / smoke_test_agent / diagnose_error |
ZDH-7 / ZDH-19 ErrorCode + 0.7 classes |
recommend_surface / explain_verb / lint_verb_args / suggest_verb_call |
ZDH-18 Direct vs agent + V2 verb lint (does not POST; no Runtime scaffold rewrite) |
compat_check |
ZDH-21 version/feature gates on :8080 (not a COMPAT row) |
lint_chat_request / bind_contract / explain_hash_boundary / catalog_diff |
ZDH-22 catalog coach — extract stamp only |
lint_runtime_config / lint_app_code |
ZDH-24 config + anti-example scan (secrets redacted) |
explain_req_id_policy / detective_links / support_pack_from_turn |
ZDH-23 correlation + redacted support pack |
describe_scope |
ZDH-25 schema-only live describe |
recommend_motion |
ZDH-26 13 motions; no custom chat_request |
suggest_hooks |
ZDH-27 policy snippets (not a policy engine) |
semantic_cache_status |
ZDH-28 leave enabled=false; optional status probe |
list_catalog_modes / fetch_chat_request |
ZDH-14 |
explain / suggest_demo_prompts |
ZDH-13 glossary + prompts |
handoff_to_multi |
ZDH-11 multi-agent graduation (gated) |
recommend_data_plane_mcp / emit_mcp_config |
ZDH-12 data-plane handoff |
helper_metrics |
Local time-to-green (privacy-safe) |
Day-one coach path
start_project → set_prereq → validate_env → readiness_check
→ use_sample | travel_golden_path | scaffold_app
→ bootstrap_scope / fetch_chat_request / bind_contract / catalog_diff
→ recommend_surface / explain_verb / lint_verb_args / compat_check
→ lint_runtime_config / lint_app_code
→ smoke_test_zeus → smoke_test_agent → gap_report
→ (optional) recommend_data_plane_mcp | handoff_to_multi
Catalog rules (never invent hashes)
- Live Zeus stamp +
sync_chat_requestsfor production. - zeus_chat_request
v2/min/*for offline templates. fetch_chat_requestalways returns TEMPLATE ONLY warning.
Env
| Variable | Purpose |
|---|---|
ZEUS_URL |
Public Zeus API (:8080) |
ZEUS_BUCKET / ZEUS_SCOPE / ZEUS_COLLECTION |
Scope for bootstrap/auth probes |
ZEUS_MODE |
default analytics |
ZEUS_USERNAME / ZEUS_PASSWORD |
basic auth (not stored by set_prereq) |
ZEUS_BEARER_TOKEN |
bearer auth |
ZEUS_CHAT_REQUEST_DIR |
Local clone of zeus_chat_request |
GITHUB_TOKEN / GH_TOKEN |
Private GitHub fetch |
ZEUS_CHAT_REQUEST_REPO |
default koten-ai/zeus_chat_request |
ZEUS_CHAT_REQUEST_BRANCH |
default main |
DEMO_TRAVEL_SAMPLE_DIR |
Local clone of demo_travel_sample (ZDH-10) |
KOTEN_DOCS_BASE_URL |
default https://docs.koten.ai |
ZEUS_DEV_HELPER_STATE_DIR |
checklist / prereqs / local metrics |
Boundaries
| This Helper | Not this Helper |
|---|---|
| Onboarding coach to first green | Data-plane Explore/Verify tools |
| Catalog templates + readiness/smoke | Inventing contract_hash |
| Multi / data-plane handoffs | ZJA job runtime / Hub admin mutations |
KOTEN_DOCS_BASE_URL |
default https://docs.koten.ai (published site) |
KOTEN_DOCS_BRANCH |
default zeus-v1.0.0 (source branch for machine files) |
ZEUS_DEV_HELPER_STATE_DIR |
checklist + prereqs state (default ~/.config/zeus_dev_helper) |
LLM_API_KEY / OPENAI_API_KEY |
presence checked by validate_env |
Tests
pip install -e ".[dev]"
pytest -q
Requires sibling ../zeus_chat_request with manifest.json for catalog tests.
PyPI and MCP Registry
Official registry name: io.github.koten-ai/zeus-dev-helper. Metadata lives in server.json. The registry hosts metadata only; the install artifact is the public PyPI package zeus-dev-helper-mcp.
Releases are tag-driven (vX.Y.Z). .github/workflows/release.yml tests, builds, creates a GitHub Release, publishes to PyPI (Trusted Publisher, environment pypi), then runs mcp-publisher against the official MCP Registry.
Before the first tag:
- Create the GitHub Actions environment
pypion this repo. - On PyPI trusted publishing add a pending GitHub publisher:
- Owner:
koten-ai - Repository:
zeus_dev_helper_mcp - Workflow name:
release.yml - Environment name:
pypi
- Owner:
- Align versions in
pyproject.toml,src/zeus_dev_helper_mcp/__init__.py, andserver.jsonwith the tag. - Merge to
main, thengit tag v0.6.0 && git push origin v0.6.0.
The GitHub source repo may stay private; PyPI and the MCP Registry require a public install path (pip / uvx). Keep repository in server.json only if you want clients to see the GitHub URL.
Related
| Repo | Role |
|---|---|
| zeus_client_python | SDK |
| zeus_chat_request | Min catalogs |
| docs.koten.ai | Published platform docs |
| koten_docs | Docs source + agent-index.yaml |
| Zeus | Engine |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zeus_dev_helper_mcp-0.6.0.tar.gz.
File metadata
- Download URL: zeus_dev_helper_mcp-0.6.0.tar.gz
- Upload date:
- Size: 107.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4893026cb57ccac0ec983107f9c87d4ce15e99f807f56d5caaa6acc90fbc337c
|
|
| MD5 |
20d262ba988776a3af5d3b086a5b08a3
|
|
| BLAKE2b-256 |
10d1cc9b1c29086ed3264ac9c349d3622b2c9d68a5c0bf2b7143c5fb07699261
|
Provenance
The following attestation bundles were made for zeus_dev_helper_mcp-0.6.0.tar.gz:
Publisher:
release.yml on koten-ai/zeus_dev_helper_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeus_dev_helper_mcp-0.6.0.tar.gz -
Subject digest:
4893026cb57ccac0ec983107f9c87d4ce15e99f807f56d5caaa6acc90fbc337c - Sigstore transparency entry: 2759121858
- Sigstore integration time:
-
Permalink:
koten-ai/zeus_dev_helper_mcp@13632f3538c65d6c8f00746c32b95a7be093caae -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/koten-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@13632f3538c65d6c8f00746c32b95a7be093caae -
Trigger Event:
push
-
Statement type:
File details
Details for the file zeus_dev_helper_mcp-0.6.0-py3-none-any.whl.
File metadata
- Download URL: zeus_dev_helper_mcp-0.6.0-py3-none-any.whl
- Upload date:
- Size: 80.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e8641d3ef7e83850932d5e51c355ce8e3d052e5fc07272c9bc7cd0f6bd9592e
|
|
| MD5 |
7e28dd41a6f40d1de3ca637e6ca37878
|
|
| BLAKE2b-256 |
268ec47cb8bbcb9b2081485ee02c54107ec26a0d8eda09e17b894d0bfe533438
|
Provenance
The following attestation bundles were made for zeus_dev_helper_mcp-0.6.0-py3-none-any.whl:
Publisher:
release.yml on koten-ai/zeus_dev_helper_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeus_dev_helper_mcp-0.6.0-py3-none-any.whl -
Subject digest:
7e8641d3ef7e83850932d5e51c355ce8e3d052e5fc07272c9bc7cd0f6bd9592e - Sigstore transparency entry: 2759122241
- Sigstore integration time:
-
Permalink:
koten-ai/zeus_dev_helper_mcp@13632f3538c65d6c8f00746c32b95a7be093caae -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/koten-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@13632f3538c65d6c8f00746c32b95a7be093caae -
Trigger Event:
push
-
Statement type: