diff --git a/src/services/tools/toolExecution.ts b/src/services/tools/toolExecution.ts index d2d6d90..ccf98a8 100644 --- a/src/services/tools/toolExecution.ts +++ b/src/services/tools/toolExecution.ts @@ -1473,10 +1473,8 @@ async function checkPermissionsAndCallTool( }) } - // TOOD(hackyon): refactor so we don't have different experiences for MCP tools - if (!isMcpTool(tool)) { - await addToolResult(toolOutput, mappedToolResultBlock) - } + // All tools get the same rendering path — no MCP/built-in bifurcation + await addToolResult(toolOutput, mappedToolResultBlock) const postToolHookInfos: StopHookInfo[] = [] const postToolHookStart = Date.now() @@ -1537,10 +1535,6 @@ async function checkPermissionsAndCallTool( ) } - if (isMcpTool(tool)) { - await addToolResult(toolOutput) - } - // Show PostToolUse hook timing inline below tool result when > 500ms. // Use wall-clock time (not sum of individual durations) since hooks run in parallel. if (process.env.USER_TYPE === 'ant' && postToolHookInfos.length > 0) { diff --git a/src/tools/MCPTool/MCPTool.ts b/src/tools/MCPTool/MCPTool.ts index 3896868..9f80983 100644 --- a/src/tools/MCPTool/MCPTool.ts +++ b/src/tools/MCPTool/MCPTool.ts @@ -15,7 +15,7 @@ export const inputSchema = lazySchema(() => z.object({}).passthrough()) type InputSchema = ReturnType export const outputSchema = lazySchema(() => - z.string().describe('MCP tool execution result'), + z.any().describe('MCP tool execution result'), ) type OutputSchema = ReturnType