MCP server for searching and retrieving Mathematica/Wolfram Language documentation and package symbols using wolframscript CLI
The server defines 2 tools with reasonable naming (verb-noun pattern) and decent descriptions. Both tools have complete input schemas with typed parameters and descriptions. However, there are notable gaps: no output schemas documented, error handling lacks recovery guidance, and descriptions could be more concise and LLM-optimized. The server handles a specialized domain (Mathematica documentation) well but lacks the polish expected of production-grade tools.
Get documentation for a Mathematica symbol or function using wolframscript CLI. Can optionally load packages and addons before looking up documentation. Examples: - Basic usage: get_docs("Plot") - With package: get_docs("WeightSystem", packages=["LieART"]) - With addon: get_docs("FCFeynmanParametrize", packages=["FeynCalc"], load_addons=["FeynArts"])
List all available symbols from a specific Mathematica package using wolframscript CLI. Example: - List FeynCalc symbols: list_package_symbols("FeynCalc", load_addons=["FeynArts"])
No output schema documented for either tool. Both return markdown strings, but LLMs cannot plan downstream actions or structure their reasoning without knowing the response format.
Error responses lack recovery guidance. Errors like 'Error executing Mathematica command: [stderr]' or 'No documentation found' do not tell the LLM what to do next (e.g., check if package name is correct, try a related symbol, etc.).
get_docs description includes example values ('Plot', 'WeightSystem', 'FeynCalc') that LLMs may reuse literally instead of adapting to context. Use enum constraints or parameter documentation instead.
Tool descriptions are 200+ characters and somewhat verbose. Baseline for A+ tools is 50-200 chars. Current descriptions at 195 (get_docs) and 156 (list_package_symbols) are borderline but could be tightened for clarity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
No validation constraints on the 'symbol' parameter (e.g., regex, min/max length, allowed characters). Wolframscript injection is possible if users craft malicious input.
No pagination or limits on list_package_symbols output. If a package has hundreds of symbols, the response bloats the context window. Should cap results and provide pagination.