go-common中增加mcp抽离成通用方法(编排由业务方自行处理)

This commit is contained in:
2026-07-25 11:27:34 +08:00
parent 121928733b
commit 97450f0739
14 changed files with 1112 additions and 9 deletions

View File

@@ -7,6 +7,7 @@ import (
"git.toowon.com/jimmy/go-common/email"
"git.toowon.com/jimmy/go-common/i18n"
"git.toowon.com/jimmy/go-common/logger"
"git.toowon.com/jimmy/go-common/mcp"
"git.toowon.com/jimmy/go-common/sms"
"git.toowon.com/jimmy/go-common/storage"
"github.com/redis/go-redis/v9"
@@ -24,6 +25,7 @@ const (
ModuleEmail Module = "email"
ModuleSMS Module = "sms"
ModuleI18n Module = "i18n"
ModuleMCP Module = "mcp"
)
// MustInit 从配置文件初始化全局 Factory失败则 panic适合 main 启动)
@@ -56,6 +58,8 @@ func (f *Factory) Warmup(modules ...Module) error {
_, err = f.SMS()
case ModuleI18n:
_, err = f.I18n()
case ModuleMCP:
_, err = f.MCP()
default:
return fmt.Errorf("unknown module: %s", m)
}
@@ -104,6 +108,12 @@ func (f *Factory) Close() error {
}
f.db = nil
}
if f.mcp != nil {
if err := f.mcp.Close(); err != nil {
errs = append(errs, fmt.Errorf("mcp: %w", err))
}
f.mcp = nil
}
if f.logger != nil {
if err := f.logger.Close(); err != nil {
errs = append(errs, fmt.Errorf("logger: %w", err))
@@ -179,3 +189,12 @@ func (f *Factory) MustI18n() *i18n.I18n {
}
return i
}
// MustMCP 获取 MCP 工具子系统对象;失败则 panic适合启动期注入
func (f *Factory) MustMCP() mcp.Manager {
m, err := f.MCP()
if err != nil {
panic(err)
}
return m
}