v0.9.0-preview.2
Pre-releaseThis release focuses on API surface consistency and correctness ahead of 1.0.0. Public collection properties are now typed as IList<T> instead of concrete List<T> or T[], and Root.Meta is aligned with the rest of the protocol DTOs by using JsonObject?. Other improvements include new experimental Extensions support for capabilities, missing ResourceLinkBlock properties, improved mimeType handling, and several documentation and test reliability fixes.
We plan to release the stable 1.0.0 release early in the week of February 23, 2026.
Breaking Changes
Refer to the C# SDK Versioning documentation for details on versioning and breaking change policies.
-
Replace concrete collection types with interfaces in public API surface #1326
List<T>andT[]properties onProtectedResourceMetadata,ToolResultContentBlock,ListTasksResult, andDynamicClientRegistrationResponsechanged toIList<T>. Replace.Lengthwith.Countand cast toList<T>ifList<T>-specific members are needed.
-
Fix
Root.Metato useJsonObjectinstead ofJsonElement#1341Root.Metachanged fromJsonElement?toJsonObject?. Replacemeta.Value.GetProperty("key").GetString()with(string?)meta["key"].
-
Make
UrlElicitationRequiredErrorData.Elicitationsconsistent with other Protocol DTOs #1335Elicitationschanged fromIReadOnlyList<ElicitRequestParams>withinittoIList<ElicitRequestParams>withset. Code usingList<T>is unaffected since it implements both interfaces.
What's Changed
- Remove dead code:
options ??= new()in McpServerImpl constructor #1322 by @stephentoub (co-authored by @Copilot) - Remove unnecessary
_connectCtsfield fromMcpClientImpl#1323 by @stephentoub (co-authored by @Copilot) - Add missing Title and Icons properties to ResourceLinkBlock #1320 by @stephentoub (co-authored by @Copilot)
- Omit null mimeType from ResourceContents JSON serialization #1325 by @stephentoub (co-authored by @Copilot)
- Validate mimeType in ImageContentBlock.FromBytes and AudioContentBlock.FromBytes #1321 by @stephentoub (co-authored by @Copilot)
- Replace concrete collection types with interfaces in public API surface #1326 by @stephentoub (co-authored by @Copilot)
- Make UrlElicitationRequiredErrorData.Elicitations consistent with other Protocol DTOs #1335 by @stephentoub (co-authored by @Copilot)
- Fix Metadata delegation in DelegatingMcpServerTool/Prompt/Resource #1338 by @stephentoub (co-authored by @Copilot @jeffhandley)
- Add Extensions support to ClientCapabilities and ServerCapabilities #1317 by @stephentoub (co-authored by @Copilot)
- Fix _meta properties to use JsonObject #1341 by @stephentoub (co-authored by @Copilot)
Documentation Updates
- Fix incorrect XML doc comments in McpClient.Methods.cs #1333 by @stephentoub (co-authored by @Copilot)
- Add missing exception documentation for public APIs #1339 by @stephentoub (co-authored by @Copilot)
Test Improvements
- Fix flaky DiagnosticTests on net10.0 by waiting for specific activities #1324 by @stephentoub (co-authored by @Copilot)
- Fix flaky sse-retry conformance test due to CI timing overhead #1336 by @ericstj (co-authored by @Copilot)
Repository Infrastructure Updates
- Bump version to 1.0.0-rc.1 #1327 by @jeffhandley (co-authored by @Copilot)
- Add release-notes, breaking-changes, and bump-version Copilot skills #1328 by @jeffhandley (co-authored by @Copilot)
- Bump hono from 4.11.7 to 4.12.0 in the npm_and_yarn group across 1 directory #1316
- Bump version down to 0.9.0-preview.2 since we are still changing APIs #1344 by @jeffhandley (co-authored by @Copilot)
Acknowledgements
- @halter73 @eiriktsarpalis @mikekistler reviewed pull requests
Full Changelog: v0.9.0-preview.1...v0.9.0-preview.2