From d72bac2307e3027ed4e98b34723d0f999314f185 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 5 Aug 2025 09:51:06 -0300 Subject: [PATCH] fix(mcp): set logger on all mcp clients (#554) * fix: set logger on all mcp clients * fix: dep * chore: comment --- go.mod | 2 +- go.sum | 4 ++-- internal/llm/agent/mcp-tools.go | 16 +++++++++------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 554ddfe41d2b9109593014798c04b83c0b2edbf9..4564b93b3799db28ad5ce8b47de6c90dfcc58b46 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/google/uuid v1.6.0 github.com/invopop/jsonschema v0.13.0 github.com/joho/godotenv v1.5.1 - github.com/mark3labs/mcp-go v0.36.0 + github.com/mark3labs/mcp-go v0.37.0 github.com/muesli/termenv v0.16.0 github.com/ncruces/go-sqlite3 v0.25.0 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 diff --git a/go.sum b/go.sum index a92dbc037bbb4c28ca94b7572954d74a041bb56a..3ccdc37bc1829d198ae33383e30a24fb95a9b1c9 100644 --- a/go.sum +++ b/go.sum @@ -180,8 +180,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69 github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mark3labs/mcp-go v0.36.0 h1:rIZaijrRYPeSbJG8/qNDe0hWlGrCJ7FWHNMz2SQpTis= -github.com/mark3labs/mcp-go v0.36.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g= +github.com/mark3labs/mcp-go v0.37.0 h1:BywvZLPRT6Zx6mMG/MJfxLSZQkTGIcJSEGKsvr4DsoQ= +github.com/mark3labs/mcp-go v0.37.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= diff --git a/internal/llm/agent/mcp-tools.go b/internal/llm/agent/mcp-tools.go index 72b57ec07ff00ba94e188b9f00ed08698a1de028..ac4385d2725c600c01a8ac479c8364c99b0cb217 100644 --- a/internal/llm/agent/mcp-tools.go +++ b/internal/llm/agent/mcp-tools.go @@ -308,29 +308,31 @@ func doGetMCPTools(ctx context.Context, permissions permission.Service, cfg *con func createMcpClient(m config.MCPConfig) (*client.Client, error) { switch m.Type { case config.MCPStdio: - return client.NewStdioMCPClient( + return client.NewStdioMCPClientWithOptions( m.Command, m.ResolvedEnv(), - m.Args..., + m.Args, + transport.WithCommandLogger(mcpLogger{}), ) case config.MCPHttp: return client.NewStreamableHttpClient( m.URL, transport.WithHTTPHeaders(m.ResolvedHeaders()), - transport.WithLogger(mcpHTTPLogger{}), + transport.WithHTTPLogger(mcpLogger{}), ) case config.MCPSse: return client.NewSSEMCPClient( m.URL, client.WithHeaders(m.ResolvedHeaders()), + transport.WithSSELogger(mcpLogger{}), ) default: return nil, fmt.Errorf("unsupported mcp type: %s", m.Type) } } -// for MCP's HTTP client. -type mcpHTTPLogger struct{} +// for MCP's clients. +type mcpLogger struct{} -func (l mcpHTTPLogger) Errorf(format string, v ...any) { slog.Error(fmt.Sprintf(format, v...)) } -func (l mcpHTTPLogger) 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...)) } +func (l mcpLogger) Infof(format string, v ...any) { slog.Info(fmt.Sprintf(format, v...)) }