dart_mcp项目v0.2.0版本发布:多模态通信协议的重大升级

dart_mcp项目v0.2.0版本发布:多模态通信协议的重大升级

ai A general repository for AI / GenAI packages and explorations. ai 项目地址: https://gitcode.com/gh_mirrors/ai52/ai

dart_mcp是一个基于Dart语言实现的多模态通信协议(Multimodal Communication Protocol,简称MCP)库。该项目为开发者提供了在Dart生态系统中实现MCP协议的能力,支持客户端和服务器端的双向通信,特别适合需要处理多种数据类型的应用场景。

协议版本2025-03-26支持

本次v0.2.0版本最重要的更新是新增了对协议版本2025-03-26的支持。这一更新带来了三项关键功能:

  1. 音频内容支持:新增了AudioContent类型,使协议能够处理音频数据,扩展了多模态通信的能力。开发者现在可以通过MCP协议传输和处理音频内容,为语音交互、音频流等应用场景提供了基础支持。

  2. 工具注释支持:新增了ToolAnnotations功能,允许在通信过程中附加工具相关的元数据和注释信息。这一特性特别适合需要与外部工具集成的应用,能够更丰富地描述和传递工具使用上下文。

  3. 进度通知消息:新增了ProgressNotification消息类型,使得长时间运行的任务可以实时向客户端报告进度。这对于需要显示进度条或任务状态的应用程序非常有用。

协议版本协商机制优化

新版本改进了协议版本协商机制,增加了默认的版本协商逻辑:

  • 自动保存协商后的ProtocolVersionMCPServerServerConnection类的protocolVersion字段中
  • 当版本协商失败时自动断开与服务器的连接
  • protocolVersion从字符串类型改为ProtocolVersion枚举类型,包含所有支持的版本及其支持状态信息

这些改进使得版本管理更加健壮和类型安全,减少了因版本不匹配导致的运行时错误。

资源模板管理

v0.2.0版本新增了对ResourceTemplate的支持,开发者现在可以:

  • 添加资源模板
  • 列出已有资源模板
  • 通过自定义处理程序实现模板匹配逻辑

这一功能为资源管理提供了更大的灵活性,特别是在需要动态创建和管理资源模板的场景中。

服务器功能增强

新版本引入了几个重要的服务器端改进:

  1. 根节点跟踪支持:新增了RootsTrackingSupport服务器mixin,可以自动维护客户端设置的根节点列表,简化了根节点管理。

  2. 通知节流机制:为ResourceListChangedNotificationResourceUpdatedNotification添加了默认的500ms节流延迟,防止高频通知导致的性能问题。开发者可以通过重写ResourcesSupport.resourceUpdateThrottleDelay来调整这一延迟。

  3. 连接状态感知:现在只在客户端仍保持连接时发送通知,解决了因节流延迟导致的通知发送给已断开客户端的问题。

调试与日志记录

为了便于调试,新版本增加了协议日志记录功能:

  • 在服务器构造函数和客户端连接方法中添加了protocolLogSink参数
  • 开发者可以通过这个参数捕获协议消息用于调试目的
  • 这一功能对于诊断通信问题和理解协议交互过程非常有帮助

其他改进与破坏性变更

v0.2.0版本还包含了一些其他改进和必要的破坏性变更:

  1. 分页结果类型修正:将分页结果子类型中的cursor键改为nextCursor,使其更准确地反映其用途。

  2. 进度通知类型变更:将ProgressNotification.progressProgressNotification.total的类型从int改为num,以支持更广泛的数值范围。

  3. 初始化请求/结果改进:将InitializeRequestInitializeResult的参数从字符串改为ProtocolVersion类型,提高了类型安全性。同时将InitializeResultinstructions改为可空类型,以反映实际使用场景。

  4. 底层通信重构:将MCPBase改为接受StreamChannel<String>而不是Peer,并自行构造Peer实例。这一变更提供了更大的灵活性,允许开发者使用不同的通道实现。

  5. API一致性改进:将MCPServer构造函数中的channel参数改为位置参数,提高了API一致性。

总结

dart_mcp v0.2.0版本是一次重要的功能升级,不仅增加了对最新协议版本的支持,还改进了版本协商、资源管理和通知机制等核心功能。这些改进使得库更加健壮、灵活和易于调试,为构建复杂的多模态通信应用提供了更好的基础。开发者现在可以更轻松地处理音频内容、管理资源模板,并通过改进的日志功能更好地理解和调试协议交互。

ai A general repository for AI / GenAI packages and explorations. ai 项目地址: https://gitcode.com/gh_mirrors/ai52/ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚寒牧Tilda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值