An MCP server for checking dimensional consistency of physics equations, listing available physical units and constants, and validating equation syntax and units
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. check_equation has a single string parameter with minimal guidance on format/constraints. add_custom_variable has two parameters but lacks validation rules, format constraints, and error recovery guidance. Neither tool documents output schema structure. Descriptions are present but generic (194-char baseline suggests room for improvement). No tool annotations (readOnlyHint/destructiveHint). Error handling is absent, no guidance on what happens if equation parsing fails or custom variable syntax is invalid.
Add a custom variable to the context for equation checking. Args: name: Variable name (e.g., 'g', 'A', 'rho') unit: Unit expression (e.g., '9.81*meter/second**2', 'meter**2', 'kilogram/meter**3') Examples: add_custom_variable("g", "9.81*meter/second**2") # Gravitational acceleration add_custom_variable("A", "meter**2") # Area add_custom_variable("rho", "kilogram/meter**3") # Density
Check if a physics equation is dimensionally consistent. Examples: - "F = m * a" (Newton's second law) - "E = m * c**2" (Einstein's mass-energy equivalence) - "V = I * R" (Ohm's law) - "d = v * t" (distance = velocity * time) - "g = 9.81 * meter/second**2" (custom gravitational acceleration)
No output schema documented for either tool. LLMs cannot plan downstream calls or extract structured data without knowing return fields.
check_equation parameter 'equation' lacks format constraints. No guidance on syntax (e.g., 'F = m * a' vs 'F=m*a'), variable naming rules, or operator precedence. LLMs will guess.
add_custom_variable 'unit' parameter has no validation rules. Description mentions examples like '9.81*meter/second**2' but does not specify allowed operators, unit names, or error cases (e.g., invalid unit name).
No error handling or recovery guidance. If equation parsing fails (e.g., malformed syntax, undefined variable), the tool provides no actionable error message or next steps for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Missing tool annotations. add_custom_variable is marked WRITE but has no destructiveHint. check_equation is READ_ONLY but has no readOnlyHint annotation in schema.