clouatre-labs avatar

Math MCP Learning

clouatre-labs/math-mcp-learning-server

Built for teaching math concepts through Claude, this exposes 17 tools split across basic calculations, matrix operations, and matplotlib visualizations. You get persistent workspace storage so students can save and reload their work between sessions, plus structured tutoring prompts and formula explainers. The eval safety model whitelists math module functions only. Includes statistical analysis (mean, median, variance), unit conversions, compound interest calculators, and full matrix ops (multiply, transpose, determinant, eigenvalues). Ships with cloud hosting at math-mcp.fastmcp.app or runs locally via uvx. Designed for educational workflows where you want Claude to walk through problem solving with actual computation and visual output, not just explanation.

GitHub stars
5
tools
17
transport
STDIO, HTTP
last updated
Sep 1, 2026

Install

From registry metadata
$ npx add-mcp https://math-mcp.fastmcp.app/mcp --name math-mcp-learning-server

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http math-mcp-learning-server https://math-mcp.fastmcp.app/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 17 tools

Verified live against the running server on Nov 6, 2026.

calc_expressionSafely evaluate mathematical expressions with support for basic operations and math functions. Supported operations: +, -, *, /, **, () Supported functions: sin, cos, tan, log, sqrt, abs, pow1 params

Safely evaluate mathematical expressions with support for basic operations and math functions. Supported operations: +, -, *, /, **, () Supported functions: sin, cos, tan, log, sqrt, abs, pow

Parameters* required
expression*string
Mathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)'
calc_statisticsPerform statistical calculations on a list of numbers. Available operations: mean, median, mode, std_dev, variance2 params

Perform statistical calculations on a list of numbers. Available operations: mean, median, mode, std_dev, variance

Parameters* required
numbers*array
List of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0]
operation*string
Statistical operation to perform. Allowed values: mean, median, mode, std_dev, variance
calc_interestCalculate 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 years4 params

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

Parameters* required
compounds_per_yearinteger
Compounding frequency per year (must be > 0): 12=monthly, 365=dailydefault: 12
principal*number
Initial investment amount in dollars (must be > 0), e.g. 1000.0
rate*number
Annual interest rate as decimal 0.0-1.0 (e.g. 0.05 = 5%). If entering a percentage, divide by 100 first.
time*number
Investment time in years (must be > 0), e.g. 10.0
calc_unitsConvert 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)4 params

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)

Parameters* required
from_unit*string
Source unit abbreviation. Valid units depend on unit_type: length (mm, cm, m, km, in, ft, yd, mi), weight (g, kg, oz, lb), temperature (c, f, k)
to_unit*string
Target unit abbreviation. Valid units depend on unit_type: length (mm, cm, m, km, in, ft, yd, mi), weight (g, kg, oz, lb), temperature (c, f, k)
unit_type*string
Unit category: length, weight, or temperature
value*number
Numeric value to convert, e.g., 100.0
matrix_multiplyMultiply two matrices (A × B).2 params

Multiply two matrices (A × B).

Parameters* required
matrix_a*array
2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]
matrix_b*array
2D list of numbers representing the second matrix. Each inner list is a row. Example: [[5, 6], [7, 8]]
matrix_transposeTranspose a matrix (swap rows and columns).1 params

Transpose a matrix (swap rows and columns).

Parameters* required
matrix*array
2D list of numbers representing the matrix. Each inner list is a row. Example: [[1, 2, 3], [4, 5, 6]]
matrix_determinantCalculate the determinant of a square matrix.1 params

Calculate the determinant of a square matrix.

Parameters* required
matrix*array
2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]
matrix_inverseCalculate the inverse of a square matrix.1 params

Calculate the inverse of a square matrix.

Parameters* required
matrix*array
2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]
matrix_eigenvaluesCalculate the eigenvalues of a square matrix.1 params

Calculate the eigenvalues of a square matrix.

Parameters* required
matrix*array
2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]]
workspace_saveSave calculation to persistent workspace (survives restarts).3 params

Save calculation to persistent workspace (survives restarts).

Parameters* required
expression*string
The mathematical expression that was evaluated. Example: 'pi * r**2'
name*string
Variable name for the saved calculation. Used to retrieve it later. Example: 'circle_area'
result*number
Numeric result of evaluating the expression, e.g., 78.54
workspace_loadLoad previously saved calculation result from workspace.1 params

Load previously saved calculation result from workspace.

Parameters* required
name*string
Name of the variable to load from workspace, e.g., 'circle_area'
plot_functionGenerate mathematical function plots (requires matplotlib).3 params

Generate mathematical function plots (requires matplotlib).

Parameters* required
expression*string
Mathematical expression to plot, e.g., "x**2" or "sin(x)". Must be <= MAX_EXPRESSION_LENGTH characters. Example: "x**2"
num_pointsinteger
Number of sample points to plot along x_range, e.g., 100default: 100
x_range*array
X-axis range as (min, max), e.g., (-5.0, 5.0)
plot_histogramCreate statistical histograms (requires matplotlib).3 params

Create statistical histograms (requires matplotlib).

Parameters* required
binsinteger
Number of histogram bins, e.g., 20default: 20
data*array
List of numeric values to bin, e.g., [1.0, 2.0, 2.5, 3.0]
titlestring
Chart title string, e.g., 'Data Distribution'default: Data Distribution
plot_line_chartCreate a line chart from data points (requires matplotlib).7 params

Create a line chart from data points (requires matplotlib).

Parameters* required
colorvalue
Line color (name or hex code, e.g., 'blue', '#2E86AB')
show_gridboolean
Whether to display grid linesdefault: true
titlestring
Chart title string, e.g., 'Squares'default: Line Chart
x_data*array
X-axis data points, e.g., [1, 2, 3, 4]
x_labelstring
X-axis label, e.g., 'Time'default: X
y_data*array
Y-axis data points, e.g., [1, 4, 9, 16]
y_labelstring
Y-axis label, e.g., 'Distance'default: Y
plot_scatterCreate a scatter plot from data points (requires matplotlib).7 params

Create a scatter plot from data points (requires matplotlib).

Parameters* required
colorvalue
Point color (name or hex code, e.g., 'blue', '#2E86AB')
point_sizeinteger
Scatter point size in points^2, e.g., 50default: 50
titlestring
Chart title string, e.g., 'Correlation Study'default: Scatter Plot
x_data*array
X-axis data points, e.g., [1, 2, 3, 4]
x_labelstring
X-axis label, e.g., 'Variable X'default: X
y_data*array
Y-axis data points, e.g., [1, 4, 9, 16]
y_labelstring
Y-axis label, e.g., 'Variable Y'default: Y
plot_box_plotCreate a box plot for comparing distributions (requires matplotlib).5 params

Create a box plot for comparing distributions (requires matplotlib).

Parameters* required
colorvalue
Box color (name or hex code, e.g., 'blue', '#2E86AB')
data_groups*array
List of data groups to compare, e.g., [[1, 2, 3], [4, 5, 6]]
group_labelsvalue
Labels for each group, e.g., ['Group A', 'Group B']
titlestring
Chart title string, e.g., 'Distribution Comparison'default: Box Plot
y_labelstring
Y-axis label, e.g., 'Values'default: Values
plot_financial_lineGenerate and plot synthetic financial price data (requires matplotlib). Creates realistic price movement patterns for educational purposes. Does not use real market data.4 params

Generate and plot synthetic financial price data (requires matplotlib). Creates realistic price movement patterns for educational purposes. Does not use real market data.

Parameters* required
colorvalue
Line color (name or hex code, e.g., 'blue', '#2E86AB')
daysinteger
Number of days to generate, e.g., 30default: 30
start_pricenumber
Starting price value, e.g., 100.0default: 100
trendstring
Market trend directiondefault: bullish

Sponsors

Readme

math-mcp-learning-server

PyPI Python License REUSE OpenSSF Best Practices

Educational MCP server with 17 tools, persistent workspace, and cloud hosting. Built with FastMCP and the official Model Context Protocol Python SDK.


View the full README on GitHub

Details

Repository
github.com/clouatre-labs/math-mcp-learning-server
Package
math-mcp-learning-server
Transport
STDIO, HTTP
Registry
MCP registry, active
Resources
5
Prompts
2
Tools verified
Nov 6, 2026

More from clouatre-labs