LiveAgent is a desktop and web-based agent application with gateway support, featuring project tools, terminal sessions, and chat capabilities.
LiveAgent exposes 8 tools, but most are React hooks and internal utilities rather than MCP-style agent tools. Only 2 tools (submitToolApprovalDecision, registerToolApprovalDecisionHandler) appear to be callable operations; the rest are React hooks (useGatewayProjectTools, useProjectToolsRuntime) or utility functions (recoverAssistantSeedToolCalls, stripSeedToolCallMarkup, comparableToolCall, wrapStreamWithToolCallArgumentGuard). React hooks are not MCP tools, they are UI state management. The callable tools lack proper input schemas (parameters are described as objects without type definitions), lack error handling guidance, and lack output schema documentation. No tool has a description exceeding 20 characters that explains WHEN to use it or WHAT it returns. This is not a functional MCP server; it is a React component library.
Generates a stable comparison key for a tool call based on its name and canonicalized arguments for deduplication purposes.
Recovers tool calls from seed markup in assistant messages, parsing XML-formatted tool call definitions and deduplicating against existing structured tool calls.
Registers or unregisters a handler function for tool approval decisions at the module level.
Removes seed tool call markup from text without parsing or recovering the tool calls.
Submits a tool approval decision for a specific tool call, routing to the current displayed conversation or a specified conversation ID.
React hook that provides project tools runtime, terminal sessions, file tree state, SSH tunnel management, and composer actions for the gateway web UI.
React hook that manages terminal sessions, workspace overlays, and project-specific terminal session state for the project tools runtime.
No input schemas with type definitions. All 8 tools describe parameters as generic 'object' or 'function' without JSON Schema types (string, number, boolean, array). Violates pattern:constrained-input and pattern:tool-description.
6 of 8 tools are React hooks, not callable MCP tools. useGatewayProjectTools, useProjectToolsRuntime, recoverAssistantSeedToolCalls, stripSeedToolCallMarkup, comparableToolCall, wrapStreamWithToolCallArgumentGuard are utility functions for UI state management, not agent-callable operations. They cannot be invoked by an LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
Wraps an AssistantMessageEventStream to detect and report tool calls with incomplete argument JSON that would be silently repaired into incorrect values.
No output schemas documented. None of the 8 tools specify what they return, what fields are in the response, or what structure the LLM should expect. Violates pattern:tool and pattern:response-shaper.
Descriptions are generic and under 20 characters. E.g. 'Registers or unregisters a handler function' (48 chars) does not explain WHEN to call it, WHAT it does, or WHY an agent would use it. No descriptions answer: What does it do? When should the LLM call it? What does it return?
No error handling or recovery guidance. None of the tools document what errors can occur, how to classify them (retryable vs fatal), or what the LLM should do next. Violates pattern:recovery-guide.