0908
This commit is contained in:
@@ -1,26 +1,40 @@
|
||||
// Package tools 集中管理 aio-mcp 的全部 MCP 工具。
|
||||
// Package tools 是 aio-mcp 的工具注册表:按业务域分组,统一注册。
|
||||
//
|
||||
// # 新增工具的固定步骤
|
||||
// # 新增一个工具组
|
||||
//
|
||||
// 1. 在本目录新建一个文件(如 weather.go),实现
|
||||
// func registerXXX(s *mcp.Server)
|
||||
// 2. 在 RegisterAll 中追加一行 registerXXX(s)
|
||||
// 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。
|
||||
//
|
||||
// 后续工具需要共享状态(SQLite 连接、配置、http client 等)时,
|
||||
// 把 RegisterAll 演进为 RegisterAll(s *mcp.Server, deps *Deps),
|
||||
// 在 server.New 里构造 deps 传入即可,各工具文件只改签名。
|
||||
// 注意:共享依赖放在 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) {
|
||||
registerPing(s)
|
||||
registerEcho(s)
|
||||
// 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) // 硬件检测
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package tools
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -1,4 +1,4 @@
|
||||
package tools
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
14
aio-mcp/internal/tools/system/system.go
Normal file
14
aio-mcp/internal/tools/system/system.go
Normal file
@@ -0,0 +1,14 @@
|
||||
// Package system 承载 aio-mcp 自身的系统类工具:健康检查、协议演示等。
|
||||
package system
|
||||
|
||||
import (
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
|
||||
"aio-mcp/internal/deps"
|
||||
)
|
||||
|
||||
// Register 注册本组全部工具。
|
||||
func Register(s *mcp.Server, _ *deps.Deps) {
|
||||
registerPing(s)
|
||||
registerEcho(s)
|
||||
}
|
||||
Reference in New Issue
Block a user