@@ -33,56 +33,55 @@ func IsHTTP(str string) bool {
3333// It returns the header value and a cleaned URL (with embedded credentials removed).
3434func buildAuthHeader (originalURL string ) (string , string , error ) {
3535 cleanURL := originalURL
36-
36+
3737 // First, check if we have explicit auth-user flag with username:password format
3838 if AuthUser != "" {
3939 // Parse username:password format
4040 if ! strings .Contains (AuthUser , ":" ) {
4141 return "" , originalURL , fmt .Errorf ("auth-user must be in username:password format (missing colon)" )
4242 }
43-
43+
4444 parts := strings .SplitN (AuthUser , ":" , 2 )
4545 username := parts [0 ]
4646 password := parts [1 ]
47-
47+
4848 // Allow empty username or password, but not both
49- if username == "" && password == "" {
50- // Both empty, treat as no auth
51- } else {
49+ if username != "" || password != "" {
5250 // Create basic auth header
5351 auth := base64 .StdEncoding .EncodeToString ([]byte (username + ":" + password ))
5452 header := "Basic " + auth
5553 return header , cleanURL , nil
5654 }
55+ // Both empty, treat as no auth - fall through
5756 }
58-
57+
5958 // Check for custom auth header
6059 if AuthHeader != "" {
6160 return AuthHeader , cleanURL , nil
6261 }
63-
62+
6463 // Extract credentials from URL if embedded
6564 parsedURL , err := url .Parse (originalURL )
6665 if err != nil {
6766 return "" , originalURL , err
6867 }
69-
68+
7069 if parsedURL .User != nil {
7170 username := parsedURL .User .Username ()
7271 password , _ := parsedURL .User .Password ()
73-
72+
7473 if username != "" {
7574 // Create basic auth header
7675 auth := base64 .StdEncoding .EncodeToString ([]byte (username + ":" + password ))
77-
76+
7877 // Clean the URL by removing user info
7978 parsedURL .User = nil
8079 cleanURL = parsedURL .String ()
81-
80+
8281 return "Basic " + auth , cleanURL , nil
8382 }
8483 }
85-
84+
8685 return "" , cleanURL , nil
8786}
8887
@@ -106,7 +105,7 @@ var CreateClientFunc = func(args []string, _ ...client.ClientOption) (*client.Cl
106105
107106 if len (args ) == 1 && IsHTTP (args [0 ]) {
108107 // Validate transport option for HTTP URLs
109- if TransportOption != "http" && TransportOption != "sse" {
108+ if TransportOption != TransportHTTP && TransportOption != TransportSSE {
110109 return nil , fmt .Errorf ("invalid transport option: %s (supported: http, sse)" , TransportOption )
111110 }
112111
@@ -128,7 +127,7 @@ var CreateClientFunc = func(args []string, _ ...client.ClientOption) (*client.Cl
128127 // Many MCP servers require clients to accept both JSON responses and event streams
129128 headers ["Accept" ] = "application/json, text/event-stream"
130129
131- if TransportOption == "sse" {
130+ if TransportOption == TransportSSE {
132131 // For SSE transport, use transport.ClientOption
133132 c , err = client .NewSSEMCPClient (cleanURL , transport .WithHeaders (headers ))
134133 } else {
0 commit comments