Skip to content

Support server experimental and extension capabilities - #289

Open
EhsanAzish80 wants to merge 4 commits into
modelcontextprotocol:mainfrom
EhsanAzish80:feat/server-capability-extensions
Open

EhsanAzish80 wants to merge 4 commits into
modelcontextprotocol:mainfrom
EhsanAzish80:feat/server-capability-extensions

Conversation

@EhsanAzish80

@EhsanAzish80 EhsanAzish80 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Swift servers can now advertise object-valued experimental capabilities from the 2025-11-25 schema and extension settings from 2026-07-28. Both fields are optional and existing initializer calls keep working. This is part of #234.

The branch is updated to current main and includes the Ubuntu CI setup and client-test timing fixes shared with #307.

Tests: the initialize JSON and decode round trip passed locally before this update. All six CI jobs passed on 09ae2a5, including Ubuntu tests. AI helped write the test; I ran it.

myyra added a commit to myyra/mcp-swift-sdk that referenced this pull request Sep 30, 2026
Clients may advertise experimental capabilities as JSON objects rather
than strings. Decode those values using Value so initialization accepts
clients such as Codex without rejecting their capability payloads.

Expose optional experimental and extensions dictionaries on server
capabilities as well, following upstream PR modelcontextprotocol#289. Existing server
initializer calls retain their defaults, and nested capability values
survive Codable encoding and decoding.
@varun06

varun06 commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Hi @EhsanAzish80, thanks for this PR! I've reviewed it and it looks good to merge.

Could you please rebase it onto the latest main? CI was broken on macOS runners for every PR (a toolchain/SDK mismatch, fixed in #306), so rebasing will pick up the fix and give us a green run. I'll review and merge once it's updated.

This pairs with #276 (the client side of the same change); I plan to merge them together so both use Value for experimental/extensions.

If you're no longer able to work on this, no problem: just let us know. If we don't hear back in about two weeks, we may carry the change forward in a new PR, with credit to you.

@EhsanAzish80
EhsanAzish80 force-pushed the feat/server-capability-extensions branch from 77f1275 to 5a7688c Compare October 22, 2026 15:26
@EhsanAzish80
EhsanAzish80 requested a review from a team as a code owner November 2, 2026 07:14
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