// Package tools 是 aio-mcp 的工具注册表:按业务域分组,统一注册。 // // # 新增一个工具组 // // 1. 在 internal/tools/ 下新建子包(如 sqlite/),实现 // func Register(s *mcp.Server, d *deps.Deps) // 2. 在 RegisterAll 中追加一行 sqlite.Register(s, d) // // # 在已有组内新增一个工具 // // 在对应子包内新建文件(如 sqlite/query.go),实现 // func registerQuery(s *mcp.Server, d *deps.Deps), // 并在该组的 Register 中追加一行。 // // 工具通过泛型 mcp.AddTool[In, Out] 注册:输入参数用 struct 定义, // 加 json 与 jsonschema tag(描述、必填),SDK 会自动生成 inputSchema // 并做输入校验,无需手工写 JSON Schema。 // // 注意:共享依赖放在 internal/deps 而不是本包, // 否则工具子包 import 本包会形成循环依赖。 package tools import ( "github.com/modelcontextprotocol/go-sdk/mcp" "aio-mcp/internal/deps" "aio-mcp/internal/tools/system" ) // RegisterAll 注册所有工具组。 func RegisterAll(s *mcp.Server, d *deps.Deps) { // 系统组:健康检查与协议演示。 system.Register(s, d) // 待接入的业务组(目录尚未创建,接入时在此追加): // sqlite.Register(s, d) // 本地数据查询 // file.Register(s, d) // 文件读写 // print.Register(s, d) // 打印/报告输出 // check.Register(s, d) // 硬件检测 }