dart_mcp 0.2.2
dart_mcp: ^0.2.2 copied to clipboard
A package for making MCP servers and clients.
0.2.2 #
- Refactor
ClientImplementationandServerImplementationto the sharedImplementationtype to match the spec. The old names are deprecated but will still work until the next breaking release. - Add
clientInfofield toMCPServer, assigned during initialization. - Move the
donefuture from theServerConnectionintoMCPBaseso it is available to theMPCServerclass as well.
0.2.1 #
- Fix the
protocolLogSinksupport when usingMCPClient.connectStdioServer. - Update workflow example to show thinking spinner and input and output token usage.
- Update file system example to support relative paths.
- Fix a bug in notification handling where leaving off the parameters caused a type exception.
- Added
--help,--log, and--modelflags to the workflow example. - Fixed a bug where the examples would only connect to a server with the latest protocol version.
- Handle failed calls to
listRootsin theRootsTrackingSupportmixin more gracefully. Previously this would leave therootsfuture hanging indefinitely, but now it will log an error and set the roots to empty. - Added validation for Schema extension.
- Fixed an issue where getting the type of a Schema with a null type would throw.
0.2.0 #
- Support protocol version 2025-03-26.
- Adds support for
AudioContent. - Adds support for
ToolAnnotations. - Adds support for
ProgressNotificationmessages.
- Adds support for
- Save the
ServerCapabilitiesobject on theServerConnectionclass to make it easier to check the capabilities of the server. - Add default version negotiation logic.
- Save the negotiated
ProtocolVersionin aprotocolVersionfield for bothMCPServerand theServerConnectionclasses. - Automatically disconnect from servers if version negotiation fails.
- Save the negotiated
- Added support for adding and listing
ResourceTemplates.- Handlers have to handle their own matching of templates.
- Added a
RootsTrackingSupportserver mixin which can be used to keep an updated list of the roots set by the client. - Added default throttling with a 500ms delay for
ResourceListChangedNotifications andResourceUpdatedNotifications. The delay can be modified by overridingResourcesSupport.resourceUpdateThrottleDelay. - Add
Sink<String> protocolLogSinkparameters to server constructor and client connection methods, which can be used to capture protocol messages for debugging purposes. - Only send notifications if the peer is still connected. Fixes issues where notifications are delayed due to throttling and the client has since closed.
- Breaking: Fixed paginated result subtypes to use
nextCursorinstead ofcursoras the key for the next cursor. - Breaking: Change the
ProgressNotification.progressandProgressNotification.totaltypes tonuminstead ofintto align with the spec. - Breaking: Change the
protocolVersionstring to aProtocolVersionenum, which has all supported versions and whether or not they are supported. - Breaking: Change
InitializeRequestandInitializeResultto take aProtocolVersioninstead of a string. - Breaking: Change the
InitializeResult'sinstructionstoString?to reflect that not all servers return instructions. - Change the
MCPServer.fromStreamChannelconstructor to make theinstructionsparameter optional. - Breaking: Change
MCPBaseto accept aStreamChannel<String>instead of aPeer, and construct its ownPeer. - Breaking: Add
protocolLogSinkoptional parameter to connect methods onMCPClient. - Breaking: Move
channelparameter onMCPServer.newto a positional parameter for consistency.
0.1.0 #
- Initial release, supports all major MCP functionality for both clients and servers, at protocol version 2024-11-05.
- APIs may change frequently until the 1.0.0 release based on feedback and needs.