From 2048a877f7c2df543061349a61fecbc2ea85cddb Mon Sep 17 00:00:00 2001 From: IYODA Atsushi Date: Sun, 15 Feb 2026 04:42:21 +0900 Subject: [PATCH] refactor(mcp-oauth): delegate port utilities to shared/port-utils --- src/features/mcp-oauth/callback-server.ts | 25 +++-------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/features/mcp-oauth/callback-server.ts b/src/features/mcp-oauth/callback-server.ts index 3f201202..c8d856fa 100644 --- a/src/features/mcp-oauth/callback-server.ts +++ b/src/features/mcp-oauth/callback-server.ts @@ -1,5 +1,6 @@ +import { findAvailablePort as findAvailablePortShared } from "../../shared/port-utils" + const DEFAULT_PORT = 19877 -const MAX_PORT_ATTEMPTS = 20 const TIMEOUT_MS = 5 * 60 * 1000 export type OAuthCallbackResult = { @@ -33,28 +34,8 @@ const SUCCESS_HTML = ` ` -async function isPortAvailable(port: number): Promise { - try { - const server = Bun.serve({ - port, - hostname: "127.0.0.1", - fetch: () => new Response(), - }) - server.stop(true) - return true - } catch { - return false - } -} - export async function findAvailablePort(startPort: number = DEFAULT_PORT): Promise { - for (let attempt = 0; attempt < MAX_PORT_ATTEMPTS; attempt++) { - const port = startPort + attempt - if (await isPortAvailable(port)) { - return port - } - } - throw new Error(`No available port found in range ${startPort}-${startPort + MAX_PORT_ATTEMPTS - 1}`) + return findAvailablePortShared(startPort) } export async function startCallbackServer(startPort: number = DEFAULT_PORT): Promise {