Educational MCP server with 12 math/stats tools, visualizations, and persistent workspace
healthy
status
17
tools exposed
604ms
connect latency
fd250028ae15
schema fingerprint
Tools (17)
calc_expression
Safely evaluate mathematical expressions with support for basic operations and math functions.
Supported operations: +, -, *, /, **, ()
Supported functions: sin, cos, tan, log, sqrt, abs, pow
Note:
Use this tool to evaluate a single mathematical expression. To compute descriptive statistics ov
calc_statistics
Perform statistical calculations on a list of numbers.
Available operations: mean, median, mode, std_dev, variance
Note:
Use this tool to compute descriptive statistics over a list of numbers. To evaluate a single mathematical expression, use the calculate tool instead.
Examples:
statisti
calc_interest
Calculate compound interest for investments.
Formula: A = P(1 + r/n)^(nt)
Where:
- P = principal amount
- r = annual interest rate (as decimal)
- n = number of times interest compounds per year
- t = time in years
Examples:
compound_interest(10000, 0.05, 5) # $10,000 at 5% for 5 years → $12,7
calc_units
Convert between different units of measurement.
Supported unit types:
- length: mm, cm, m, km, in, ft, yd, mi
- weight: g, kg, oz, lb
- temperature: c, f, k (Celsius, Fahrenheit, Kelvin)
Examples:
convert_units(5, "km", "mi", "length") # 5 kilometers → 3.11 miles
convert_units(150, "lb",
matrix_multiply
Multiply two matrices (A × B).
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]])
matrix_multiply([[1, 2, 3]], [[1], [2], [3]])
matrix_transpose
Transpose a matrix (swap rows and columns).
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_transpose([[1, 2, 3], [4, 5, 6]])
matrix_transpose([[1], [2], [3]])
matrix_determinant
Calculate the determinant of a square matrix.
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_determinant([[1, 2], [3, 4]])
matrix_determinant([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) # Identity matrix
matrix_inverse
Calculate the inverse of a square matrix.
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_inverse([[1, 2], [3, 4]])
matrix_inverse([[2, 0], [0, 2]]) # Diagonal matrix
matrix_eigenvalues
Calculate the eigenvalues of a square matrix.
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_eigenvalues([[4, 2], [1, 3]])
matrix_eigenvalues([[3, 0, 0], [0, 5, 0], [0, 0, 7]]) # Diagonal matrix
workspace_save
Save calculation to persistent workspace (survives restarts).
Examples:
save_calculation("portfolio_return", "10000 * 1.07^5", 14025.52)
save_calculation("circle_area", "pi * 5^2", 78.54)
workspace_load
Load previously saved calculation result from workspace.
Examples:
load_variable("portfolio_return") # Returns saved calculation
load_variable("circle_area") # Access across sessions
Create a line chart from data points (requires matplotlib).
Note:
Use for general XY data. For time-series price data with optional moving average, use plot_financial_line instead.
Examples:
plot_line_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Squares")
plot_line_chart([0, 1, 2], [0, 1,
plot_scatter
Create a scatter plot from data points (requires matplotlib).
Examples:
plot_scatter([1, 2, 3, 4], [1, 4, 9, 16], title="Correlation Study")
plot_scatter([1, 2, 3], [2, 4, 5], color='purple', point_size=100)
Generate and plot synthetic financial price data (requires matplotlib).
Creates realistic price movement patterns for educational purposes.
Does not use real market data.
Note:
Use for time-series price data with optional moving average overlay. For general XY data, use plot_line_chart instead
Endpoint
https://math-mcp.fastmcp.app/mcp Category: Finance & Data · Last checked: 2026-07-30T13:51:12Z
Monitor your own MCP server
Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.