v0.4.1-preview.1
Pre-releaseThis release brings protocol type standardization, several MCP specification implementations, and new features including an incremental source generator for automatic Description attributes from XML comments and client session resumption support. This release includes breaking changes to protocol types and elicitation enum schemas; refer to the Breaking Changes section below for details.
We are working toward the first stable version of the C# SDK as version 1.0.0, which will have compliance with Version 2025-11-25 of the MCP specification. We will publish at least one more pre-release version of the SDK before declaring the stable version, and breaking changes to remove obsolete interfaces and extension methods (#774) are expected as part of stabilizing the API.
Breaking Changes
Refer to the C# SDK Versioning documentation for details on versioning and breaking change policies.
- Audit and standardize MCP protocol types for consistency #892
- Property mutability changes
- Required properties changes
- Collection types used for properties
- Implement SEP-1330: Standards-compliant enum schemas for elicitation #969
EnumSchemais marked[Obsolete]using the defaultCS0618diagnostic, and it becomes an alias forLegacyTitledEnumSchema, which is also marked as[Obsolete]using the defaultCS0618diagnostic
What's Changed
- Add default value support for all primitive types in elicitation schemas (SEP-1034) #924 by @eiriktsarpalis (co-authored by @Copilot)
- Audit protocol types #892 by @MackinnonBuck
- Implement SEP-986: Specify Format for Tool Names #945 by @stephentoub
- Add public constructors to McpClient types for reusing cached definitions #938 by @stephentoub (co-authored by @Copilot)
- Tweak how McpClientTool.InvokeAsync exposes some content #941 by @stephentoub
- Ignore unexpected properties when deserializing a ContentBlock #956 by @jeffhandley
- Add Description property to Implementation type per MCP spec #966 by @stephentoub (co-authored by @Copilot)
- Remove TODOs related to AllowOutOfOrderMetadataProperty workarounds #977 by @eiriktsarpalis
- Make
JsonRpcMessageWithId.RequestIdnon-required #984 by @MackinnonBuck - Implement SEP-1330: Standards-compliant enum schemas for elicitation #969 by @stephentoub (co-authored by @Copilot)
- Add production-ready incremental source generator for automatic Description attributes from XML comments #899 by @stephentoub (co-authored by @Copilot)
- Add tools support to sampling #976 by @stephentoub
- Use JsonElement.Parse for string-to-JsonElement deserialization #1002 by @stephentoub (co-authored by @Copilot)
- Fix race condition in StdioClientTransport on .NET Framework #996 by @stephentoub (co-authored by @Copilot)
- Tokens can be cached beyond the lifetime of the (http) transport #834 by @halllo
- Add ability for client to resume session #1029 by @halter73
Documentation Updates
- Update ModelId in QuickStartClient to non-deprecated version #926 by @PederHP
- Add file-based MCP server sample #931 by @PederHP
- Align error handling documentation with SEP-1303 #967 by @stephentoub (co-authored by @Copilot)
- Fix a couple issues in the client sample readme #994 by @ericstj
- Fix documentation typos and incorrect type references #993 by @MackinnonBuck (co-authored by @Copilot)
- Introduce versioning, breaking changes, and support document #986 by @jeffhandley (co-authored by @Copilot @eiriktsarpalis @mikekistler)
- Address additional feedback on Versioning doc #999 by @jeffhandley
- Tweak the file-based MCP server sample #1019 by @eiriktsarpalis
- Writing style edits #1024 by @gewarren
Test Improvements
- Fix tests in Dev Container #965 by @halter73
- Skip flaky test on Mono where stderr callbacks are unsupported #980 by @stephentoub (co-authored by @Copilot)
Repository Infrastructure Updates
- Update Microsoft.Extensions.AI packages to version 9.10.1 #916 by @stephentoub (co-authored by @Copilot)
- Update to .NET SDK to 10.rc2 #883 by @eiriktsarpalis
- Bump danielpalme/ReportGenerator-GitHub-Action from 5.4.17 to 5.4.18 #920
- Bump actions/upload-artifact from 4.6.2 to 5.0.0 #918
- Bump actions/download-artifact from 5.0.0 to 6.0.0 #919
- Fixed dotnet version from 10.0.100-rc.1.25451.107 to 10.0.100-rc.2 #927 by @eduardomb-aw (co-authored by @eiriktsarpalis)
- Update to .NET 10.x packages #957 by @stephentoub
- Remove prerelease requirement from global.json #961 by @eiriktsarpalis
- Update to MTP #958 by @Youssef1313
- Bump actions/checkout from 5.0.0 to 5.0.1 #973
- Bump danielpalme/ReportGenerator-GitHub-Action from 5.4.18 to 5.5.0 #972
- Bump the opentelemetry-testing group with 6 updates #974
- Revert "Update to MTP" #989 by @eiriktsarpalis
- Bump the serilog-testing group with 2 updates #992
- Bump the testing-frameworks group with 3 updates #991
- Revert "Revert "Update to MTP"" #990 by @Youssef1313
- Add Microsoft.CodeAnalysis.* to dependabot ignore list #1009 by @eiriktsarpalis (co-authored by @Copilot)
- Revert "Update to MTP (#958)" #1011 by @halter73
- Bump the testing-frameworks group with 3 updates #1013
- Bump the serilog-testing group with 1 update #1014
- Bump version to 0.4.1-preview.1 #1031 by @jeffhandley
Acknowledgements
- @eduardomb-aw made their first contribution in #927
- @Youssef1313 made their first contribution in #958
- @ericstj made their first contribution in #994
- @halllo made their first contribution in #834
- @gewarren made their first contribution in #1024
- @anktsrkr submitted issue #749 (resolved by #834)
- @AlexandreDonne submitted issue #597 (resolved by #834)
- @pankajvaher submitted issue #946 (resolved by #1029)
- @cristipufu submitted issue #621 (resolved by #1029)
- @mikekistler @narasamdya @jozkee reviewed pull requests
Full Changelog: v0.4.0-preview.3...v0.4.1-preview.1