v0.1.0-preview.2
Pre-release
Pre-release
This release overhauls tool handling, makes options types fully mutable, adds logging capability, and improves serialization.
Breaking Changes
Refer to the C# SDK Versioning documentation for details on versioning and breaking change policies.
- Overhaul tool handling #89
McpToolAttributerenamed toMcpServerToolAttribute;McpToolTypeAttributerenamed toMcpServerToolTypeAttributeWithTools()renamed toWithToolsFromAssembly()ListToolsAsyncreturn type changed fromIAsyncEnumerable<Tool>toTask<IList<McpClientTool>>CallToolAsyncparameter changed fromDictionary<string, object>toIReadOnlyDictionary<string, object?>
- Make options types fully mutable #107
McpClientOptions,Implementation, and all capability types changed fromrecordtoclassinit-only setters changed toset;withexpressions on these types will no longer compile
- Fix enum serialization #61
Role,LoggingLevel, andContextInclusionenums now useJsonStringEnumConverterwith[JsonStringEnumMemberName]instead of[JsonPropertyName]- This is a serialization format change; any code depending on the previous serialized form needs to be updated
- List tools from DI once #115
ServerInstructionsproperty removed fromMcpServerMcpServerHostedServiceis no longer public
What's Changed
- Logging Capability #53 by @PederHP (co-authored by @stephentoub)
- Fix enum serialization #61 by @zaevi (co-authored by @eiriktsarpalis)
- Make client config optional to McpClientFactory.CreateAsync #65 by @stephentoub (co-authored by @eiriktsarpalis)
- Fix stdio encoding issue: Enforce explicit UTF-8 for correct Unicode handling #73 by @willibrandon (co-authored by @stephentoub)
- Overhaul tool handling #89 by @stephentoub
- Avoid race starting SseResponseStreamTransport #91 by @halter73
- Adding a base class for request params that exposes the progressToken #99 by @aaronpowell (co-authored by @stephentoub)
- Add
[McpServerTool]support for instance methods #100 by @stephentoub - complete fix for SampleLlmTool discovery #102 by @NeverMorewd (co-authored by @stephentoub)
- Make options types fully mutable #107 by @halter73
- Configurable messages endpoint for SSE transport #109 by @edis-uipath
- Use different logger categories for client and server in McpJsonRpcEndpoint #110 by @halter73
- List tools from DI once #115 by @halter73
- Adding support for returning collections from tools #116 by @aaronpowell
Documentation Updates
- Add nuget badge to README #58 by @stephentoub
- docs: update McpToolAttribute name comment #63 by @WeihanLi
- docs: add McpServerOptionsSetup code comment #77 by @JaneConan
- Update documentation configuration #86 by @localden (co-authored by @eiriktsarpalis)
- Add acknowledgements to README #94 by @mikekistler (co-authored by @stephentoub)
- Add links to API docs from README.md #96 by @eiriktsarpalis
- Add package installation to README #101 by @timheuer
- Samples for quickstart docs #104 by @aaronpowell
Test Improvements
- Run integration test SSE server in process #56 by @halter73
- Remove reflection from Connect test #57 by @jaredpar (co-authored by @stephentoub)
- Fix private reflection #60 by @jaredpar
- Add XunitLoggerProvider #81 by @halter73
Repository Infrastructure Updates
- Adding code coverage to tests in workflow #75 by @aaronpowell (co-authored by @stephentoub @eiriktsarpalis)
- Adding merge files to gitignore #78 by @aaronpowell
- Add gitattributes #98 by @halter73
- Set up package publishing for daily, manual, and release builds #118 by @jeffhandley (co-authored by @Copilot)
Acknowledgements
- @PederHP made their first contribution in #53
- @jaredpar made their first contribution in #57
- @zaevi made their first contribution in #61
- @WeihanLi made their first contribution in #63
- @willibrandon made their first contribution in #73
- @aaronpowell made their first contribution in #75
- @JaneConan made their first contribution in #77
- @localden made their first contribution in #86
- @timheuer made their first contribution in #101
- @NeverMorewd made their first contribution in #102
- @edis-uipath made their first contribution in #109
- @colombod @Meir017 reviewed pull requests
Full Changelog: v0.1.0-preview.1.25171.12...v0.1.0-preview.2