本技能用于指导开发者向 dart_mcp_server 包添加新功能,包括工具(tools)、提示(prompts)或其他能力。
用途 当需要为 dart_mcp_server 增加新的工具、提示或其他服务器能力时,按照本说明执行。
主要步骤与能力
-
定位或创建 Mixin:所有服务器功能都以 DartMCPServer 上的 mixin 形式实现,位置在 pkgs/dart_mcp_server/lib/src/server.dart。先检查 pkgs/dart_mcp_server/lib/src/mixins/ 下是否已有适合的现有分类(例如 analyzer.dart、pub.dart)。如果功能独立,则在该目录下新建文件,参照现有 mixin 的模式,并在文件顶部加入版权头,年份使用当前年份。
-
实现细节:工具、提示等应在 mixin 的 initialize 方法中注册,该方法为 override,必须调用 super.initialize()。为工具或提示添加新参数时,始终在 pkgs/dart_mcp_server/lib/src/utils/names.dart 的 ParameterNames 扩展中添加常量,并在工具解析和 schema 中使用该常量,而不是硬编码字符串字面量。分析方面,绝不将客户端的原始字符串发送到分析系统;带 command 参数的工具必须用枚举声明其取值(例如 EnumSchema.untitledSingleSelect),因为只有这些值会被记录到工具名中;同样,新提示必须加入 PromptNames 枚举,因为只有这些提示名会被记录。使用 pkgs/dart_mcp_server/lib/src/utils/analytics.dart 中的 createDartMCPEvent 创建分析事件,它会清理客户端信息。
-
测试:始终为新功能添加测试。使用 pkgs/dart_mcp_server/test/test_harness.dart 中的 TestHarness 类。可参考 pkgs/dart_mcp_server/test/tools/ 下的现有测试了解如何测试特定工具。如果当前 TestHarness 缺少测试所需功能,可以自行添加。
-
验证:运行测试、运行分析、格式化代码。
-
文档:运行 pkgs/dart_mcp_server/tool/update_readme.dart 脚本以将新功能更新到 README.md,必须从 pkgs/dart_mcp_server 目录运行。按需对 README.md 进行其他手动编辑。更新 CHANGELOG.md,包含所有面向用户的更新。
-
更新本技能:如果对未来功能有帮助,更新此 SKILL.md 文件。
适用场景 适用于 dart_mcp_server 包的开发与维护,尤其是需要新增工具、提示或服务器能力时。
限制 本资料未提供关于收费、价格、平台支持范围、具体效果或额外使用步骤的信息,相关内容暂未提供。