Files
membank/aio-mcp/internal/tools/registry.go
张威33321 1a6ba86f04 0908
2026-09-08 20:36:25 +08:00

41 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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) // 硬件检测
}