Skip to content
This repository was archived by the owner on Jun 29, 2025. It is now read-only.

Commit 7fc6e60

Browse files
authored
Merge pull request #3 from rene-post/main
Fix bug in handling --bearer-token and --basic-auth, plus join url components correctly
2 parents b228d1c + 53f12d5 commit 7fc6e60

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

cmd/openapi-mcp/flags.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ func parseFlags() *cliFlags {
7373
flags.machine = true
7474
flag.StringVar(&flags.apiKeyFlag, "api-key", "", "API key for authenticated endpoints (overrides API_KEY env)")
7575
flag.StringVar(&flags.baseURLFlag, "base-url", "", "Override the base URL for HTTP calls (overrides OPENAPI_BASE_URL env)")
76-
flag.StringVar(&flags.bearerToken, "bearer-token", os.Getenv("BEARER_TOKEN"), "Bearer token for Authorization header (overrides BEARER_TOKEN env)")
77-
flag.StringVar(&flags.basicAuth, "basic-auth", os.Getenv("BASIC_AUTH"), "Basic auth (user:pass) for Authorization header (overrides BASIC_AUTH env)")
76+
flag.StringVar(&flags.bearerToken, "bearer-token", "", "Bearer token for Authorization header (overrides BEARER_TOKEN env)")
77+
flag.StringVar(&flags.basicAuth, "basic-auth", "", "Basic auth (user:pass) for Authorization header (overrides BASIC_AUTH env)")
7878
flag.StringVar(&flags.httpAddr, "http", "", "Serve over HTTP on this address (e.g., :8080). For MCP server: serves tools via HTTP. For validate/lint: creates REST API endpoints.")
7979
flag.StringVar(&flags.httpTransport, "http-transport", "streamable", "HTTP transport to use for MCP server: 'streamable' (default) or 'sse'")
8080
flag.StringVar(&flags.includeDescRegex, "include-desc-regex", "", "Only include APIs whose description matches this regex (overrides INCLUDE_DESC_REGEX env)")
@@ -109,6 +109,12 @@ func setEnvFromFlags(flags *cliFlags) {
109109
if flags.baseURLFlag != "" {
110110
os.Setenv("OPENAPI_BASE_URL", flags.baseURLFlag)
111111
}
112+
if flags.bearerToken != "" {
113+
os.Setenv("BEARER_TOKEN", flags.bearerToken)
114+
}
115+
if flags.basicAuth != "" {
116+
os.Setenv("BASIC_AUTH", flags.basicAuth)
117+
}
112118
if flags.includeDescRegex != "" {
113119
os.Setenv("INCLUDE_DESC_REGEX", flags.includeDescRegex)
114120
}

pkg/openapi2mcp/register.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,10 @@ func RegisterOpenAPITools(server *mcpserver.MCPServer, ops []OpenAPIOperation, d
11211121
}
11221122
// Pick a random baseURL for each call using the global rand
11231123
baseURL := baseURLs[rand.Intn(len(baseURLs))]
1124-
fullURL := baseURL + path
1124+
fullURL, err := url.JoinPath(baseURL, path)
1125+
if err != nil {
1126+
return nil, err
1127+
}
11251128
if len(query) > 0 {
11261129
fullURL += "?" + query.Encode()
11271130
}

0 commit comments

Comments
 (0)