Skip to content

feat: add swift-sdk to the built-in SDK matrix - #432

Open
shoemoney wants to merge 1 commit into
modelcontextprotocol:mainfrom
shoemoney:feat/swift-sdk-conformance
Open

shoemoney wants to merge 1 commit into
modelcontextprotocol:mainfrom
shoemoney:feat/swift-sdk-conformance

Conversation

@shoemoney

@shoemoney shoemoney commented Aug 1, 2026

Copy link
Copy Markdown

Register swift-sdk in the built-in SDK matrix using its existing mcp-everything-client and mcp-everything-server SwiftPM products. Build both fixtures, use .build/debug paths and start the server with --port 3000 to match the runner URL. Change the unknown-SDK test fixture to kotlin-sdk.

The September 17 rebase onto 7169291ec0b6 preserves both the upstream Ruby registration test and this PR's Swift test. The Swift configuration is unchanged from the original patch.

Current validation: npm run check, npm run build and all 623 tests pass.

Live Swift fixture conformance was not rerun for this mechanical rebase. The original submission reported 216 core client passes and 67 server passes with two server failures; it also reported 22 failures in the wider client suite that were absent from the SDK baseline. Those are historical results, not current pass counts. No expected failures were added here to hide them. The related fixture fix remains modelcontextprotocol/swift-sdk#269.

AI assistance: this maintenance update, conflict resolution and verification were performed with Codex. The commands above were executed locally; no human review of this update is claimed.

@kahunamoore

Copy link
Copy Markdown

@shoemoney I started working on this before I saw your PR. I'm doing this as part of a larger PR for the swift-sdk to bring it up to the latest MCP standard. I'm happy to compare notes, help out with your version, combine the best of both, whatever makes sense to you.

The one thing I know is different, and unrelated to swift-sdk, is that I'm adding a new conformance script that tests every known sdk against each other in all combinations of --mode and --requirements to see what works, what kinda works and what is broken. I'm done with the former (adding swift-sdk to the test matrix) but still working on the script.

Registers modelcontextprotocol/swift-sdk, whose conformance fixtures already
exist upstream (Sources/MCPConformance/{Client,Server}, exposed as the
mcp-everything-client and mcp-everything-server products) but had no entry here.

SwiftPM writes binaries to a per-triple directory and maintains a .build/debug
symlink to it, so the fixture paths stay portable across host architectures.
The server defaults to port 3001; --port pins it to the 3000 convention the
other entries use.

Verified locally on macOS 26 / arm64 with Swift 6.2.4:

  client --suite core   216 passed, 0 failed  (baseline check passed)
  server                 67 passed, 2 failed

Also swaps the 'unknown SDK' fixture in the tests from swift-sdk to kotlin-sdk,
since swift-sdk is no longer unknown.
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.

2 participants