math-reasoning-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| parse_latex_to_sympyA | Parses a LaTeX math string into a SymPy expression string, which can be used in other tools. |
| simplify_expressionC | Simplifies a mathematical expression using algebraic identities. |
| solve_equationB | Solves an equation for a given variable. Pass equation as 'lhs - rhs' (set equal to 0) or use Eq(lhs, rhs). |
| differentiateB | Computes the nth-order derivative of an expression with respect to a variable. |
| integrate_expressionA | Computes the indefinite integral of an expression with respect to a variable. |
| evaluate_expressionA | Evaluates a symbolic expression to a numeric result (floating-point). |
| partial_fraction_decompositionB | Performs Partial Fraction Decomposition on a rational function (crucial for inverse transforms). |
| laplace_transform_signalA | Computes the Laplace transform of a causal signal f(t). Returns F(s) and the convergence condition. |
| inverse_laplace_transform_signalB | Computes the Inverse Laplace transform of F(s). Returns f(t). |
| fourier_transform_signalB | Computes the continuous Fourier transform of a signal f(t). Returns F(w). |
| inverse_fourier_transform_signalA | Computes the Inverse Fourier transform of F(w). Returns f(t). |
| continuous_convolutionA | Computes the continuous-time convolution (f * g)(t) for causal signals. Automatically handles Heaviside (unit step) functions. Signals are assumed causal (zero for t < 0) unless they already contain Heaviside terms. |
| z_transform_signalA | Computes the one-sided Z-transform of a discrete signal x[n]. Returns X(z). |
| dtft_signalC | Computes the Discrete-Time Fourier Transform (DTFT) of x[n]. Returns X(W) where W is omega. |
| compute_fftB | Computes the Fast Fourier Transform (FFT) of a discrete numerical sequence using numpy. Returns complex-valued frequency bins. |
| uniform_quantizationA | Simulates uniform quantization of a continuous value. Returns the quantized value, quantization error, step size (Δ), and theoretical maximum SQNR. |
| poles_and_zerosA | Finds the poles and zeros of a system transfer function H(s) or H(z). |
| check_linearityA | Checks if a system is linear using the superposition principle. For system_type='memoryless': expression is in terms of 'x' and optionally 't'. Example: 'x**2', '3x', 'tx + 5' For system_type='difference': expression is a difference equation in terms of 'x_n', 'x_n1' (x[n-1]), 'x_n2' (x[n-2]), 'y_n1' (y[n-1]), etc. Example: 'x_n + x_n1' (y[n] = x[n] + x[n-1]) Returns whether the system is linear with a symbolic proof. |
| check_time_invarianceA | Checks if a system is time-invariant. For system_type='memoryless': expression is in terms of 'x' and 't'. Computes y(t-t0) and T{x(t-t0)} and checks equality. For system_type='difference': expression is in terms of 'x_n', 'x_n1', 'n'. A system depending explicitly on 'n' is time-variant. Computes y[n-n0] and T{x[n-n0]} and checks equality. Returns whether the system is time-invariant with a symbolic proof. |
| step_by_step_laplaceA | Solves the Laplace transform of f(t) step-by-step, showing each transformation property applied (linearity, frequency shift, time multiplication). Returns both the derivation steps and the final answer. |
| step_by_step_algebraA | Solves an equation step-by-step, showing intermediate algebraic manipulations. Returns the solution process including factoring, simplification, and final roots. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Each tool targets a distinct operation or transform family, and the descriptions clearly separate direct computation from step-by-step variants. The main ambiguity is between solve_equation/step_by_step_algebra and laplace_transform_signal/step_by_step_laplace, but the stated outputs make the distinction usable.
Transform and check tool families are consistent (laplace_transform_signal, inverse_laplace_transform_signal, check_linearity, check_time_invariance), but the overall set mixes verb_noun names, bare verbs like differentiate, and noun-phrase names like poles_and_zeros and uniform_quantization. The naming is readable and snake_case throughout, but not a uniform verb_noun pattern.
With 21 tools, the server is on the heavy side and overlaps somewhat with redundant step-by-step variants. Most tools do serve distinct math or signals purposes, but the count sits in the borderline 16-25 range rather than being tightly scoped.
Core algebra, calculus, convolution, and major transforms are covered, including inverse Laplace and Fourier transforms. However, there are notable gaps such as inverse Z-transform, inverse DTFT, definite integration, limits, and series support, which leave dead ends for some signal workflows.