ccc-mcp
Let the right coding agent do the right job—and keep the handoff verifiable.
ccc-mcp is a local MCP workflow for software projects. ChatGPT manages the request and shared context; Codex can analyse and review; Claude Code can implement. Or, when that is the better fit, ChatGPT can run every workflow role itself. Each handoff retains the evidence needed to continue, review, or recover the work.
It is designed for people who use more than one AI coding tool and do not want a quota limit, lost chat history, or an unverified "tests passed" claim to end a project.
What it does
- Routes work through configurable
PM → SA → SD/RD → REVIEW → PMroles. - Preserves versioned shared context, raw agent reports, diffs, and host-observed test evidence.
- Uses Codex and Claude Code through their native CLIs, or assigns every role to ChatGPT for a ChatGPT-only workflow.
- Falls back only for recognised quota exhaustion, never for a normal install, login, or execution error.
- Shares operator-installed
SKILL.mdguidance across all roles.
Choose your mode
Best-model workflow uses ChatGPT as PM, Codex for analysis/review, and Claude Code for implementation. It is the default when you have all three tools.
ChatGPT-only workflow sets all five role slots (SA, SD, RD, SD/RD, and REVIEW) to ChatGPT via config profile chatgpt-only — including the standalone SD/RD slots, so neither config show nor a manual dispatch is left showing a leftover Codex/Claude provider. The automatic workflow itself still only ever dispatches SA → SD/RD → REVIEW. It needs no Codex or Claude Code CLI, so it does not consume their CLI allowances. Available models, quotas, and tool access always follow your connected ChatGPT account and plan — never assume unlimited usage.
Quick start
Prerequisites: Git, Python 3.11+, and an OpenAI Platform Tunnel. The best-model workflow also needs signed-in Codex and/or Claude Code accounts.
git clone https://github.com/bruce601080102/ccc-mcp.git
cd ccc-mcp
source scripts/setup-real-agents.sh
# Run this only when using Codex and/or Claude Code:
ccc-mcp setup all
ccc-mcp project create hello-demo
ccc-mcp project authorize hello-demo
For a ChatGPT-only workflow, omit ccc-mcp setup all, then apply the chatgpt-only profile after creating the project:
ccc-mcp --project hello-demo config profile chatgpt-only
Connect the local server to ChatGPT with the Tunnel instructions in Chinese or English. Then ask ChatGPT, with the ccc-mcp connection selected:
Create
hello.pyinhello-demo; it should printHello, World!, with a test that verifies the output.
Verify the work on the machine that owns the project:
ccc-mcp --project hello-demo task status
ccc-mcp --project hello-demo task usage
ccc-mcp --project hello-demo context show
For a native role, task usage is the source of truth for whether its CLI was actually invoked. A ChatGPT role is intentionally interactive and has no native CLI invocation: task usage marks it "interactive": true with invocation.source: "chatgpt_web", so cli_invoked: false there reads as "by design," never as an ambiguous CLI failure. In either mode, a reported success is not sufficient: the configured host test command is recorded before review can complete the task.
ccc-mcp --project hello-demo config show (or config providers) also reports a read-only profile field — chatgpt-only, best-model, or custom — derived live from every role's current provider. Switch back at any time with ccc-mcp --project hello-demo config profile best-model, which resolves dynamically from whichever native CLIs are actually installed (both → the Codex/Claude split; only one → every role on it; neither → rejected).
How the workflow works
ChatGPT (PM) → Codex (SA) → Claude Code (SD/RD) → Codex (REVIEW)
↑ │
└──────── shared context + evidence + next task ─────┘
The defaults are deliberately opinionated, not mandatory. Assign any supported provider to a role:
ccc-mcp --project hello-demo config role REVIEW codex --effort high --quota-fallback chatgpt
ccc-mcp --project hello-demo config role SD/RD claude
ccc-mcp --project hello-demo config show
For the complete role and workflow model, see the workflow guide or the Traditional Chinese guide.
Documentation
Read the numbered documents in order for a full setup. The two language trees use the same filenames and sequence.
| Step | Topic |
|---|---|
| 1 | Install and sign in |
| 2 | Connect ChatGPT |
| 3 | Create and authorize a first project |
| 4 | Run and resume the workflow |
| 5 | Configure providers, roles, context, and tests |
| 6 | Install and use skills |
| 7 | Understand reliability and security boundaries |
| 8–11 | CLI reference, public protocol, technical reference, and architecture |
Important boundary
project authorize permits ccc-mcp to modify that project and run its configured test command. Dependency installation can execute package scripts, so review dependency changes as part of the diff. Codex runs in its configured sandbox. Claude Code has a restricted tool policy, but does not yet have an equivalent OS-enforced sandbox; use a least-privileged OS account for it.
Done with a project? ccc-mcp project revoke <id> (if still authorized) then ccc-mcp project delete <id> permanently removes it from project list and blocks the ID from ever being used or re-registered again. It never deletes files on disk or any historical Context/task/evidence — delete the project directory yourself once you've confirmed its path. See reliability and security for the full guarantee.
Development
python3.11 -m pytest -q
The repository requires Python 3.11 or newer. Real-agent tests are opt-in because they need locally installed, authenticated CLIs; see Chinese or English.
Metadata
Release files for ccc-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ccc_mcp-0.1.0.tar.gz | 333.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ccc_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 505.9 kB
Release files / ccc_mcp-0.1.0.tar.gz
| Download URL | ccc_mcp-0.1.0.tar.gz |
|---|---|
| Size | 333.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f2b17a93886047b87d8b1ca015371f41f274a545db902ed36fa2d762b03d4c3
|
|
BLAKE2b-256 checksum How to use checksums |
cc9b8c1209410014bfc0fcf270efcfcc8d43c4b439be67d0e42c5a6521b9b59d
|
| 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 Oct 23, 2026.
Transparency logRelease files / ccc_mcp-0.1.0-py3-none-any.whl
| Download URL | ccc_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 172.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa7f7114dda7b730a86b65c43d8c639f43de628e54d705ea51ee7dac19ecf492
|
|
BLAKE2b-256 checksum How to use checksums |
fb27c475177f03f7eb8b32e206c259700a0b6f7fa3541cfcbb35ad3aee1cc19a
|
| 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 Oct 23, 2026.
Transparency logSecurity for ccc-mcp 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ccc_mcp-0.1.0.tar.gz
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 Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.