refactor(mcp): consolidate MCP implementation into internal package
Build and Deploy / build-and-push (push) Successful in 54s

- Move MCP tools registration to internal/mcp
- cmd/mcp now only contains CLI entry logic
- Support env vars TASKPOOL_URL/TASKPOOL_TOKEN for stdio mode
- Remove duplicate client.go from cmd/mcp
This commit is contained in:
2026-07-27 02:43:01 +08:00
parent 066383de83
commit f3a44a901e
4 changed files with 130 additions and 773 deletions
+22 -3
View File
@@ -19,9 +19,10 @@ const (
)
var (
mcpServer *server.MCPServer
mcpHTTPServer *server.StreamableHTTPServer
once sync.Once
mcpServer *server.MCPServer
mcpHTTPServer *server.StreamableHTTPServer
externalClient *Client // 外部客户端(用于 stdio 模式连接远程服务器)
once sync.Once
)
// GetServer 获取 MCP Server 实例(单例)
@@ -42,6 +43,19 @@ func GetServer() *server.MCPServer {
return mcpServer
}
// SetExternalClient 设置外部 OpenAPI 客户端(用于 stdio 模式)
func SetExternalClient(c *Client) {
externalClient = c
}
// getClient 获取当前使用的客户端
func getClient() *Client {
if externalClient != nil {
return externalClient
}
return GetOpenAPIClient()
}
// GetHTTPHandler 获取 MCP HTTP Handler(用于集成到 Gin
func GetHTTPHandler() http.Handler {
s := GetServer()
@@ -53,6 +67,11 @@ func GetHTTPHandler() http.Handler {
return mcpHTTPServer
}
// ServeStdio 启动 stdio 模式的 MCP Server
func ServeStdio(s *server.MCPServer) error {
return server.ServeStdio(s)
}
const instructions = `你是 TaskPool(任务池)运维助手。通过 MCP tools 管理任务调度面板。
核心能力: