41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
// 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) // 硬件检测
|
||
}
|