Headless home page for the relationship banker. Integrates with Salesforce CRM, Data Cloud, Tableau, and Heroku Inference via MCP servers for agent-driven actions and analysis.
Critical gaps across all dimensions. Tool definitions are inferred from Next.js route handlers rather than explicit MCP registration. No visible input schemas for most tools, only 1 of 5 tools (get_semantic_model) has a documented parameter. Descriptions are present but generic and lack LLM-optimization guidance. No output schemas documented. No error handling patterns visible. The server acts as a Next.js HTTP wrapper around Tableau/Salesforce APIs rather than a proper MCP tool server with formal schema definitions.
Analyze data via Tableau semantic models. Called by the analyze agent to execute queries and generate visualizations.
Detailed profile of a single semantic model. Thin wrapper around get_semantic_model. Flattens the ~56KB raw response down to SemanticModelProfile (10 fields).
Full metric definition. Powers the T2-5 governance drawer. Flattens the raw Tableau response into banker-readable fields + preserves the raw blob so the "Show raw" toggle can surface everything.
Named business metrics for a single semantic model. Proxies list_semantic_model_metrics.
List semantic models the banker can query. Proxies list_semantic_models on the Tableau Next MCP.
No input schemas visible for 4 of 5 tools. Only get_semantic_model shows a parameter definition; list_semantic_models, list_semantic_model_metrics, get_semantic_model_metric, and analyze_data have empty or missing input schemas.
Tool definitions inferred from Next.js route handlers, not explicit MCP tool registration. No visible @mcp/sdk Tool registration with formal schemas.
Descriptions lack LLM-optimization. 'List semantic models the banker can query' (45 chars) and 'Analyze data via Tableau semantic models' (40 chars) are below the 50-200 char baseline for A+ tools. Missing WHEN to use, prerequisites, and expected output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. get_semantic_model mentions 'Flattens ~56KB response to SemanticModelProfile (10 fields)' but the 10 fields are not listed or typed.
No error handling patterns visible. No recovery guidance, error classification, or actionable error messages. Agents cannot distinguish retryable vs fatal failures or know what to do next on error.