Provides various mathematical operations as tools including arithmetic, statistics, and trigonometric functions
The Math MCP server provides 22 well-structured mathematical tools with consistent naming patterns and clear parameter schemas. All tools follow verb-noun naming (add, subtract, multiply, etc.) and include both tool descriptions and parameter descriptions. However, there are notable gaps: tool descriptions are uniformly brief (10-60 chars), lacking the 50-200 char range recommended for LLM optimization; output schemas are not formally documented (tools return plain text in content arrays rather than structured objects); error handling is absent (no guidance on invalid inputs like division by zero, arcsin/arccos domain violations, or empty arrays); and no security/permission declarations. The parameter descriptions are adequate but could be more precise about constraints (e.g., arcsin/arccos accept only [-1, 1], mode() returns different output structure). STDIO transport caps the protocol readiness score at 50, making this suitable only for local/embedded use.
Adds two numbers together
Calculates the arccosine (in radians) of a number
Calculates the arcsine (in radians) of a number
Calculates the arc tangent of a number in radians
Rounds a number up to the nearest integer
Calculates the cosine of a number in radians
Converts a degree into its equivalent value in radians
Tool descriptions are too brief (10-60 characters). The rubric baseline for production tools is 194 chars average, with target range 50-200 chars for LLM optimization. Current descriptions like 'Adds two numbers together' (27 chars) lack context for tool selection and error recovery.
No error handling or recovery guidance. Division by zero, arcsin/arccos with inputs outside [-1, 1], empty arrays for statistical functions, and zero denominators in modulo are not handled. Error responses should tell the LLM what to do next (pattern:recovery-guide), but currently there are no try-catch blocks or validation messages visible in the tool implementations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Divides the first number by the second number
Rounds a number down to the nearest integer
Finds the maximum value from a list of numbers
Calculates the arithmetic mean of a list of numbers
Calculates the median of a list of numbers
Finds the minimum value from a list of numbers
Finds the most common number in a list of numbers
Divides two numbers and returns the remainder
Multiplies two numbers together
Converts a radian into its equivalent value in degrees
Rounds a number to the nearest integer
Calculates the sine of a number in radians
Subtracts the second number from the first number
Adds any number of numbers together
Calculates the tangent of a number in radians
Output schemas not formally documented. Tools return unstructured text in content arrays (e.g., `{content: [{type: 'text', text: '5'}]}`) rather than structured objects. The rubric requires documented output schemas (pattern:tool) so LLMs know what fields to expect and can plan downstream operations. mode() returns different structure ('Entries (1, 2) appeared 3 times') compared to arithmetic tools.
Inverse trigonometric functions (arcsin, arccos) lack domain constraint documentation. Parameters should state 'number must be in range [-1, 1]' to guide LLMs and prevent invalid calls. Currently descriptions only say 'The number to find the arcsine of' without this critical constraint.
Array-accepting tools (sum, mean, median, mode, min, max) have inconsistent min/max constraints. sum, mean, median use .min(1) (require at least 1 element), but mode and min/max do not declare array constraints. This inconsistency forces the LLM to guess whether empty arrays are valid.
No security/permission declarations. The rubric (pattern:scope-declaration) requires tools to declare required permissions (e.g., 'read:math', 'compute:statistics'). This server has no such declarations, preventing least-privilege agent configurations.