Skip to main content
Pre-release

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

Subagent MCP

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.

Preview: 0.1.0a26 targets Windows. The MCP, package, localhost UI, and Claude Code native-harness integration are ready.

Runtime status

  • Claude Code — Ready. Uses the native Claude Code harness, provider-native model and reasoning settings, subscription OAuth identity, and live no-overage evidence before accepting its output.
  • DeepSeek Harness — In development. A native ACP vertical slice and model catalog integration are present; broader provider and lifecycle coverage is still being built.

No other runtime is supported yet. Future runtimes use adapters rather than provider-specific branches in the core.

Quick start

1. Install

Install uv if needed, then install the pinned preview and register it with Codex:

winget install --id=astral-sh.uv -e
uv tool install subagent-harness-mcp==0.1.0a26
codex mcp add subagent-mcp -- uvx --from subagent-harness-mcp==0.1.0a26 subagent-harness-mcp serve

Start a new Codex task after registration.

2. Configure runtimes

subagent-harness-mcp ui

The settings and read-only activity UI opens at http://127.0.0.1:8765. It runs independently of the MCP server.

For a persistent background UI:

subagent-harness-mcp ui --background

The browser profile opened by this command can later open or reload http://127.0.0.1:8765/ directly. Use ui --open once for another browser profile. The UI does not depend on an active MCP connection.

3. Delegate

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.

Models and fallback order

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.

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.

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.

Concurrent writers

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. These leases coordinate Subagent MCP executions; they are not an operating-system sandbox for unrelated local processes.

How it fits together

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

    C -->|"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["Future runtimes<br/>via adapters"]
    end

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

Subagent MCP owns lifecycle normalization, status, redaction, leases, and circuits. Each adapter translates that contract to its native harness. See Architecture for the full contract.

Update or roll back on Windows

If an older MCP entry launches subagent-harness-mcp serve directly, close every Codex window once before this first migration; that legacy process shares the persistent tool environment and may hold its executable open.

subagent-harness-mcp ui --stop
uv tool install --reinstall subagent-harness-mcp==0.1.0a26
codex mcp remove subagent-mcp
codex mcp add subagent-mcp -- uvx --from subagent-harness-mcp==0.1.0a26 subagent-harness-mcp serve
subagent-harness-mcp ui --background

Use the same commands with the previous exact version to roll back. Subagent MCP does not edit Codex configuration or clear uv caches on its own.

Safety and billing

  • Subagent MCP never enables usage credits or changes billing settings.
  • Claude tasks can consume included subscription quota. Each task validates the bound CLI, subscription authentication, credential precedence, and control connection, then requires safe rate evidence from the same response before accepting its output.
  • Provider Refresh sends no model prompt. If the native harness cannot expose exact rate evidence before a response, status remains unknown rather than inventing a quota result or using a reset clock.
  • Fallback occurs only after explicit quota exhaustion. Unsafe or ambiguous evidence never triggers another paid request.
  • Native transcripts remain owned by the native harness. Product state stays in explicit local roots, and agent output must be treated as untrusted advice.

Read Security and the Threat model before enabling write access.

Project

Metadata

Release files for subagent-harness-mcp 0.1.0a26

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for subagent-harness-mcp 0.1.0a26
File Size Uploaded
subagent_harness_mcp-0.1.0a26.tar.gz 143.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for subagent-harness-mcp 0.1.0a26
File Interpreter ABI Platform
subagent_harness_mcp-0.1.0a26-py3-none-any.whl Python 3 none any Details

Total release size: 288.4 kB

Release files / subagent_harness_mcp-0.1.0a26.tar.gz

Download URL subagent_harness_mcp-0.1.0a26.tar.gz
Size 143.3 kB
Tags Source
SHA-256 checksum
How to use checksums
65c21362193a734d41d3f8462e93419c528e555e4217e90c0d4cef218e44ad3a
BLAKE2b-256 checksum
How to use checksums
f36604c321121ba9b665f8917c5aea810fdbff9388ee59319d2c7348ef61a12d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release files / subagent_harness_mcp-0.1.0a26-py3-none-any.whl

Download URL subagent_harness_mcp-0.1.0a26-py3-none-any.whl
Size 145.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
730f42e1457edd5f63c7cebf72b7c7698dc742c401a0db3c908a69d029f69e97
BLAKE2b-256 checksum
How to use checksums
daf5e3c907f9e36a271aa836cabab479b78643114fef70273cd01cf49a993acb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.31

2 release files

1.0.30

2 release files

1.0.29

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.23

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

This release

0.1.0a26 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page