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

Breaking Changes

The v0.4.1-preview.1 release includes breaking changes included in #892 and #969.

  1. #892 audits and standardizes MCP protocol types for consistency, including API changes for:
  2. Property mutability
  3. Required properties
  4. Collection types used for properties
  5. #969 implements SEP-1330: Elicitation Enum Schema Improvements and Standards Compliance, which involved a breaking change to the specification:
  6. 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

Path to 1.0.0

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 stablizing the API.

Refer to the new C# SDK Versioning documentation for information regarding our versioning, breaking change, and support approaches once we publish the 1.0.0 release.

What's Changed

  • Add default value support for all primitive types in elicitation schemas (SEP-1034) by @Copilot in #924
  • Audit protocol types by @MackinnonBuck in #892
  • Implement SEP-986: Specify Format for Tool Names by @stephentoub in #945
  • Add public constructors to McpClient types for reusing cached definitions by @Copilot in #938
  • Tweak how McpClientTool.InvokeAsync exposes some content by @stephentoub in #941
  • Ignore unexpected properties when deserializing a ContentBlock by @jeffhandley in #956
  • Remove prerelease requirement from global.json by @eiriktsarpalis in #961
  • Add Description property to Implementation type per MCP spec by @Copilot in #966
  • Remove TODOs related to AllowOutOfOrderMetadataProperty workarounds. by @eiriktsarpalis in #977
  • Make JsonRpcMessageWithId.RequestId non-required by @MackinnonBuck in #984
  • Implement SEP-1330: Standards-compliant enum schemas for elicitation by @Copilot in #969
  • Add production-ready incremental source generator for automatic Description attributes from XML comments by @Copilot in #899
  • Add tools support to sampling by @stephentoub in #976
  • Use JsonElement.Parse for string-to-JsonElement deserialization by @Copilot in #1002
  • Fix race condition in StdioClientTransport on .NET Framework by @Copilot in #996
  • Tokens can be cached beyond the lifetime of the (http) transport. by @halllo in #834
  • Add ability for client to resume session by @halter73 in #1029

Documentation Updates

  • Update ModelId in QuickStartClient to non-deprecated version by @PederHP in #926
  • Add file-based MCP server sample by @PederHP in #931
  • Align error handling documentation with SEP-1303 by @Copilot in #967
  • Fix a couple issues in the client sample readme by @ericstj in #994
  • Fix documentation typos and incorrect type references by @Copilot in #993
  • Introduce versioning, breaking changes, and support document by @jeffhandley in #986
  • Address additional feedback on Versioning doc by @jeffhandley in #999
  • Tweak the file-based MCP server sample by @eiriktsarpalis in #1019
  • Writing style edits by @gewarren in #1024

Repository Infrastructure Updates

New Contributors

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