From 4cbd84edb86352a70e61ad1d34dbe361a83a5c20 Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Fri, 2 Jan 2026 12:27:12 +1000 Subject: [PATCH] fix: use hardcoded sandbox URL in MCP handler --- apps/web/src/lib/mcp/handlers.ts | 51 +++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/apps/web/src/lib/mcp/handlers.ts b/apps/web/src/lib/mcp/handlers.ts index 63b8eed..5ee5984 100644 --- a/apps/web/src/lib/mcp/handlers.ts +++ b/apps/web/src/lib/mcp/handlers.ts @@ -1,8 +1,44 @@ import { prisma } from '@tpmjs/db'; -import { executePackage } from '@tpmjs/package-executor'; import { convertToMcpTool, parseToolName } from './tool-converter'; +const SANDBOX_URL = 'https://executor.tpmjs.com'; + +interface ExecutionResult { + success: boolean; + output?: unknown; + error?: string; + executionTimeMs?: number; +} + +async function executePackageDirect( + packageName: string, + toolName: string, + params: Record +): Promise { + try { + const response = await fetch(`${SANDBOX_URL}/execute-tool`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + packageName, + name: toolName, + version: 'latest', + params, + }), + }); + + if (!response.ok) { + const text = await response.text(); + return { success: false, error: `Sandbox error ${response.status}: ${text}` }; + } + + return await response.json(); + } catch (error) { + return { success: false, error: error instanceof Error ? error.message : String(error) }; + } +} + type JsonRpcId = string | number | null; interface JsonRpcResponse { @@ -101,13 +137,12 @@ export async function handleToolsCall( }; } - // Execute via sandbox - console.log('[MCP] Executing tool:', parsed.packageName, parsed.toolName); - console.log('[MCP] SANDBOX_EXECUTOR_URL:', process.env.SANDBOX_EXECUTOR_URL); - const result = await executePackage(parsed.packageName, parsed.toolName, params.arguments ?? {}, { - timeout: 30000, - }); - console.log('[MCP] Result:', JSON.stringify(result)); + // Execute via sandbox (direct call with hardcoded URL) + const result = await executePackageDirect( + parsed.packageName, + parsed.toolName, + params.arguments ?? {} + ); if (!result.success) { return {