Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Subagent MCP

Most agent setups ask one model inside one harness to plan, implement, and review the same work. That can leave the same assumptions in every role — closer to grading your own homework than getting an independent review.

Subagent MCP lets Codex remain the main agent and orchestrator while delegating work to external agent runtimes. An external agent runtime is a model paired with its native harness. Claude with Claude Code, a Cursor-supported model with Cursor's harness, and Qwen with its native harness are examples, not hard-coded branches: adapters connect each runtime through the same normalized lifecycle.

These runtimes supplement Codex's native subagent pool. Where a native harness supports subscription-backed use, work can draw on that provider's existing quota; actual concurrency and capabilities still depend on installed adapters and provider limits. Subagent MCP does not enable usage credits or overage, and managed provider work fails closed when no-overage evidence or required identity, model, workspace, or session data is missing.

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.0a8 targets 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.0a8
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.0a8 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.

Use it from Codex

After registering the server and configuring a runtime, start a new Codex task and delegate in natural language. For example:

Use Subagent MCP to ask an external agent to review this change, then evaluate its findings independently.

Codex decides what to delegate, observes the result, and keeps the final judgment. Underneath, each adapter maps the same lifecycle to its native harness: spawn, inspect or wait, send follow-up input or interrupt, then close.

To keep Codex supervision lean, leave lifecycle responses in their default compact mode and use one agent_wait call with its five-minute default. The MCP waits locally and wakes Codex only for completion, required input, or a timeout; request full mode only when diagnosing a problem.

How it fits together

flowchart LR
    C["Codex<br/>Main agent & orchestrator"]
    M["Subagent MCP<br/>Gateway"]
    UI["Localhost UI<br/>Settings & activity"]

    C -->|"stdio MCP<br/>delegate · steer · observe"| M
    UI --> M

    subgraph E["External agent runtimes — adapter-driven"]
        R1["Model<br/>+<br/>native harness"]
        R2["Model<br/>+<br/>native harness"]
        RN["More runtimes<br/>via future adapters"]
    end

    M -->|"normalized lifecycle"| R1
    M -->|"normalized lifecycle"| R2
    M -->|"normalized lifecycle"| RN

A runtime may be Claude with Claude Code, a Cursor-supported model with Cursor's harness, Qwen with its native harness, or another adapter. These are examples of the adapter shape, not special cases in the architecture.

Subagent MCP owns the normalized lifecycle, status, redaction, leases, and circuits. Each adapter translates that contract to its native harness without writing 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
Separately packaged sample adapter and public conformance runner Works from an installed wheel
Localhost settings and activity UI Works
Windows install, update, rollback, registration, and conservative uninstall Passed fresh public-user acceptance for 0.1.0a8
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

subagent_harness_mcp-0.1.0a8.tar.gz (103.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

subagent_harness_mcp-0.1.0a8-py3-none-any.whl (110.2 kB view details)

Uploaded Python 3

File details

Details for the file subagent_harness_mcp-0.1.0a8.tar.gz.

File metadata

  • Download URL: subagent_harness_mcp-0.1.0a8.tar.gz
  • Upload date:
  • Size: 103.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for subagent_harness_mcp-0.1.0a8.tar.gz
Algorithm Hash digest
SHA256 994c5db987ac8a474b461bc39ae5be58d6c787827d2a72c936dcec5aa9ea1e83
MD5 41c9481d7ab7786f3b017d5583e124c6
BLAKE2b-256 a6187212b9e5ba4d1b437687a3205d6436c5e34cf3f1865a26df0e2eaffc9c48

See more details on using hashes here.

Provenance

The following attestation bundles were made for subagent_harness_mcp-0.1.0a8.tar.gz:

Publisher: release.yml on Thang1710/subagent-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file subagent_harness_mcp-0.1.0a8-py3-none-any.whl.

File metadata

File hashes

Hashes for subagent_harness_mcp-0.1.0a8-py3-none-any.whl
Algorithm Hash digest
SHA256 46993b0aefa671f2c36bb46e1613b8347f41860c557053830156d5a1ca1262c0
MD5 b8a2d25a55408a83c57506941922fe8c
BLAKE2b-256 2ced9737bdaf991e17d5319a69ff63cdc243c5448ca5529d6c8965dadf47f3d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for subagent_harness_mcp-0.1.0a8-py3-none-any.whl:

Publisher: release.yml on Thang1710/subagent-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page