From 70f5bc34888acaa792bfee97f28e37cdccfbbd65 Mon Sep 17 00:00:00 2001 From: Nirmal Arya Date: Tue, 24 Jun 2025 16:36:35 -0400 Subject: [PATCH] Fix missing mcp-stdio export issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use dynamic import to avoid build-time import errors Add fallback error handling for unsupported environments This should fix both dev server and Docker build issues 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- app/lib/services/mcp.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/lib/services/mcp.ts b/app/lib/services/mcp.ts index 36b4eef7..f371049c 100644 --- a/app/lib/services/mcp.ts +++ b/app/lib/services/mcp.ts @@ -1,7 +1,9 @@ import { experimental_createMCPClient } from 'ai'; -import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio'; import { createScopedLogger } from '~/utils/logger'; +// Dynamic import for stdio transport to avoid build issues +let Experimental_StdioMCPTransport: any; + const logger = createScopedLogger('mcp-service'); // MCP config types @@ -90,9 +92,13 @@ async function createStdioClient(serverName: string, config: ServerConfig): Prom logger.debug(`Creating stdio MCP client for '${serverName}' with command: '${command}' ${args?.join(' ') || ''}`); - // Note: This requires Node.js compatibility in the runtime environment - try { + // Dynamic import to avoid build issues with missing export + if (!Experimental_StdioMCPTransport) { + const module = await import('ai/mcp-stdio'); + Experimental_StdioMCPTransport = module.Experimental_StdioMCPTransport; + } + const transport = new Experimental_StdioMCPTransport({ command: command!, args, @@ -102,6 +108,10 @@ async function createStdioClient(serverName: string, config: ServerConfig): Prom return await experimental_createMCPClient({ transport }); } catch (e) { + // Fallback error message for unsupported environments + if (e instanceof Error && e.message.includes('Missing')) { + throw new Error(`Stdio MCP servers are not supported in this environment. Please use SSE-based servers instead.`); + } throw new Error(`Failed to start command "${command}": ${errorToString(e)}`); } }