|
8 | 8 | "fmt" |
9 | 9 | "io" |
10 | 10 | "log" |
| 11 | + "log/slog" |
11 | 12 | "net/http" |
12 | 13 | "os" |
13 | 14 | "os/exec" |
@@ -158,11 +159,18 @@ type Connection struct { |
158 | 159 | } |
159 | 160 |
|
160 | 161 | // newMCPClient creates a new MCP SDK client with standard implementation details |
161 | | -func newMCPClient() *sdk.Client { |
| 162 | +// Pass nil for logger parameter to disable SDK logging (for tests) |
| 163 | +func newMCPClient(log *logger.Logger) *sdk.Client { |
| 164 | + var slogLogger *slog.Logger |
| 165 | + if log != nil { |
| 166 | + slogLogger = logger.NewSlogLoggerWithHandler(log) |
| 167 | + } |
162 | 168 | return sdk.NewClient(&sdk.Implementation{ |
163 | 169 | Name: "awmg", |
164 | 170 | Version: version.Get(), |
165 | | - }, &sdk.ClientOptions{}) |
| 171 | + }, &sdk.ClientOptions{ |
| 172 | + Logger: slogLogger, |
| 173 | + }) |
166 | 174 | } |
167 | 175 |
|
168 | 176 | // newHTTPConnection creates a new HTTP Connection struct with common fields |
@@ -300,8 +308,8 @@ func NewConnection(ctx context.Context, serverID, command string, args []string, |
300 | 308 | logConn.Printf("Creating new MCP connection: command=%s, args=%v", command, sanitize.SanitizeArgs(args)) |
301 | 309 | ctx, cancel := context.WithCancel(ctx) |
302 | 310 |
|
303 | | - // Create MCP client |
304 | | - client := newMCPClient() |
| 311 | + // Create MCP client with logger |
| 312 | + client := newMCPClient(logConn) |
305 | 313 |
|
306 | 314 | // Expand Docker -e flags that reference environment variables |
307 | 315 | // Docker's `-e VAR_NAME` expects VAR_NAME to be in the environment |
@@ -506,8 +514,8 @@ func trySDKTransport( |
506 | 514 | transportName string, |
507 | 515 | createTransport transportConnector, |
508 | 516 | ) (*Connection, error) { |
509 | | - // Create MCP client |
510 | | - client := newMCPClient() |
| 517 | + // Create MCP client with logger |
| 518 | + client := newMCPClient(logConn) |
511 | 519 |
|
512 | 520 | // Create transport using the provided connector |
513 | 521 | transport := createTransport(url, httpClient) |
|
0 commit comments