Skip to content

v0.4.1-preview.1

Pre-release
Pre-release

Choose a tag to compare

@jeffhandley jeffhandley released this 25 Nov 23:44
7f25ae9

This 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.

  1. Audit and standardize MCP protocol types for consistency #892
    • Property mutability changes
    • Required properties changes
    • Collection types used for properties
  2. Implement SEP-1330: Standards-compliant enum schemas for elicitation #969
    • EnumSchema is marked [Obsolete] using the default CS0618 diagnostic, and it becomes an alias for LegacyTitledEnumSchema, which is also marked as [Obsolete] using the default CS0618 diagnostic

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.RequestId non-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

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

Full Changelog: v0.4.0-preview.3...v0.4.1-preview.1