diff --git a/internal/llm/agent/mcp-tools.go b/internal/llm/agent/mcp-tools.go index bb50231da..90011c43a 100644 --- a/internal/llm/agent/mcp-tools.go +++ b/internal/llm/agent/mcp-tools.go @@ -327,7 +327,7 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con } func createAndInitializeClient(ctx context.Context, name string, m config.MCPConfig) (*client.Client, error) { - c, err := createMcpClient(m) + c, err := createMcpClient(name, m) if err != nil { updateMCPState(name, MCPStateError, err, nil, 0) slog.Error("error creating mcp client", "error", err, "name", name) @@ -353,7 +353,7 @@ func createAndInitializeClient(ctx context.Context, name string, m config.MCPCon return c, nil } -func createMcpClient(m config.MCPConfig) (*client.Client, error) { +func createMcpClient(name string, m config.MCPConfig) (*client.Client, error) { switch m.Type { case config.MCPStdio: if strings.TrimSpace(m.Command) == "" { @@ -363,7 +363,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) { m.Command, m.ResolvedEnv(), m.Args, - transport.WithCommandLogger(mcpLogger{}), + transport.WithCommandLogger(mcpLogger{name: name}), ) case config.MCPHttp: if strings.TrimSpace(m.URL) == "" { @@ -372,7 +372,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) { return client.NewStreamableHttpClient( m.URL, transport.WithHTTPHeaders(m.ResolvedHeaders()), - transport.WithHTTPLogger(mcpLogger{}), + transport.WithHTTPLogger(mcpLogger{name: name}), ) case config.MCPSse: if strings.TrimSpace(m.URL) == "" { @@ -381,7 +381,7 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) { return client.NewSSEMCPClient( m.URL, client.WithHeaders(m.ResolvedHeaders()), - transport.WithSSELogger(mcpLogger{}), + transport.WithSSELogger(mcpLogger{name: name}), ) default: return nil, fmt.Errorf("unsupported mcp type: %s", m.Type) @@ -389,10 +389,15 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) { } // for MCP's clients. -type mcpLogger struct{} +type mcpLogger struct{ name string } -func (l mcpLogger) Errorf(format string, v ...any) { slog.Error(fmt.Sprintf(format, v...)) } -func (l mcpLogger) Infof(format string, v ...any) { slog.Info(fmt.Sprintf(format, v...)) } +func (l mcpLogger) Errorf(format string, v ...any) { + slog.Error(fmt.Sprintf(format, v...), "name", l.name) +} + +func (l mcpLogger) Infof(format string, v ...any) { + slog.Info(fmt.Sprintf(format, v...), "name", l.name) +} func mcpTimeout(m config.MCPConfig) time.Duration { return time.Duration(cmp.Or(m.Timeout, 15)) * time.Second