xcode-mcli can verify its Xcode MCP compatibility by diffing the live discovered MCP surface against a pinned baseline snapshot.
The compatibility contract is the normalized result of:
initializetools/listprompts/listresources/list
The pinned Apple Xcode 26.3 baseline is:
skill/references/apple-xcode-26.3.surface.json
That snapshot currently records:
- protocol version
2025-06-18 20tools0prompts0resources
Capture the current live surface:
xcode-mcli surface snapshotWrite a canonical snapshot file:
xcode-mcli surface snapshot --output-file skill/references/apple-xcode-26.3.surface.jsonVerify the current Xcode MCP surface against the pinned 26.3 baseline:
xcode-mcli surface verify --baseline-file skill/references/apple-xcode-26.3.surface.jsonConvenience npm scripts:
npm run compat:xcode-mcp:snapshot
npm run compat:xcode-mcp:pin-26.3
npm run compat:xcode-mcp:verifysurface snapshot normalizes the discovered surface before printing or writing it:
- sorts tools, prompts, and resources by
name - sorts object keys recursively
- preserves extra server metadata such as
titleandoutputSchema
surface verify compares:
- protocol version
- tool additions, removals, and changed definitions
- prompt additions, removals, and changed definitions
- resource additions, removals, and changed definitions
An exact match exits successfully.
A mismatch exits with a runtime error. In --json mode, the error envelope includes structured error.details with the categorized diff.
When a new Xcode release arrives:
- Run
npm run compat:xcode-mcp:verify. - If it passes, the pinned baseline still matches the live Xcode MCP contract.
- If it fails, inspect the categorized diff.
- Confirm whether the change is additive, behavioral, or breaking for the CLI.
- Update
xcode-mcliif the wrapper needs to support the new contract. - Re-pin the baseline with
npm run compat:xcode-mcp:pin-26.3or a new versioned snapshot path.
For machine-readable inspection:
xcode-mcli surface verify \
--baseline-file skill/references/apple-xcode-26.3.surface.json \
--json