|
354 | 354 | (do (try (pp/stop-client-transport! transport false) (catch Exception _)) |
355 | 355 | (if (< attempt max-init-retries) |
356 | 356 | (do (logger/warn logger-tag |
357 | | - (format "MCP server '%s' transport error during initialization (attempt %d/%d), retrying" |
358 | | - name attempt max-init-retries)) |
| 357 | + (format "MCP server '%s' transport error during initialization (attempt %d/%d), retrying" |
| 358 | + name attempt max-init-retries)) |
359 | 359 | (try-refresh-token! name db* url metrics server-config) |
360 | 360 | :retry) |
361 | 361 | (do (logger/error logger-tag (format "MCP server '%s' transport error during initialization" name)) |
|
441 | 441 | (logger/info logger-tag (format "Starting MCP server %s from manual request despite :disabled=true" name))) |
442 | 442 | (initialize-server! name db* config metrics on-server-updated))) |
443 | 443 |
|
| 444 | +(defn ^:private open-browser! [^String url] |
| 445 | + (try |
| 446 | + (if shared/windows-os? |
| 447 | + (-> (ProcessBuilder. ["cmd" "/c" "start" "" url]) |
| 448 | + (.start)) |
| 449 | + (browse/browse-url url)) |
| 450 | + (catch Exception e |
| 451 | + (logger/error logger-tag (str "Failed to open browser: " (.getMessage e)))))) |
| 452 | + |
444 | 453 | (defn connect-server! |
445 | 454 | "Initiate OAuth authorization for an MCP server that requires auth. |
446 | 455 | Starts the local OAuth callback server and returns the authorization URL." |
|
468 | 477 | (logger/error logger-tag error) |
469 | 478 | (swap! db* assoc-in [:mcp-clients name :status] :failed) |
470 | 479 | (on-server-updated (->server name server-config :failed @db*)))}) |
471 | | - (browse/browse-url authorization-endpoint))))) |
| 480 | + (open-browser! authorization-endpoint))))) |
472 | 481 |
|
473 | 482 | (defn ^:private restart-server! |
474 | 483 | "Stop the server if running, then spawn a daemon thread to re-initialize it." |
|
0 commit comments