+
+ {mcpTool || toolName}
+ via MCP server
+ {mcpConnection && {mcpConnection}}
+
+
+ {lines.length > 0 && (
+
+ {lines.map((line) => (
+
+ {line}
+
+ ))}
+
+ )}
+
+
+ {status === "running" && Running}
+ {status === "completed" && ✓ Done}
+ {failed && ✗ Failed}
+
+
+ {error && (
+
+ {error}
+
+ )}
+
+ );
+}
diff --git a/strix/interface/viewer/frontend/src/components/live/tool-renderers/index.ts b/strix/interface/viewer/frontend/src/components/live/tool-renderers/index.ts
index 67f275fc..a1b81778 100644
--- a/strix/interface/viewer/frontend/src/components/live/tool-renderers/index.ts
+++ b/strix/interface/viewer/frontend/src/components/live/tool-renderers/index.ts
@@ -3,7 +3,7 @@ import type { ToolRendererProps } from "@/types/events";
import {
Terminal, Globe, FileText, ShieldAlert, ArrowUpRight, Brain,
Bot, MessageCircle, Flag, Eye, Search, Code, StickyNote,
- ListTodo, Crosshair, Wrench, Ban, Image,
+ ListTodo, Crosshair, Wrench, Ban, Image, Plug,
} from "lucide-react";
import TerminalRenderer from "./TerminalRenderer";
@@ -25,6 +25,7 @@ import TodoRenderer from "./TodoRenderer";
import FallbackRenderer from "./FallbackRenderer";
import LoadSkillRenderer from "./LoadSkillRenderer";
import RespondRenderer from "./RespondRenderer";
+import McpRenderer from "./McpRenderer";
/**
* Tool-renderer mapping — data-driven, keyed by the engine's tool *family*.
@@ -53,7 +54,8 @@ export type ToolCategory =
| "notes"
| "skills"
| "todos"
- | "telemetry";
+ | "telemetry"
+ | "mcp";
export interface ToolIconMeta {
icon: ComponentType<{ className?: string }>;
@@ -84,6 +86,9 @@ const CATEGORY_META: Record