@@ -351,6 +351,9 @@ func createAndInitializeClient(ctx context.Context, name string, m config.MCPCon
func createMcpClient(m config.MCPConfig) (*client.Client, error) {
switch m.Type {
case config.MCPStdio:
+ if strings.TrimSpace(m.Command) == "" {
+ return nil, fmt.Errorf("mcp stdio config requires a non-empty 'command' field")
+ }
return client.NewStdioMCPClientWithOptions(
m.Command,
m.ResolvedEnv(),
@@ -358,12 +361,18 @@ func createMcpClient(m config.MCPConfig) (*client.Client, error) {
transport.WithCommandLogger(mcpLogger{}),
)
case config.MCPHttp:
+ if strings.TrimSpace(m.URL) == "" {
+ return nil, fmt.Errorf("mcp http config requires a non-empty 'url' field")
+ }
return client.NewStreamableHttpClient(
m.URL,
transport.WithHTTPHeaders(m.ResolvedHeaders()),
transport.WithHTTPLogger(mcpLogger{}),
)
case config.MCPSse:
+ if strings.TrimSpace(m.URL) == "" {
+ return nil, fmt.Errorf("mcp sse config requires a non-empty 'url' field")
+ }
return client.NewSSEMCPClient(
m.URL,
client.WithHeaders(m.ResolvedHeaders()),