Model Context Protocol server for GeoGebra mathematical visualization
The GeoGebra MCP server has 8 tools with basic schemas and descriptions, but exhibits significant quality gaps. Tool naming is inconsistent (mixing verb-noun patterns with underscores and suffixes). Most descriptions are present but lack the depth needed for LLM tool selection guidance. Critical issues: (1) Several tools have vague or minimal descriptions (e.g., 'ping' is trivial); (2) Parameter descriptions are missing or incomplete across multiple tools; (3) Output schemas are not documented in the visible code; (4) Error handling guidance is absent; (5) The server relies on internal validation functions whose constraints are not exposed in parameter descriptions. The performance_* tools show better structure (enums, ranges) but lack context on when/why to use them. The core GeoGebra tools (echo, ping, server_info) are utility-level and do not represent meaningful domain functionality. Per-tool scores average 41.6, placing this server in the 'D' tier (Poor).
Echo back the provided message
Run performance benchmark tests
Clear all performance metrics (useful for testing)
Get instance pool performance and resource statistics
Get performance statistics for operations
Pre-warm the instance pool for better performance
Simple ping tool that returns pong
Tool descriptions lack context for LLM selection. 'Simple ping tool that returns pong' (11 chars) and 'Get information about the MCP server' (37 chars) do not answer: WHEN to call this tool, WHAT makes it distinct from similar tools, or WHY an agent would invoke it. Baseline is 50-200 chars with actionable context.
Output schemas are not documented. No visible JSON Schema definitions for what any tool returns. LLMs cannot plan downstream calls or extract relevant fields without knowing response structure. All 8 tools lack return type documentation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 36 | 2024-11-05+ | v1 |
Get information about the MCP server
Parameter descriptions are missing or incomplete. 'operationName' in performance_get_stats lacks guidance on valid operation names or how they map to internal commands. performance_benchmark's 'testType' enum is present but lacks description text explaining what each test does (basic vs command_execution vs export_operations distinctions).
No error handling guidance. Tools do not describe what errors can occur, how to recover, or what the LLM should do next. Code references validation functions (validateObjectName, validateCoordinates, validateRadius, etc.) but these constraints are never exposed in tool descriptions or parameter schemas.
Utility tools (echo, ping, server_info) are low-value and inflate tool count without domain purpose. 'echo' is a testing tool with trivial functionality. 'ping' has the same behavior as MCP protocol-level ping. These should be removed or clearly marked as development-only, not advertised to agents.
Naming is inconsistent. Tools use verb_snake_case (performance_get_stats) but lack clarity on composition. 'performance_' prefix groups related tools but obscures what they collectively do. No human-readable summary of GeoGebra domain tools, the code references geogebra-tools.ts but no GeoGebra-specific tools are registered (only performance monitoring tools visible).