When calling tools with the default values derived from the tools/list schema (e.g., data: [] or data: {}), 9 of 27 tools throw unhandled JavaScript exceptions that propagate as MCP error -32603 with raw stack traces.
Reproduction
Each tool was called via stdio transport with the arguments that tools/list schema suggests as defaults.
| Tool |
Input |
Error |
generate_radar_chart |
data: [{"item":"Speed","score":80}, ...] |
Invalid grid data (crashes even with populated data when field names differ from undocumented expectation) |
generate_fishbone_diagram |
data: {} |
[G6 v5.0.49] The datum does not have available id |
generate_mind_map |
data: {} |
[G6 v5.0.49] The datum does not have available id |
generate_organization_chart |
data: {} |
[G6 v5.0.49] The datum does not have available id |
generate_flow_diagram |
data: {} |
Cannot read properties of undefined (reading 'map') |
generate_network_graph |
data: {} |
Cannot read properties of undefined (reading 'map') |
generate_funnel_chart |
data: [] |
Cannot read properties of undefined (reading 'category') |
generate_venn_chart |
data: [] |
Cannot read properties of undefined (reading 'set') |
generate_district_map |
data: {} |
Cannot read properties of undefined (reading 'includes') |
The remaining 16 tools (line, bar, pie, scatter, column, area, etc.) handle the same empty-input case gracefully.
Note on generate_radar_chart
This tool also crashes when called with populated data using item/score field names. It works with name/value, but the schema does not document which field names are required.
Impact
LLM agents calling these tools receive raw Node.js stack traces instead of actionable isError responses. The agent cannot recover or self-correct from a stack trace.
Environment
@antv/mcp-server-chart (installed via npx -y @antv/mcp-server-chart), macOS, stdio transport.
How it was found
mcp-assert auto-generates test stubs from tools/list with schema-derived default values, then runs them. 11/27 tools failed on the first run (2 were network-dependent map tools, 9 were unhandled exceptions).
When calling tools with the default values derived from the
tools/listschema (e.g.,data: []ordata: {}), 9 of 27 tools throw unhandled JavaScript exceptions that propagate as MCP error -32603 with raw stack traces.Reproduction
Each tool was called via stdio transport with the arguments that
tools/listschema suggests as defaults.generate_radar_chartdata: [{"item":"Speed","score":80}, ...]Invalid grid data(crashes even with populated data when field names differ from undocumented expectation)generate_fishbone_diagramdata: {}[G6 v5.0.49] The datum does not have available idgenerate_mind_mapdata: {}[G6 v5.0.49] The datum does not have available idgenerate_organization_chartdata: {}[G6 v5.0.49] The datum does not have available idgenerate_flow_diagramdata: {}Cannot read properties of undefined (reading 'map')generate_network_graphdata: {}Cannot read properties of undefined (reading 'map')generate_funnel_chartdata: []Cannot read properties of undefined (reading 'category')generate_venn_chartdata: []Cannot read properties of undefined (reading 'set')generate_district_mapdata: {}Cannot read properties of undefined (reading 'includes')The remaining 16 tools (line, bar, pie, scatter, column, area, etc.) handle the same empty-input case gracefully.
Note on
generate_radar_chartThis tool also crashes when called with populated data using
item/scorefield names. It works withname/value, but the schema does not document which field names are required.Impact
LLM agents calling these tools receive raw Node.js stack traces instead of actionable
isErrorresponses. The agent cannot recover or self-correct from a stack trace.Environment
@antv/mcp-server-chart(installed vianpx -y @antv/mcp-server-chart), macOS, stdio transport.How it was found
mcp-assert auto-generates test stubs from
tools/listwith schema-derived default values, then runs them. 11/27 tools failed on the first run (2 were network-dependent map tools, 9 were unhandled exceptions).