diff --git a/src/components/tool-select-dropdown.tsx b/src/components/tool-select-dropdown.tsx index 44f0ee2b9..8c79f5695 100644 --- a/src/components/tool-select-dropdown.tsx +++ b/src/components/tool-select-dropdown.tsx @@ -155,10 +155,12 @@ export function ToolSelectDropdown({ const defaultTools = Object.values(AppDefaultToolkit) .filter((t) => allowedAppDefaultToolkit?.includes(t)) .map((t) => translate[t]); - const mcpIds = mcpList.map((v) => v.id); + const availableMcpIds = mcpList + .filter((v) => v.status !== "authorizing") + .map((v) => v.id); const mcpTools = Object.values( objectFlow(allowedMcpServers ?? {}).filter((_, id) => - mcpIds.includes(id), + availableMcpIds.includes(id), ), ) .map((v) => v.tools) diff --git a/src/lib/ai/mcp/create-mcp-clients-manager.ts b/src/lib/ai/mcp/create-mcp-clients-manager.ts index a15667240..bb7dbc87b 100644 --- a/src/lib/ai/mcp/create-mcp-clients-manager.ts +++ b/src/lib/ai/mcp/create-mcp-clients-manager.ts @@ -113,6 +113,7 @@ export class MCPClientsManager { await this.waitInitialized(); return Array.from(this.clients.entries()).reduce( (acc, [id, client]) => { + if (client.client?.status === "authorizing") return acc; if (!client.client?.toolInfo?.length) return acc; const clientName = client.name; return {