|
Download scripts/mcp_conformance/README.md from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 4.84 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/scripts/mcp_conformance/README.md
- Command line
-
hf download hf://SaylorTwift/codex/scripts/mcp_conformance/README.md
-
curl -L -o README.md https://huggingface.co/SaylorTwift/codex/resolve/main/scripts/mcp_conformance/README.md
4.84 kB
| # MCP client conformance | |
| This directory tests the actual Codex executable against the official Model | |
| Context Protocol client conformance suite. It exercises the shipping legacy, | |
| intermediate `2025-11-25`, and modern `2026-07-28` protocols, localhost HTTP, | |
| stdio, OAuth, and additional transport and security regression fixtures. | |
| The official upstream suite is pinned to | |
| `modelcontextprotocol/conformance@49103de6ed70804e940637bf3e9e29e4a3f54e64`. | |
| Use Node.js 22 and Python 3.10 or later. | |
| ## Run the conformance gate | |
| First install the frozen workspace dependencies and build Codex: | |
| ```bash | |
| pnpm install --frozen-lockfile | |
| cargo build --locked --manifest-path codex-rs/Cargo.toml -p codex-cli --bin codex | |
| ``` | |
| From a published Codex checkout, run: | |
| ```bash | |
| python3 scripts/mcp_conformance/run_codex_compliance.py \ | |
| codex-rs/target/debug/codex \ | |
| --conformance-cli node_modules/@modelcontextprotocol/conformance/dist/index.js \ | |
| --baseline-report scripts/mcp_conformance/regression-baseline-v1.json \ | |
| --report /tmp/codex-mcp-conformance.json | |
| ``` | |
| The positional executable can also point to an already built Codex binary. | |
| `--conformance-cli` selects the exact, lockfile-installed upstream JavaScript | |
| runner instead of downloading a moving version during a test. | |
| ## What the baseline means | |
| `regression-baseline-v1.json` is a compact, reviewed snapshot of the upstream | |
| revision, required protocol versions, HTTP and stdio transports, enabled modern | |
| feature, OAuth coverage, and individual passing and failing check identities. | |
| The gate exits successfully only when: | |
| - The upstream suite and modern feature match the committed baseline. | |
| - The shipping legacy, intermediate, and modern protocols are actually tested. | |
| - The required HTTP, stdio, and authentication scenarios are actually run. | |
| - Every previously passing check still passes. | |
| - No additional check fails. | |
| Existing known failures remain visible in the complete JSON report. In | |
| particular, `success` describes complete upstream conformance and | |
| `regressionGate.success` describes the no-new-regressions merge gate; the gate | |
| does not relabel an existing failure as a pass. | |
| Create a compact baseline from a reviewed complete report without contacting | |
| the upstream suite again: | |
| ```bash | |
| python3 scripts/mcp_conformance/run_codex_compliance.py \ | |
| /absolute/path/to/codex \ | |
| --baseline-report /absolute/path/to/full-conformance-report.json \ | |
| --extract-baseline /tmp/mcp-conformance-regression-baseline-v1.json | |
| ``` | |
| Alternatively, add `--write-baseline /tmp/mcp-conformance-regression-baseline-v1.json` | |
| to a complete conformance run. Review every baseline change; do not regenerate | |
| it to conceal a regression. | |
| ## Run the production reviewer regression gate | |
| The separate reviewer gate tests the real Codex app-server across all three | |
| shipping, legacy, and modern protocol modes. It covers stdio and localhost | |
| HTTP, exact-integer tool and elicitation schemas, bounded multi-round requests, | |
| malformed discovery response IDs, repeated pagination cursors, SSE framing and | |
| keepalives, and catalog boundaries. In a published Codex checkout, run: | |
| ```bash | |
| python3 scripts/mcp_conformance/review_regressions.py \ | |
| /absolute/path/to/codex \ | |
| --mode all \ | |
| --baseline-report scripts/mcp_conformance/review-regression-baseline-v1.json \ | |
| --report /tmp/codex-mcp-review-regressions.json | |
| ``` | |
| A complete, main-derived baseline records all 186 real check identities and all | |
| 21 required cases. Existing failures remain explicitly visible in the complete | |
| report; `regressionGate.success: true` means there are no newly failing or | |
| missing checks. Improvements are recorded under `fixedChecks`. The gate never | |
| classifies an existing failure as a passing check. | |
| Extract a compact deterministic reviewer baseline from a reviewed complete | |
| production report without rerunning the client: | |
| ```bash | |
| python3 scripts/mcp_conformance/review_regressions.py \ | |
| /absolute/path/to/codex \ | |
| --baseline-report /absolute/path/to/full-review-regressions.json \ | |
| --extract-baseline /tmp/review-regression-baseline-v1.json | |
| ``` | |
| Review every baseline update. Do not regenerate a baseline to hide a regression. | |
| ## Run the fixture self-tests | |
| ```bash | |
| env PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \ | |
| python3 -m pytest -q scripts/mcp_conformance | |
| ``` | |
| ## Run the required SDK integration | |
| The existing required SDK workflow runs the complete Python fixture self-tests. | |
| Its TypeScript job builds the actual Codex executable, sets `CODEX_EXEC_PATH`, | |
| installs the pinned upstream conformance runner, and runs both the official | |
| authenticated suite and the separate production reviewer regression matrix. | |
| Neither gate can be skipped. To reproduce the focused integration locally: | |
| ```bash | |
| CODEX_EXEC_PATH=/absolute/path/to/codex \ | |
| pnpm --filter @openai/codex-sdk test -- \ | |
| --runInBand tests/mcpConformance.test.ts | |
| ``` | |