@@ -87,7 +87,7 @@ func newServer(dt disabledTools) *server.MCPServer {
87
87
return s
88
88
}
89
89
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 {
91
91
slog .SetDefault (slog .New (slog .NewTextHandler (os .Stderr , & slog.HandlerOptions {Level : logLevel })))
92
92
s := newServer (dt )
93
93
@@ -100,8 +100,9 @@ func run(transport, addr string, logLevel slog.Level, dt disabledTools, gc grafa
100
100
case "sse" :
101
101
srv := server .NewSSEServer (s ,
102
102
server .WithHTTPContextFunc (mcpgrafana .ComposedHTTPContextFunc (gc .debug )),
103
+ server .WithStaticBasePath (basePath ),
103
104
)
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 )
105
106
if err := srv .Start (addr ); err != nil {
106
107
return fmt .Errorf ("Server error: %v" , err )
107
108
}
@@ -124,14 +125,15 @@ func main() {
124
125
"Transport type (stdio or sse)" ,
125
126
)
126
127
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" )
127
129
logLevel := flag .String ("log-level" , "info" , "Log level (debug, info, warn, error)" )
128
130
var dt disabledTools
129
131
dt .addFlags ()
130
132
var gc grafanaConfig
131
133
gc .addFlags ()
132
134
flag .Parse ()
133
135
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 {
135
137
panic (err )
136
138
}
137
139
}
0 commit comments