MCP server providing symbolic mathematics capabilities via SymPy, exposed through the Model Context Protocol with HTTP streaming transport
SymPy MCP server has well-structured tool definitions with complete JSON schemas and clear descriptions. All 8 tools follow verb_noun naming (sympy_solve, sympy_simplify, etc.) and include parameter descriptions. However, descriptions are minimal (10-50 chars), lacking context on WHEN to use each tool or dependencies between them. Parameter descriptions are present but terse. No output schema documentation visible. Error handling is basic, no recovery guidance or actionable error messages. Tool #8 (sympy_list_operations) is a discovery tool but lacks explanation of when/why to call it. No tool annotations (readOnlyHint, destructiveHint) despite all tools being read-only.
Computes the derivative of an expression using SymPy
Evaluates a symbolic expression numerically using SymPy
Expands a symbolic expression using SymPy
Factors a symbolic expression using SymPy
Computes the integral of an expression using SymPy
Returns the list of available SymPy tool names (solve, simplify, differentiate, integrate, expand, factor, evaluate). Use this to discover what operations this server supports.
Simplifies a symbolic expression using SymPy
Tool descriptions are too brief (10-50 chars). Lack context on WHEN to use each tool, prerequisites, or how they differ. LLMs cannot reliably select the right tool without richer guidance.
No output schema documentation. Tools return results but LLMs cannot plan downstream calls or extract structured data without knowing the response format (list of strings, objects with fields, etc.).
No tool annotations despite all tools being read-only. Missing readOnlyHint in tool definitions prevents agents from understanding safety properties and planning accordingly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Solves a symbolic equation for a variable using SymPy
Error handling lacks recovery guidance. Code shows mock fallback and Pythonx failures but no user-facing error messages that tell LLMs what to do next (retry, try alternative tool, ask user).
sympy_list_operations is a discovery tool but lacks explanation of when/why to call it. Description does not guide LLMs on whether to invoke it proactively or only on user request.