@@ -12,14 +12,15 @@ import (
1212 "strings"
1313 "syscall"
1414
15+ "log/slog"
16+
1517 "github.com/github/github-mcp-server/pkg/github"
1618 mcplog "github.com/github/github-mcp-server/pkg/log"
1719 "github.com/github/github-mcp-server/pkg/translations"
1820 gogithub "github.com/google/go-github/v72/github"
1921 "github.com/mark3labs/mcp-go/mcp"
2022 "github.com/mark3labs/mcp-go/server"
2123 "github.com/shurcooL/githubv4"
22- "github.com/sirupsen/logrus"
2324)
2425
2526type MCPServerConfig struct {
@@ -190,17 +191,19 @@ func RunStdioServer(cfg StdioServerConfig) error {
190191
191192 stdioServer := server .NewStdioServer (ghServer )
192193
193- logrusLogger := logrus . New ()
194+ var slogHandler slog. Handler
194195 if cfg .LogFilePath != "" {
195196 file , err := os .OpenFile (cfg .LogFilePath , os .O_CREATE | os .O_WRONLY | os .O_APPEND , 0600 )
196197 if err != nil {
197198 return fmt .Errorf ("failed to open log file: %w" , err )
198199 }
199-
200- logrusLogger . SetLevel ( logrus . DebugLevel )
201- logrusLogger . SetOutput ( file )
200+ slogHandler = slog . NewTextHandler ( file , & slog. HandlerOptions { Level : slog . LevelDebug })
201+ } else {
202+ slogHandler = slog . NewTextHandler ( os . Stderr , & slog. HandlerOptions { Level : slog . LevelInfo } )
202203 }
203- stdLogger := log .New (logrusLogger .Writer (), "stdioserver" , 0 )
204+ logger := slog .New (slogHandler )
205+ logger .Info ("starting server" , "version" , cfg .Version , "host" , cfg .Host , "dynamicToolsets" , cfg .DynamicToolsets , "readOnly" , cfg .ReadOnly )
206+ stdLogger := log .New (os .Stderr , "stdioserver" , 0 )
204207 stdioServer .SetErrorLogger (stdLogger )
205208
206209 if cfg .ExportTranslations {
@@ -214,7 +217,7 @@ func RunStdioServer(cfg StdioServerConfig) error {
214217 in , out := io .Reader (os .Stdin ), io .Writer (os .Stdout )
215218
216219 if cfg .EnableCommandLogging {
217- loggedIO := mcplog .NewIOLogger (in , out , logrusLogger )
220+ loggedIO := mcplog .NewIOLogger (in , out , logger )
218221 in , out = loggedIO , loggedIO
219222 }
220223
@@ -227,9 +230,10 @@ func RunStdioServer(cfg StdioServerConfig) error {
227230 // Wait for shutdown signal
228231 select {
229232 case <- ctx .Done ():
230- logrusLogger . Infof ("shutting down server... " )
233+ logger . Info ("shutting down server" , "signal" , "context done " )
231234 case err := <- errC :
232235 if err != nil {
236+ logger .Error ("error running server" , "error" , err )
233237 return fmt .Errorf ("error running server: %w" , err )
234238 }
235239 }
0 commit comments