MCP Apps server for rendering ECharts visualizations from structured tool arguments.
18 tools with consistent naming (verb_noun pattern: echart_mcp_view_app_*) and descriptions present. However, parameter schemas lack critical detail: 'data' and 'encoding' fields have no type definitions, only descriptions. No output schemas documented. Error handling exists but generic. Tool descriptions are adequate (100-150 chars) but lack WHEN/WHY guidance. Parameters missing type constraints (e.g., chartType not enumerated). Composition is sound, each tool does one thing, but schema incompleteness and missing output documentation prevent higher scores.
Open Bar chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Boxplot chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
App-only helper that validates chart input and returns a table view model or ECharts option for the current MCP App payload.
Open Candlestick chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
App-only helper that returns reusable example inputs for one chart type or every supported chart type.
Open Funnel chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Gauge chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Critical: 'data' and 'encoding' parameters lack type definitions. Schema shows only descriptions, no 'type' field. Affects all 16 chart tools.
High: No output schemas documented. LLMs cannot plan downstream calls or extract results. Rubric baseline: 100% of A+ tools have documented return types.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2025-06-18+ | v2 |
Open Graph chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Heatmap chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Line chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Mixed chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Pie chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Radar chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Sankey chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Scatter chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Table chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Tree chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
Open Treemap chart app. Use top-level title/subtitle; data holds rows, tree, or nodes/links; encoding maps fields.
High: 'chartType' parameter in build_option and examples tools not enumerated. LLMs will hallucinate invalid chart types. Should enumerate: line, bar, pie, scatter, radar, heatmap, funnel, gauge, tree, treemap, graph, sankey, candlestick, boxplot, mixed, table.
Medium: Descriptions lack WHEN/WHY guidance. E.g., 'Open Line chart app' does not explain when to use line vs bar vs scatter. Rubric baseline: descriptions should state WHAT, WHEN, and prerequisites.
Medium: Error handling in toolError() returns generic 'chart_error' code. Expected rows array or tree structure.' Actionable errors enable LLM self-correction.