Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Let Codex orchestrate external coding agents through their native harnesses.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"subagent": {
"command": "uvx",
"args": [
"subagent-harness-mcp",
"serve"
]
}
}
}在终端中运行这条命令
claude mcp add subagent -- uvx subagent-harness-mcp serve粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"subagent": {
"command": "uvx",
"args": [
"subagent-harness-mcp",
"serve"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"subagent": {
"type": "stdio",
"command": "uvx",
"args": [
"subagent-harness-mcp",
"serve"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 Thang1710 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.31)于44天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Spec Driven Development, Remote Desktop Commander, 御府和田玉 在售作品查询
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Independent harnesses. One Codex orchestrator.
When one model plans a change, implements it, and reviews it, the reviewer shares the author's context and blind spots. It can end up confirming its own plan instead of testing it.
Subagent MCP keeps Codex as the main agent and final decision-maker while delegating bounded work to external agent runtimes. Each runtime is a model paired with its native harness, so Codex can get implementation or review from an independent model with different context and assumptions.
That expands Codex's effective sub-agent pool and can use provider quota you already have. Subagent MCP never enables, purchases, auto-reloads, or silently opts into usage credits or paid overage.
Adapters translate every native harness into the same lifecycle: delegate, observe, steer, and close. The core hard-codes no provider role or model name.
Stable:
1.0.31targets Windows. The MCP, package, localhost UI, and
Claude Code and DeepSeek native-harness integrations are ready.
repo_read only. Bounded writing remains In development and workspace_write requests fail before a native process starts. Other explicit gaps are terminal/test/Git execution, network/web/browser, MCP/plugins/hooks, nested agents, native worktrees, restart recovery, macOS/Linux support, and exact pre-request quota.Runtime behavior comes from adapters rather than provider-specific branches in the core.
Install uv if needed, then register the exact isolated release and start its background UI:
winget install --id=astral-sh.uv -e
codex mcp add subagent-mcp -- uvx --isolated --from subagent-harness-mcp==1.0.31 subagent-harness-mcp serve uvx --isolated --from subagent-harness-mcp==1.0.31 subagent-harness-mcp ui --background
Start a new Codex task after registration.
Open http://127.0.0.1:8765 in a browser. If the background UI was stopped, start the same exact release again:
uvx --isolated --from subagent-harness-mcp==1.0.31 subagent-harness-mcp ui --background
The settings and read-only activity UI stays on the fixed loopback port and does not depend on an active MCP connection.
If a runtime shows Sign in required, click Sign in. Its native harness opens the operating system's default browser; Subagent MCP never asks for or stores credentials. Complete login there, then click Refresh. A status check never opens a browser by itself.
Current and recent activity is listed by external agent. Select a row to inspect its model, native harness, workspace, permissions, write set, current stage, lifecycle, elapsed time, and redacted terminal result. Prompts, transcripts, hidden thinking, and raw provider events are never displayed.
Ask Codex in plain language:
Use Subagent MCP to ask an external agent to review this change, then
evaluate its findings independently.
Codex chooses what to delegate, observes the result, and keeps the final judgment. Lifecycle responses are compact by default; full redacted reports remain in local product state and can be read or relayed later by hash-bound reference.
For an approval tied to an exact file, pass inputs on agent_spawn (inside task) or agent_send:
[{"path":"docs/specs/review.md","expected_sha256":"<lowercase SHA-256>"}]
The MCP hashes each repository-relative file read-only immediately before the native turn. Status returns the verified hash and configured reasoning attestation; a changed file fails before the external agent runs.
Each native harness publishes its own model choices. The UI shows friendly names and an ordered priority stack; exact provider IDs remain available for advanced routes.
Claude choices come from the installed standalone CLI through the public Agent SDK. Discovery resolves native aliases to exact model IDs without sending a prompt, and caches the resulting metadata for up to 60 seconds. A CLI identity change invalidates the cache. Missing authentication or unavailable discovery leaves custom exact-ID input available; it does not change saved model choices. New model names do not require a new MCP release, but a model can still require a newer native CLI. The usual compatibility canary remains separate.
The model picker adds and removes models only through explicit actions. Opening and applying it leaves the existing order unchanged unless you edit it.
runtime_list includes config_revision. After user approval, configure a runtime through runtime_configure using that revision and a new request ID:
{
"request_id": "choose-claude-model-1", "expected_revision": 7, "patch": { "runtimes": { "claude-code": { "options": { "variant.0.model": "claude-opus-5-5", "variant.0.reasoning.effort": "max" } } } } }
The example changes an existing variant. For a fresh runtime, supply enabled: true and options.model_priority with the chosen IDs plus its required reasoning options. Settings and MCP use the same validation and revision check. A repeated identical request observes its saved receipt; different input needs a new request ID. An interrupted mutation with no receipt requires inspecting current state before another change. This tool cannot change project trust and never starts authentication, a live canary, or a provider task automatically.
When a provider explicitly reports exhausted quota or credit (QUOTA_PAUSED), Subagent MCP moves that exact model to the bottom for future tasks. It does not retry the failed task. Ambiguous failures, crashes, and timeouts do not reorder models or trigger another paid request.
That failed task stays terminal, but the next explicit delegation checks the provider again live; no cached reset clock or wait-until checkpoint substitutes for that check. When the native harness exposes no safe pre-request quota endpoint, status stays unknown rather than inferred exhausted.
Operational recovery is capped at three actions. Local state work and explicit pre-provider failures may be retried. DeepSeek also retries an explicit temporary upstream HTTP 429 at most three total attempts. A generic provider failure is never replayed automatically: a read-only task returns bounded guidance for a new explicit attempt, while a write task remains non-retryable until its write set and possible effects are reconciled. Quota, credit, billing, timeout, and ambiguous lifecycle failures never trigger another provider call. Native ACP failures include bounded redacted RPC/provider details when the harness exposes them; unknown quota remains a provider error, not exhaustion.
DeepSeek routes may use an existing subscription, unlimited offer, or funded balance that the user authorizes. Subagent MCP never purchases, reloads, or increases that balance.
agent_spawn sends the task and source read by the native harness to the selected external provider. An omitted or null required_capabilities defaults to ["repo_read"]. Explicit lists, including [], are preserved; write permission is never inferred. runtime_list advertises each manifest's required_semantic_permissions; Claude and Grok require repo_read.
Missing mandatory permissions fail locally as REQUEST_INVALID, before a runtime probe, task-input read, execution claim or provider launch. The response includes recovery.action="repair", reason="declare_required_permissions" and max_attempts=1. Follow next_action: correct the payload with a new request_id only when the required provider/source access is already authorized. An explicit restriction must not be silently replaced. This correction does not permit replaying a failed native execution or retrying quota, authentication, access, policy or ambiguous-launch failures.
The controller should reuse existing authorization for the named provider and source scope. If a spec-only review needs additional private source, ask before dispatch, for example: "May the selected provider read this spec and these named source folders for a read-only review?" Use the host's supported approval or user-question tool; explain any host rejection, keep the question pending, and honor the answer. Do not repeat a rejected call without the required approval. task.inputs verifies file identities; it is not a read sandbox or consent receipt. The MCP server cannot display a question after the host rejects a call before it reaches the server, and chat consent does not grant OS/OAuth access.
agent_wait is a bounded local observation, not a model deadline. If it returns running with wait_policy=continue_while_running, the external agent may still be working or thinking. Keep observing the same conversation; elapsed time alone never triggers retry, fallback, interruption, or another provider request.
A write task can declare up to 32 repository-relative file or directory roots in write_set. External writers may run concurrently when their canonical absolute sets are disjoint. Equal paths and parent/child paths conflict; task and lane names do not affect locking.
Omitting write_set gives the execution the whole workspace for backwards compatibility. Each adapter also enforces the normalized paths at its native harness boundary. Inspect runtime_list before creating a write request: write_root_mode=path-prefix supports exact file or directory prefixes, while existing-directory requires an existing directory. The current DeepSeek Harness native session advertises existing-directory and one writable root. Subagent MCP never widens an exact-file scope to its parent directory; use that broader directory only when it is explicitly acceptable, otherwise choose a runtime that enforces path-prefix. Multiple valid directory roots are split into disjoint writer calls. These leases coordinate Subagent MCP executions; they are not an operating-system sandbox for unrelated local processes.
On the current Windows public slice, set cwd to the checkout root and use workspace="current". For a DeepSeek write, pass workspace_write and exactly one existing directory relative to cwd, for example write_set=["Assets/_Project/Core/Scripts/GameSettings"]. An absolute path, missing path, or exact file is not a valid existing-directory root.
On Windows, the DeepSeek native sandbox must materialize a restricted-token ACE, so the current user also needs WRITE_DAC on the selected directory. Subagent MCP checks that capability read-only before ACP or provider work. It does not change ownership or ACLs. A failed check stays CAPABILITY_MISSING; it never falls back to danger-full-access.
flowchart LR
C["Codex Main agent & orchestrator"] M["Subagent MCP Gateway"] UI["Localhost UI Setti
只显示了开头部分;其余内容请在仓库中阅读