Skip to content

test(mcp): opt-in official conformance lane against a generated route server (#133) - #338

Merged
ScriptedAlchemy merged 1 commit into
mainfrom
wave/133-mcp-conformance
Sep 2, 2026
Merged

test(mcp): opt-in official conformance lane against a generated route server (#133)#338
ScriptedAlchemy merged 1 commit into
mainfrom
wave/133-mcp-conformance

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

The MCP conformance CI lane from #133: the OFFICIAL @modelcontextprotocol/conformance suite (exact pin 0.1.16), --suite active --spec-version 2025-11-25, run against a server generated by the real build pipeline.

  • Honest transport bridge: generated MCP artifacts are managed stdio executables with no HTTP seam, so the harness (tests/support/mcp-conformance.ts) builds the existing route-harness fixture through the public build() API, starts the generated stdio artifact untouched, and forwards raw JSON-RPC frames to the official SDK's NodeStreamableHTTPServerTransport (loopback only, localhost host/origin validation, health check, bounded runner + teardown). Route registration, schemas, rendering, and responses are all the generated artifact's logic. Documented in docs/mcp-conformance.md.
  • Recorded run (2026-09-02, re-verified on this rebase): 30 scenarios — 7 passed, 23 expected failures, 0 skipped, 0 unexpected. Every expected failure is a dated baseline entry (tests/fixtures/mcp-conformance-expected-failures.yml): three genuinely unsupported optional operation families (completion/complete, logging/setLevel, resource subscribe/unsubscribe) plus the canonical test_* content fixtures the reused harness does not provide. The official runner rejects stale baseline entries, so fixed scenarios must leave the baseline.
  • Strictly opt-in: manually dispatched MCP conformance workflow (mirrors the native-host-smoke posture), test:mcp-conformance script env-gated with AGENT_BUNDLE_MCP_CONFORMANCE=1, excluded from every default Rstest pool; runner artifacts (checks.json) uploaded with 14-day retention; artifacts/ gitignored.
  • Small fixture delta: the unavailable harness tool gains a description (manifest projection test updated).

Changeset: minor, agent-bundle.

Test plan (all local, on the rebase over fb25f47)

  • pnpm build
  • pnpm typecheck
  • pnpm lint — 0 errors, 0 warnings (1015 files)
  • pnpm test:unit — 2615 passed, 0 failed
  • pnpm test:mcp-conformance — real official-runner run passed with the counts above

Tracking

Exercise generated MCP artifacts with the official active suite while keeping the costly networked lane off default CI paths.
@changeset-bot

changeset-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 907bfa9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T23:33:58.065759Z 907bfa9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ScriptedAlchemy
ScriptedAlchemy merged commit 3c3daba into main Sep 2, 2026
4 checks passed
@ScriptedAlchemy
ScriptedAlchemy deleted the wave/133-mcp-conformance branch September 3, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant