on main help sign in
fix(mcp): pass down mcp name to logger (#1078)

This will make the logs more useful. Right now it would simply print the MCP's library logs without any additional context, so you wouldn't know which MCP is causing issues. Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

commit91b6b3134a63036b1528da8e38d80bfe998c3d05 authorCarlos Alexandro Becker <caarlos0@users.noreply.github.com> dateFri 19 Sep 2025, 09:16 (1 year ago) parent96af782
1 file changed+13−8
internal/llm/agent/mcp-tools.go+13−8
internal/llm/agent/mcp-tools.go+13−8
@@ -327,7 +327,7 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con
327327}
328328
329329func createAndInitializeClient(ctx context.Context, name string, m config.MCPConfig) (*client.Client, error) {
330− c, err := createMcpClient(m)
330+ c, err := createMcpClient(name, m)
331331 if err != nil {
332332 updateMCPState(name, MCPStateError, err, nil, 0)
333333 slog.Error("error creating mcp client", "error", err, "name", name)
@@ -353,7 +353,7 @@ func createAndInitializeClient(ctx context.Context, name string, m config.MCPCon
353353 return c, nil
354354}
355355
356−func createMcpClient(m config.MCPConfig) (*client.Client, error) {
356+func createMcpClient(name string, m config.MCPConfig) (*client.Client, error) {
357357 switch m.Type {
358358 case config.MCPStdio:
359359 if strings.TrimSpace(m.Command) == "" {
@@ -363,7 +363,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) {
363363 m.Command,
364364 m.ResolvedEnv(),
365365 m.Args,
366− transport.WithCommandLogger(mcpLogger{}),
366+ transport.WithCommandLogger(mcpLogger{name: name}),
367367 )
368368 case config.MCPHttp:
369369 if strings.TrimSpace(m.URL) == "" {
@@ -372,7 +372,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) {
372372 return client.NewStreamableHttpClient(
373373 m.URL,
374374 transport.WithHTTPHeaders(m.ResolvedHeaders()),
375− transport.WithHTTPLogger(mcpLogger{}),
375+ transport.WithHTTPLogger(mcpLogger{name: name}),
376376 )
377377 case config.MCPSse:
378378 if strings.TrimSpace(m.URL) == "" {
@@ -381,7 +381,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) {
381381 return client.NewSSEMCPClient(
382382 m.URL,
383383 client.WithHeaders(m.ResolvedHeaders()),
384− transport.WithSSELogger(mcpLogger{}),
384+ transport.WithSSELogger(mcpLogger{name: name}),
385385 )
386386 default:
387387 return nil, fmt.Errorf("unsupported mcp type: %s", m.Type)
@@ -389,10 +389,15 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) {
389389}
390390
391391// for MCP's clients.
392−type mcpLogger struct{}
392+type mcpLogger struct{ name string }
393393
394−func (l mcpLogger) Errorf(format string, v ...any) { slog.Error(fmt.Sprintf(format, v...)) }
395−func (l mcpLogger) Infof(format string, v ...any) { slog.Info(fmt.Sprintf(format, v...)) }
394+func (l mcpLogger) Errorf(format string, v ...any) {
395+ slog.Error(fmt.Sprintf(format, v...), "name", l.name)
396+}
397+
398+func (l mcpLogger) Infof(format string, v ...any) {
399+ slog.Info(fmt.Sprintf(format, v...), "name", l.name)
400+}
396401
397402func mcpTimeout(m config.MCPConfig) time.Duration {
398403 return time.Duration(cmp.Or(m.Timeout, 15)) * time.Second