Releases: modelcontextprotocol/swift-sdk
Releases · modelcontextprotocol/swift-sdk
0.10.2
What's Changed
- Adopt strict concurrency for project by @Overcot in #157
- Make
Tool.descriptionoptional by @mattt in #160 - fix: allow description field to be absent from
Toolby @abcsnowwolf in #159 - Fix for building for Mac Catalyst by @samkudr in #163
New Contributors
- @Overcot made their first contribution in #157
- @abcsnowwolf made their first contribution in #159
- @samkudr made their first contribution in #163
Full Changelog: 0.10.1...0.10.2
0.10.1
0.10.0
What's Changed
- Move
Sampling.swiftfromServertoClientdirectory by @mattt in #121 - Add
Client.listResourceTemplatesmethod by @carlpeaslee in #125 - Adjust logging level for frequent / low-level events by @mattt in #130
- Update
inputSchemaexample usage by @mattt in #136 - Add configuration for maximum receive buffer size to
NetworkTransportby @mattt in #146 - Remove Loopwork copyright from license by @carlpeaslee in #148
- Make
Tool.inputSchemanon-optional by @mattt in #123 - remove info level logging message and use debug instead by @sebsto in #132
- Implement in-memory / passthrough transport by @mattt in #122
- Add plumbing to set instructions on Server by @glaciotech in #145
- Replace compile-time directives with target platform conditions by @pepicrft in #143
- Revert "Revert "Remove deprecated
MCP.Errortypealias"" by @mattt in #105 - docs: fix code example in README.md by @phimage in #141
- Add
requestModifierproperty toHTTPClientTransportby @mattt in #152
New Contributors
- @carlpeaslee made their first contribution in #125
- @sebsto made their first contribution in #132
- @glaciotech made their first contribution in #145
- @pepicrft made their first contribution in #143
- @phimage made their first contribution in #141
Full Changelog: 0.9.0...0.10.0
0.9.0
What's Changed
- Improve NetworkTransport and add test coverage by @mattt in #108
- Prevent double continuation resumption in client by @mattt in #113
- Add test coverage for base64 data helper methods by @mattt in #114
- Add support for sampling by @mattt in #119
- Improve ergonomics of prompt and sampling message initialization by @mattt in #120
- Update
Client.connect(transport:)to automatically sendinitializerequest by @mattt in #100
Full Changelog: 0.8.2...0.9.0
0.8.2
0.8.1
0.8.0
What's Changed
- Update
Client.listToolsreturn type to include next cursor by @mattt in #54 - Add support for Linux with glibc by @mattt in #61
- Conditionalize availability of
StdioTransportby @mattt in #65 - Fix
testServerHandleInitializeflake by @mattt in #68 - Add support for JSON-RPC batching by @mattt in #67
- Add support for audio content in prompts and tool results by @mattt in #73
- Add support for tool annotations by @mattt in #47
- Add streamable HTTP transport for clients by @mattt in #70
- Update README with information about transports and platform availability by @mattt in #76
- Simplify
receive()implementation for transports by @mattt in #78 - Send initialized notification from client instead of server by @mattt in #85
- Update AnyNotification to include notification params by @stallent in #86
- Fix event stream line parsing to handle CRLF and empty lines correctly by @aspitz in #89
- support 405 response from servers that don’t support streaming by @stallent in #90
- Document
Clientusage withHTTPClientTransportby @mattt in #77 - Resume
NetworkTransferwithEOFinstead of throwing error when no data is received by @mattt in #94 - Use
EventSourcefor SSE implementation by @stallent and @mattt in #96 - Delay SSE GET connection until after session ID is established by @mattt in #97
- Improve documentation comments for transport types by @mattt in #98
- Expand README with more information about client and server usage by @mattt in #99
- Set latest version to 2025-03-26 by @mattt in #80
New Contributors
Full Changelog: 0.7.1...0.8.0
0.7.1
0.7.0
Breaking Changes
Important
This release contains breaking API changes.
If you've implemented custom transports or directly referenced MCP error types, you'll need to update your code.
Error renamed to MCPError
Renamed the Error type to MCPError to avoid namespace collision with Swift's standard Error protocol. The MCPError type now properly conforms to Swift.Error.
// Old code
catch let error as MCP.Error {
// Handle MCP error
}
// New code
catch let error as MCPError {
// Handle MCP error
}Transport protocol updated to use Data instead of String
The Transport protocol methods now work with Data instead of String to avoid unnecessary memory copies:
// Old protocol signature
func send(_ message: String) async throws
func receive() async throws -> String
// New protocol signature
func send(_ data: Data) async throws
func receive() async throws -> DataThis change should not affect most users who rely on the standard StdioTransport, but will require updates if you've implemented a custom transport.
What's Changed
- Update README to reflect MIT License by @mattt in #41
- Add configurable strict mode for MCP client initialization by @mattt in #43
- Update transports to send and receive data instead of strings by @mattt in #42
- Rename
ErrortoMCPErrorby @mattt in #44 - Add Changelog section to README by @mattt in #45
Full Changelog: 0.6.0...0.7.0
0.6.0
What's Changed
- Set permissions for CI workflow by @mattt in #29
- Transfer project to @modelcontextprotocol by @mattt in #28
- Add waitUntilComplete() method to Server by @adamwulf in #26
- Import
Systempackage when available by @mattt in #34 - Fix/decode tool call by @adamwulf in #36
- Update platform requirements by @mattt in #30
Full Changelog: 0.5.1...0.6.0