feat(mcp): add SSE transport support and related configuration options
Some checks failed
CI / build-and-test (push) Failing after -30m37s

This commit is contained in:
2026-04-05 15:57:34 +02:00
parent 1958eaca01
commit 5f48a197e8
10 changed files with 276 additions and 6 deletions

View File

@@ -193,11 +193,15 @@ func routes(logger *slog.Logger, cfg *config.Config, info buildinfo.Info, db *st
Describe: tools.NewDescribeTool(db, mcpserver.BuildToolCatalog()),
}
mcpHandler, err := mcpserver.New(cfg.MCP, logger, toolSet, activeProjects.Clear)
mcpHandlers, err := mcpserver.NewHandlers(cfg.MCP, logger, toolSet, activeProjects.Clear)
if err != nil {
return nil, fmt.Errorf("build mcp handler: %w", err)
}
mux.Handle(cfg.MCP.Path, authMiddleware(mcpHandler))
mux.Handle(cfg.MCP.Path, authMiddleware(mcpHandlers.StreamableHTTP))
if mcpHandlers.SSE != nil {
mux.Handle(cfg.MCP.SSEPath, authMiddleware(mcpHandlers.SSE))
logger.Info("SSE transport enabled", slog.String("sse_path", cfg.MCP.SSEPath))
}
mux.Handle("/files", authMiddleware(fileHandler(filesTool)))
mux.Handle("/files/{id}", authMiddleware(fileHandler(filesTool)))
if oauthEnabled {