diff --git a/internal/config/config_stdin_test.go b/internal/config/config_stdin_test.go index 15f243b70..17985547c 100644 --- a/internal/config/config_stdin_test.go +++ b/internal/config/config_stdin_test.go @@ -439,7 +439,6 @@ func TestConvertStdinServerConfig_HTTPServerNoDockerArgs(t *testing.T) { Entrypoint: "/ignored", EntrypointArgs: []string{"ignored"}, Args: []string{"--ignored"}, - Mounts: []string{"/ignored:/ignored"}, Env: map[string]string{ "IGNORED": "ignored", }, diff --git a/internal/config/validation.go b/internal/config/validation.go index 66bb1a52d..ff663eff3 100644 --- a/internal/config/validation.go +++ b/internal/config/validation.go @@ -144,12 +144,16 @@ func validateStandardServerConfig(name string, server *StdinServerConfig, jsonPa } } - // For HTTP servers, url is required + // For HTTP servers, url is required and mounts are not allowed if server.Type == "http" { if server.URL == "" { logValidation.Printf("Validation failed: HTTP server missing url field, name=%s", name) return rules.MissingRequired("url", "HTTP", jsonPath, "Add a 'url' field (e.g., \"https://example.com/mcp\")") } + if len(server.Mounts) > 0 { + logValidation.Printf("Validation failed: HTTP server has mounts field, name=%s", name) + return rules.UnsupportedField("mounts", "mounts are only supported for stdio (containerized) servers", jsonPath, "Remove the 'mounts' field from HTTP server configuration; mounts only apply to stdio servers") + } } logValidation.Printf("Server config validation passed: name=%s", name) diff --git a/internal/config/validation_test.go b/internal/config/validation_test.go index d3c75c852..53cc1ad6c 100644 --- a/internal/config/validation_test.go +++ b/internal/config/validation_test.go @@ -284,6 +284,16 @@ func TestValidateStdioServer(t *testing.T) { }, shouldErr: false, }, + { + name: "http server with mounts should be rejected (T-CFG-019)", + server: &StdinServerConfig{ + Type: "http", + URL: "https://example.com/mcp", + Mounts: []string{"/host/path:/container/path:ro"}, + }, + shouldErr: true, + errorMsg: "mounts are only supported for stdio", + }, { name: "empty type defaults to stdio with container", server: &StdinServerConfig{