This release is a pre-release and may not be stable for production use.
Subagent MCP
Subagent MCP gives Codex and other stdio MCP clients one local lifecycle for delegating work to external coding-agent harnesses. Each adapter uses the provider's native harness while Subagent MCP keeps status, sessions, input, and results consistent for the client.
The project and repository are named Subagent MCP. The Python distribution
and command are subagent-harness-mcp because the shorter package name was
already taken.
Preview:
0.1.0a3targets Windows. The local MCP, deterministic adapter, package, and localhost UI are usable. Live Claude Code work remains gated until the exact native-harness and no-overage canary passes.
Install
Install uv first if you do not already have it:
winget install --id=astral-sh.uv -e
Then install the pinned preview and connect it to Codex:
uv tool install subagent-harness-mcp==0.1.0a3
codex mcp add subagent-mcp -- subagent-harness-mcp serve
Start a new Codex task after registration. You can confirm the installation at any time:
subagent-harness-mcp --version
codex mcp list
If 0.1.0a3 has not reached PyPI yet, install the current checkout instead:
uv tool install .
Open the local UI
subagent-harness-mcp ui
This opens a temporary browser session on localhost for settings, health, and read-only activity. It is not an agent chat window, and the server stops when the command exits.
How it fits together
flowchart LR
C["Codex or another MCP client"] -->|"stdio MCP"| S["Subagent MCP"]
U["Browser UI<br/>localhost only"] --> S
S --> D[("Local config and activity")]
S --> L["Normalized subagent lifecycle"]
L --> F["Deterministic adapter"]
L --> N["Native harness adapters"]
N --> H["Claude Code"]
N -.-> X["Future harnesses"]
The service owns lifecycle state, idempotency, redaction, leases, and circuits. Adapters translate that contract to a native harness and do not write shared state directly. See the architecture for details.
What works in this preview
| Capability | Status |
|---|---|
| 13-tool normalized lifecycle over stdio | Works |
| Deterministic adapter for integration testing | Works without provider quota |
| Localhost settings and activity UI | Works |
| Windows install, update, rollback, registration, and conservative uninstall | Implemented; final public-install verification is pending |
| Claude Code native adapter | Implemented but remains needs_canary until its live no-overage gate passes |
| Provider model selection | Opaque native model IDs; no hard-coded model allowlist or silent fallback |
| Project-local Claude context and hooks | Disabled until canonical path and content-hash trust are enforced |
| macOS, Linux, visible-background handoff, and native client side-panel rows | Not supported in this preview |
Green deterministic tests prove the local contract; they do not prove that a live provider is ready.
Other MCP clients
Point any stdio-compatible MCP client at the installed command:
{
"command": "subagent-harness-mcp",
"args": ["serve"]
}
The MCP exposes versioned runtime, project-trust, agent-lifecycle, and workspace
tools. Public schemas live in schemas/.
Safety and billing
- Subagent MCP never enables usage credits or changes billing settings.
- Managed provider work fails closed on missing identity, model, workspace, session, or no-overage evidence; it does not silently choose a fallback.
- Provider model IDs and reasoning settings remain native, opaque values.
- Product data stays in explicit local config, state, and data roots. Optional client registration uses the client's official command and verifies the exact entry instead of directly rewriting unrelated configuration.
- Native transcripts remain owned by the native harness. Treat agent output as untrusted advice and verify it before applying changes.
Read the full threat model and report vulnerabilities privately as described in SECURITY.md.
Development
CONTRIBUTING.md contains the deterministic test workflow and adapter guidelines. Subagent MCP is released under the MIT License.
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 subagent_harness_mcp-0.1.0a3.tar.gz.
File metadata
- Download URL: subagent_harness_mcp-0.1.0a3.tar.gz
- Upload date:
- Size: 95.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e24809fe9107fa9f61da9d5af79d5bae8b75a7f1b1c179f74f9f25d0c2181271
|
|
| MD5 |
722e081ba6334419e6cf0318c7718912
|
|
| BLAKE2b-256 |
b8ef4cd612f93695df5843ad41a8435761e22e80f083861fcd9936c61086bae4
|
Provenance
The following attestation bundles were made for subagent_harness_mcp-0.1.0a3.tar.gz:
Publisher:
release.yml on Thang1710/subagent-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
subagent_harness_mcp-0.1.0a3.tar.gz -
Subject digest:
e24809fe9107fa9f61da9d5af79d5bae8b75a7f1b1c179f74f9f25d0c2181271 - Sigstore transparency entry: 2543831277
- Sigstore integration time:
-
Permalink:
Thang1710/subagent-mcp@b0779cacf740eb0c58983ea830d979aef5b07400 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Thang1710
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b0779cacf740eb0c58983ea830d979aef5b07400 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file subagent_harness_mcp-0.1.0a3-py3-none-any.whl.
File metadata
- Download URL: subagent_harness_mcp-0.1.0a3-py3-none-any.whl
- Upload date:
- Size: 102.4 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 |
271e5a884edd124c76d30883fbc3482cc051029cda96915187352176bcd41ecc
|
|
| MD5 |
fe0ed113783be857e321d43483ad9924
|
|
| BLAKE2b-256 |
49b53703ebd3ded5bbe33fa1a543c7857ca44c958749f63092d38c792eb2655f
|
Provenance
The following attestation bundles were made for subagent_harness_mcp-0.1.0a3-py3-none-any.whl:
Publisher:
release.yml on Thang1710/subagent-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
subagent_harness_mcp-0.1.0a3-py3-none-any.whl -
Subject digest:
271e5a884edd124c76d30883fbc3482cc051029cda96915187352176bcd41ecc - Sigstore transparency entry: 2543831801
- Sigstore integration time:
-
Permalink:
Thang1710/subagent-mcp@b0779cacf740eb0c58983ea830d979aef5b07400 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Thang1710
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b0779cacf740eb0c58983ea830d979aef5b07400 -
Trigger Event:
workflow_dispatch
-
Statement type: