From c47a5846e6b4fd951b2cff5d0a2da278a1a68f00 Mon Sep 17 00:00:00 2001 From: Donnie Adams Date: Thu, 19 Jun 2025 11:48:59 -0400 Subject: [PATCH] enhance: allow passing of MCP client options when creating clients Signed-off-by: Donnie Adams --- pkg/mcp/client.go | 4 ++-- pkg/mcp/loader.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/mcp/client.go b/pkg/mcp/client.go index 73f4e0d9..f4ecee15 100644 --- a/pkg/mcp/client.go +++ b/pkg/mcp/client.go @@ -4,8 +4,8 @@ import ( nmcp "github.com/nanobot-ai/nanobot/pkg/mcp" ) -func (l *Local) Client(server ServerConfig) (*Client, error) { - session, err := l.loadSession(server, "default") +func (l *Local) Client(server ServerConfig, clientOpts ...nmcp.ClientOption) (*Client, error) { + session, err := l.loadSession(server, "default", clientOpts...) if err != nil { return nil, err } diff --git a/pkg/mcp/loader.go b/pkg/mcp/loader.go index 87e2d0bc..3e28a8d4 100644 --- a/pkg/mcp/loader.go +++ b/pkg/mcp/loader.go @@ -276,7 +276,7 @@ func (l *Local) sessionToTools(ctx context.Context, session *Session, toolName s return toolDefs, nil } -func (l *Local) loadSession(server ServerConfig, serverName string) (*Session, error) { +func (l *Local) loadSession(server ServerConfig, serverName string, clientOpts ...nmcp.ClientOption) (*Session, error) { id := hash.Digest(server) l.lock.Lock() existing, ok := l.sessions[id] @@ -296,7 +296,7 @@ func (l *Local) loadSession(server ServerConfig, serverName string) (*Session, e Args: server.Args, BaseURL: server.GetBaseURL(), Headers: splitIntoMap(server.Headers), - }) + }, clientOpts...) if err != nil { return nil, fmt.Errorf("failed to create MCP stdio client: %w", err) }