Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Coach first Zeus Client app to green (stdio MCP).
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
ZEUS_URL, ZEUS_BUCKET, ZEUS_SCOPE, ZEUS_USERNAME, ZEUS_PASSWORD, ZEUS_BEARER_TOKEN, ZEUS_CHAT_REQUEST_DIR, GITHUB_TOKEN, DEMO_TRAVEL_SAMPLE_DIR, ZEUS_DEV_HELPER_TOOLSETS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"zeus-dev-helper": {
"command": "uvx",
"args": [
"zeus-dev-helper-mcp"
],
"env": {
"ZEUS_URL": "your-value",
"ZEUS_BUCKET": "your-value",
"ZEUS_SCOPE": "your-value",
"ZEUS_USERNAME": "your-value",
"ZEUS_PASSWORD": "your-value",
"ZEUS_BEARER_TOKEN": "your-value",
"ZEUS_CHAT_REQUEST_DIR": "your-value",
"GITHUB_TOKEN": "your-value",
"DEMO_TRAVEL_SAMPLE_DIR": "your-value",
"ZEUS_DEV_HELPER_TOOLSETS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add zeus-dev-helper --env ZEUS_URL=your-value --env ZEUS_BUCKET=your-value --env ZEUS_SCOPE=your-value --env ZEUS_USERNAME=your-value --env ZEUS_PASSWORD=your-value --env ZEUS_BEARER_TOKEN=your-value --env ZEUS_CHAT_REQUEST_DIR=your-value --env GITHUB_TOKEN=your-value --env DEMO_TRAVEL_SAMPLE_DIR=your-value --env ZEUS_DEV_HELPER_TOOLSETS=your-value -- uvx zeus-dev-helper-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"zeus-dev-helper": {
"command": "uvx",
"args": [
"zeus-dev-helper-mcp"
],
"env": {
"ZEUS_URL": "your-value",
"ZEUS_BUCKET": "your-value",
"ZEUS_SCOPE": "your-value",
"ZEUS_USERNAME": "your-value",
"ZEUS_PASSWORD": "your-value",
"ZEUS_BEARER_TOKEN": "your-value",
"ZEUS_CHAT_REQUEST_DIR": "your-value",
"GITHUB_TOKEN": "your-value",
"DEMO_TRAVEL_SAMPLE_DIR": "your-value",
"ZEUS_DEV_HELPER_TOOLSETS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"zeus-dev-helper": {
"type": "stdio",
"command": "uvx",
"args": [
"zeus-dev-helper-mcp"
],
"env": {
"ZEUS_URL": "your-value",
"ZEUS_BUCKET": "your-value",
"ZEUS_SCOPE": "your-value",
"ZEUS_USERNAME": "your-value",
"ZEUS_PASSWORD": "your-value",
"ZEUS_BEARER_TOKEN": "your-value",
"ZEUS_CHAT_REQUEST_DIR": "your-value",
"GITHUB_TOKEN": "your-value",
"DEMO_TRAVEL_SAMPLE_DIR": "your-value",
"ZEUS_DEV_HELPER_TOOLSETS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
ZEUS_URL envZEUS_BUCKET envZEUS_SCOPE envZEUS_CHAT_REQUEST_DIR envDEMO_TRAVEL_SAMPLE_DIR envZEUS_DEV_HELPER_TOOLSETS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント koten-ai で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:ZEUS_USERNAME, ZEUS_PASSWORD, ZEUS_BEARER_TOKEN, GITHUB_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.7.12)がレジストリに届いたのは一昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Winecellarbuilders
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find the team for your wine room.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Stdio MCP server that coaches a coding agent and a human to a first successful Zeus Client app turn.
This is not a data-plane MCP. It does not run Explore/Verify verbs on your behalf, invent contract hashes, or perform Hub admin mutations. After the first-green smokes pass, data-plane and multi-agent work are handoffs only.
| Package | zeus-dev-helper-mcp |
| Registry name | io.github.koten-ai/zeus-dev-helper |
| Transport | stdio |
| Python | 3.11+ |
| MCP SDK | mcp (FastMCP on 1.x / MCPServer on 2.x) |
The server walks a first-app checklist: prereqs, live readiness on the public Zeus API, catalog templates, contract bind (copy a stamped hash only), surface/verb coaching, config lint, and smoke tests. Prefer a live Zeus stamp for catalogs. fetch_chat_request is always template only.
Hard constraints the tools enforce:
contract_hashverify_local_setup and smoke_test_agent import zeus_client in this Helper process. Install the agent extra into that environment. The app .venv does not satisfy the check.
pip install "zeus-dev-helper-mcp[agent]"
uvx --from 'zeus-dev-helper-mcp[agent]' zeus-dev-helper-mcp
zeus-dev-helper-mcp
python -m zeus_dev_helper_mcp
Prefer the published console script (uvx / pip install) so hosts do not need a source checkout.
Set ZEUS_URL to your Zeus public API on port 8080 (never Hub :9091). Prefer the remote host you actually use. Use http://localhost:8080 only when Zeus runs on the same machine as the MCP host.
# Remote Zeus (typical lab / shared engine) — put your host here
export ZEUS_URL=http://192.168.0.219:8080
#
If the user names a URL or sample in chat, call `set_prereq` with that zeus_url / bucket / scope (do not keep a stale localhost default). doctor reports stored vs effective URL routing (see ZDM-3).
grok mcp add treats flags like -m as its own unless they come after `--`. The uvx argument is the PyPI package zeus-dev-helper-mcp, not the MCP server id zeus-dev-helper.
grok mcp add zeus-dev-helper \
-e ZEUS_URL=http://192.168.0.219:8080 \ -- uvx --from 'zeus-dev-helper-mcp[agent]' zeus-dev-helper-mcp
From a local checkout after pip install -e ".[dev,agent]", point command at this tree’s venv so the host can start the server even when it was launched without the venv activated:
grok mcp add zeus-dev-helper \
-e ZEUS_URL=http://192.168.0.219:8080 \ -- "$(pwd)/.venv/bin/python" -m zeus_dev_helper_mcp
Equivalent config:
[mcp_servers.zeus-dev-helper]
command = "uvx" args = ["--from", "zeus-dev-helper-mcp[agent]", "zeus-dev-helper-mcp"] env = { ZEUS_URL = "http://192.168.0.219:8080" } enabled = true
Then refresh MCP servers, or grok mcp doctor zeus-dev-helper.
Common failures:
unexpected argument '-m' — missing -- before the python commanduvx zeus-dev-helper / No solution found — wrong package name; use `uvx --from 'zeus-dev-helper-mcp[agent]' zeus-dev-helper-mcp`No module named 'zeus_client' — this Helper process has no agent extra. Installing kotenai-zeus-client into the app .venv leaves the check red. Restart the MCP server after installing the extra into the Helper environment.No module named 'zeus_dev_helper_mcp' / python: No such file or directory — the host did not inherit the venv; use the .venv/bin/python path aboveNo module named 'mcp.server.fastmcp' — mcp 2.x renamed FastMCP; use Helper 0.6.0+ (mcp>=1.8.0,<3){
"mcpServers": { "zeus-dev-helper": { "command": "uvx", "args": ["--from", "zeus-dev-helper-mcp[agent]", "zeus-dev-helper-mcp"], "env": { "ZEUS_URL": "http://192.168.0.219:8080" } } } }
Add (or merge) .cursor/mcp.json in the project (or use Cursor’s global MCP settings):
{
"mcpServers": { "zeus-dev-helper": { "command": "uvx", "args": ["--from", "zeus-dev-helper-mcp[agent]", "zeus-dev-helper-mcp"], "env": { "ZEUS_URL": "http://192.168.0.219:8080" } } } }
The permission profile :workspace does not enable network. With sandbox_approval false, Codex does not ask to enable it. Pip then reports [Errno -2] Name or service not known. That is EAI_NONAME from the closed network. A package host that answers outside the sandbox can still look like a DNS failure inside it.
Set a top-level profile that extends :workspace and enables network. Do not also set sandbox_mode or [sandbox_workspace_write]. Start a new Codex thread after the change. Leave the network proxy off unless localhost is allowlisted, because sandboxed commands still need local Zeus.
default_permissions = "workspace-net"
[permissions.workspace-net] description = "Workspace writes plus outbound network so sandboxed commands can resolve package hosts." extends = ":workspace"
[permissions.workspace-net.network] enabled = true
[mcp_servers.zeus-dev-helper]
command = "uvx" args = ["--from", "zeus-dev-helper-mcp[agent]", "zeus-dev-helper-mcp"]
Install the app requirements.txt from a process that already has network. That install does not put zeus_client on the Helper interpreter. Restart the MCP server after the Helper environment gains the agent extra.
Point the host’s MCP stdio entry at uvx --from 'zeus-dev-helper-mcp[agent]' zeus-dev-helper-mcp (or python -m zeus_dev_helper_mcp from a venv that has the agent extra) with the same env vars. Replace the sample IP with your Zeus host.
doctor → (if user named URL/sample) set_prereq → start_project → next_step
→ readiness_check → use_sample | scaffold_app → bind_contract → recommend_surface → smoke_test_zeus → smoke_test_agent → diagnose_error
Prefer next_step over dumping the full checklist. Two first-green paths (TravelPlan is not the only path):
start_project(sample=travel) → `use_sample`, which follows the beer creation procedure for public demo_travel_sample. The clone URL stays https://github.com/koten-ai/demo_travel_sample.git. The destination is sample_dir, or parent_dir plus project_name. A blank parent is the directory next to this Helper checkout. A foreign default directory moves to the next open sibling. An explicit foreign sample_dir returns foreign_sample_dir and writes nothing. A recorded checkout that answers GET /api/health stays in place. The entrypoint stays python -m travel_planner on port 5000 unless PORT is set. use_sample writes a mode 600 .env from the non-secret Zeus and LLM names, keeps populated values, and fills empties. A rewrite of an existing .env sets env_change. settings_written names which of ZEUS_AUTH_MODE, ZEUS_USERNAME, LLM_BASE_URL, and LLM_MODEL changed. settings_kept gives the populated values that stayed. ZEUS_PASSWORD, ZEUS_BEARER_TOKEN, and LLM_API_KEY stay presence-only in secret_presence. Restart the app before run_turn when env_change is true. ZEUS_USERNAME defaults to demo_1. The create path does not rewrite the Dockerfile or compose file. Checklist 1.2 stays open until this process has LLM_API_KEY, XAI_API_KEY, or OPENAI_API_KEY, because this page is search and has no Direct list. Checklist 3.2 stays open until that key is in the app .env. set_prereq(has_llm_key=true) does not count. After the app is on disk, checklist 5.1, 5.2, and 6.1 recommend website_green. Travel is one scope: smoke-green does not recommend handoff_to_multi and does not write jobs.host_url.start_project(sample=beer) → use_sample(sample=beer) clones public demo_beer_sample when missing and sets DEMO_BEER_SAMPLE_DIR. That checkout is the app. Start it with Python 3.11 or newer. The use_sample run string uses python3 -m venv only when python3 is 3.11 or newer. Then pip install -r requirements.txt and python main.py (binds 127.0.0.1:8090). When that checkout has both a Dockerfile and a compose file, use_sample asks the agent to let the user choose Python or Docker before either command starts. website_green(serve_with=python|docker) records the choice. The helper does not run Docker. That requirements file installs kotenai-zeus-client>=2.5.3,<2.6 from PyPI. use_sample writes mode 600 .env from .env.example, keeps populated values, and adds missing template keys. A rewrite of an existing .env sets env_change. settings_written names which of ZEUS_AUTH_MODE, ZEUS_USERNAME, LLM_BASE_URL, and LLM_MODEL changed. settings_kept gives the populated values that stayed. ZEUS_PASSWORD, ZEUS_BEARER_TOKEN, and LLM_API_KEY stay presence-only in secret_presence. Restart the app before run_turn when env_change is true. It resolves LLM_API_KEY, LLM_BASE_URL, and LLM_MODEL together, and copies OPENAI_API_KEY or XAI_API_KEY only when the base URL and model match that provider. The clone keeps LLM_MODEL=grok-4.5-latest. run and next_action do not say to copy .env.example over that file. website_green does not run pip when the app .venv is older than 3.11. Lists are Direct and need no LLM key. Pour matches travel: rt.agent.run_turn with chat_request omitted so catalog.load_for_turn merges the live SCOPE BRIEF and MINI-SCHEMA. A helper-written catalog page uses max_rounds 4. Pour stays off until LLM_API_KEY, XAI_API_KEY, or OPENAI_API_KEY is in the app .env, including when has_llm_key=false. Leave config.json llm.api_key_env as that variable name. verify_local_setup keeps checklist 3.2 open until that file check passes. The BFF does not build a pipeline body. Do not clone demo_travel_sample. Do not write a job for this one-scope page.start_project(sample=demo_yelp) → use_sample(sample=demo_yelp) clones the LocalAI template demo_yelp when missing (utterances yelp-demo / demo_yelp) and sets DEMO_YELP_SAMPLE_DIR. When parent_dir is set, the clone is created in that directory. That checkout is the app: run it, and do not write a replacement or copy the beer sample. use_sample also downloads the public business photo set into frontend/public/business-images/ /{1,2,3}.png (no biz: prefix, no API key). Search POSTs /api/search and sends the live chat request for yelp-demo / _default as the session body. Search cards unwrap a hybrid {node, score} hit and a nested pipeline row. The business page GETs /api/business/{id} when the id is not in the bundled catalog. Review text is the source document, not a rev: doc key. set_prereq bucket is yelp-demo, scope _default. Do not clone demo_travel_sample. Bare sample=yelp stays the multi-agent handoff.start_project(sample=api) → scaffold_app(app_kind=api, coding_language=python) (FastAPI POST /turn on kotenai-zeus-client). Other languages not scaffolded yet..env; set_prereq presence flags only. has_llm_key=true does not count as the key. Pass the user’s Zeus URL into `se冒頭だけを表示しています。続きはリポジトリで読めます