A demonstration client that connects to Pearl's MCP (Model Context Protocol) server via SSE transport to enable agents to ask legal experts for second opinions
This is a client demo that wraps a remote MCP server (Pearl API). The single tool 'askExpert' is NOT defined in the source code provided, it is dynamically fetched from the remote MCP server via `await mcp_server.list_tools()`. The source shows only a client implementation that instantiates an Agent and calls the remote server's tools. No tool definitions, input schemas, or parameter descriptions are visible in the codebase. The description provided in the evaluation metadata ('Ask a legal expert for a second opinion on a legal question or answer') is extremely generic and does NOT come from the source code, it appears to be editorial annotation. Without seeing actual input/output schemas, parameter definitions, or explicit tool registration in the source, the tool receives a failing score.
Ask a legal expert for a second opinion on a legal question or answer
Tool definition not visible in source code. The tool 'askExpert' is dynamically fetched from a remote MCP server via list_tools(). No explicit tool registration, input schema, or parameter documentation exists in the provided codebase.
No input schema provided or visible. Cannot verify parameter names, types, descriptions, enums, or constraints.
No tool description in source code. The description is inferred from metadata, not from actual tool definition.
No output schema documented. LLM cannot know what fields to expect from the response or plan downstream calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 27 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance. If the remote API fails or returns an error, there is no recovery guidance for the LLM (e.g., 'Try rephrasing your question' or 'Expert service unavailable, try again later').
No parameter documentation visible. Cannot verify if parameters have descriptions, type constraints, or human-friendly identifier support. The LLM has no guidance on what inputs are expected.