A Model Context Protocol server for generating mathematical visualizations using JSXGraph. This is a TypeScript-based MCP server that provides interactive mathematical chart generation capabilities for functions, geometry, parametric curves, and more.
The server defines 14 mathematical visualization tools with reasonable naming (verb_noun pattern: generate_*) and detailed descriptions (100-200 chars). However, schema quality is inconsistent: while input parameters are described, the actual JSON Schema validation relies on inferred Zod schemas from imports rather than explicit in-source schema definitions. Output schemas are entirely undocumented, callers cannot predict the structure of returned JavaScript code. Parameter descriptions are adequate but lack format constraints (e.g., valid values for array elements, numeric ranges). Error handling is basic (relies on McpError throwing rather than structured recovery guidance). No tool annotations present (readOnlyHint, idempotentHint). The tool composition is sound (each tool does one thing), but the lack of explicit schema visibility and output documentation prevents a higher score.
Generate conic sections and high-degree polynomials using JSXGraph. Visualize circles, ellipses, parabolas, hyperbolas with their foci, directrices, vertices, and asymptotes. Plot polynomials with roots, critical points, and inflection points. Supports general conic equations, rotated conics, and intersection analysis.
Generate systems of equations visualization using JSXGraph. Solve and visualize linear and nonlinear equation systems, find intersection points, show solution sets, and analyze system properties. Supports implicit equations, parametric systems, numerical solutions, and advanced analysis including matrix representation and phase portraits.
Generate exponential and logarithmic function visualizations using JSXGraph. Plot exponential growth/decay, logarithmic functions with various bases, show asymptotes, intercepts, inverse relationships, and growth/decay analysis. Supports logarithmic scales and tangent lines.
Generate function graph visualizations using JSXGraph. Plot mathematical functions, show derivatives, integrals, tangent lines, critical points, and inflection points. Supports function composition, transformations, and asymptote detection.
Generate function transformation visualizations using JSXGraph. Show original and transformed functions with translations, reflections, stretches, and compressions.
No output schemas documented for any tool. All tools return JavaScript code as unstructured text, but there is no specification of structure, format, or expected content model for downstream processing.
Input parameter schemas are not explicitly visible in source code. While Zod validation occurs in callTool(), the actual schema definitions are imported from '../jsxgraph' modules and not shown. Per scoring rules, inferred schemas cap tool scores at 50 unless explicit definitions are present.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 25 | - | v1 |
Generate interactive geometry diagrams using JSXGraph. Create points, lines, circles, polygons, and explore geometric properties and relationships.
Generate linear system visualizations using JSXGraph. Solve and visualize systems of linear equations, show solution regions, matrix representations, and system properties.
Generate number line inequality visualizations using JSXGraph. Visualize inequalities on a number line, show solution sets, compound inequalities, and interval notation.
Generate parametric curve visualizations using JSXGraph. Plot curves defined by parametric equations x(t) and y(t), show velocity vectors, animate curves, and analyze curve properties.
Generate step-by-step polynomial visualization using JSXGraph. Show polynomial construction, expansion, factorization with interactive step navigation.
Generate quadratic function analysis visualizations using JSXGraph. Analyze quadratic functions, show vertex, axis of symmetry, roots, focus, directrix, and transformation analysis.
Generate rational function visualizations using JSXGraph. Plot rational functions, show asymptotes, holes, vertical and oblique asymptotes, end behavior, and function analysis.
Generate trigonometric function analysis visualizations using JSXGraph. Plot trigonometric functions, show unit circle, periodic properties, amplitude, period, phase shift, and transformations.
Generate vector field visualizations using JSXGraph. Visualize 2D vector fields, show flow lines, equilibrium points, and vector field properties.
Parameter type constraints are missing. Array parameters (functions, curves, equations) lack descriptions of valid element structure. Numeric parameters (width, height, gridDensity) lack min/max bounds. LLMs cannot reason about valid input ranges.
No tool annotations present. None of the tools declare readOnlyHint, idempotentHint, or destructiveHint. These hints are critical for LLM planning, agents need to know which tools have side effects.
Error handling does not provide recovery guidance. callTool() throws McpError for invalid params but does not suggest corrections or valid alternatives. LLMs cannot self-correct on parameter mismatches.
Parameter description clarity: 'Array of function objects to plot' lacks specifics on what constitutes a 'function object' (is it a string expression like 'x^2'? an object with {expr, color}? a function type?). Similar ambiguity in curves, equations, elements across multiple tools.