@@ -87,7 +87,7 @@ func newServer(dt disabledTools) *server.MCPServer {
8787 return s
8888}
8989
90- func run (transport , addr string , logLevel slog.Level , dt disabledTools , gc grafanaConfig ) error {
90+ func run (transport , addr , basePath string , logLevel slog.Level , dt disabledTools , gc grafanaConfig ) error {
9191 slog .SetDefault (slog .New (slog .NewTextHandler (os .Stderr , & slog.HandlerOptions {Level : logLevel })))
9292 s := newServer (dt )
9393
@@ -100,8 +100,9 @@ func run(transport, addr string, logLevel slog.Level, dt disabledTools, gc grafa
100100 case "sse" :
101101 srv := server .NewSSEServer (s ,
102102 server .WithHTTPContextFunc (mcpgrafana .ComposedHTTPContextFunc (gc .debug )),
103+ server .WithStaticBasePath (basePath ),
103104 )
104- slog .Info ("Starting Grafana MCP server using SSE transport" , "address" , addr )
105+ slog .Info ("Starting Grafana MCP server using SSE transport" , "address" , addr , "basePath" , basePath )
105106 if err := srv .Start (addr ); err != nil {
106107 return fmt .Errorf ("Server error: %v" , err )
107108 }
@@ -124,14 +125,15 @@ func main() {
124125 "Transport type (stdio or sse)" ,
125126 )
126127 addr := flag .String ("sse-address" , "localhost:8000" , "The host and port to start the sse server on" )
128+ basePath := flag .String ("base-path" , "" , "Base path for the sse server" )
127129 logLevel := flag .String ("log-level" , "info" , "Log level (debug, info, warn, error)" )
128130 var dt disabledTools
129131 dt .addFlags ()
130132 var gc grafanaConfig
131133 gc .addFlags ()
132134 flag .Parse ()
133135
134- if err := run (transport , * addr , parseLevel (* logLevel ), dt , gc ); err != nil {
136+ if err := run (transport , * addr , * basePath , parseLevel (* logLevel ), dt , gc ); err != nil {
135137 panic (err )
136138 }
137139}
0 commit comments