docs: define MCP compatibility contract - #389
Conversation
📝 WalkthroughWalkthroughThe pull request defines an MCP compatibility source of truth, links it from project documentation, adds contract tests for compatibility claims, tests packaged protocol negotiation, and adds MCP Inspector interoperability checks over STDIO and Streamable HTTP in CI. ChangesMCP compatibility
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant CI
participant InteropScript
participant PackagedConsumer
participant MCPInspector
participant MCPServer
CI->>InteropScript: run test:inspector
InteropScript->>PackagedConsumer: install packaged project
InteropScript->>MCPServer: start STDIO or Streamable HTTP server
InteropScript->>MCPInspector: request tools/list
MCPInspector->>MCPServer: inspect packaged server
MCPServer-->>MCPInspector: return tool list
InteropScript-->>CI: validate audit output and cleanup
Possibly related issues
Possibly related PRs
Suggested labels: Poem
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (2 errors, 1 warning)
✅ Passed checks (2 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/check-inspector-interop.mjs`:
- Around line 53-73: The startup timeout in the endpoint promise must fully
terminate the child before rejecting. Update the timeout handling around child
and startHttpServer so it sends SIGTERM, waits for the child exit, and uses a
bounded SIGKILL fallback if needed; only reject after termination completes,
while preserving the existing timeout error details and cleanup behavior.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 363e0293-c908-4345-b912-0e904c8eb048
📒 Files selected for processing (11)
.github/workflows/ci.ymlCHANGELOG.mdREADME.mddocs/config.mddocs/library-api.mddocs/mcp-compatibility.mddocs/presets-and-clients.mdpackage.jsonscripts/check-inspector-interop.mjstests/mcp-compatibility-docs-contract.test.tstests/package-contract.test.ts
Superseded by 586c77c. CodeRabbit re-reviewed that exact head, confirmed the only finding was addressed, and posted no new findings. Exact-head CI run 31532095834 passed all jobs.
Summary
Named Claude Desktop, Claude Code, Cursor, and VS Code claims remain configuration-shape evidence only until an exact packaged-host transcript exists.
Validation
npm test— 158 files passed; 1,947 tests passed; 34 skippednpm run test:coverage— 96.04% statements; 92.17% branchesnpm run test:core -- --no-file-parallelism— 29 files; 478 passed; 26 skippednpm run test:package— 31 passednpm run test:inspector— packaged Inspector 2.1.0 STDIO and HTTP interoperability passednpm run lintnpm run typechecknpm run buildnpm run check:test-fixturenpm run check:pack— 57 filesnpm audit --omit=dev --audit-level=high— 0 vulnerabilitiesgit diff --checkFixes #368
Summary by CodeRabbit
Documentation
Tests
Chores