package router import ( "github.com/engigu/taskpool/internal/middleware" "github.com/gin-gonic/gin" ) // initMCPRoutes 初始化 MCP Server 路由 // 使用 OpenAPI Token 进行鉴权 func initMCPRoutes(root *gin.RouterGroup, c *Controllers) { // MCP 路由组 (使用 Bearer Token 鉴权,复用 OpenAPI 中间件) mcp := root.Group("/mcp") mcp.Use(middleware.OpenapiRequired()) { // 所有 MCP 请求都通过同一个 handler 处理 // StreamableHTTP 协议支持 POST 和 GET // 使用 /*action 匹配 /mcp 和 /mcp/ 以及 /mcp/xxx mcp.POST("/*action", c.MCP.HandleMCP) mcp.GET("/*action", c.MCP.HandleMCP) } // 同时处理 /mcp 根路径(无尾部斜杠) mcpRoot := root.Group("/mcp") mcpRoot.Use(middleware.OpenapiRequired()) { mcpRoot.POST("", c.MCP.HandleMCP) mcpRoot.GET("", c.MCP.HandleMCP) } }