Skip to main content
Glama

Server Details

Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
clouatre-labs/math-mcp-learning-server
GitHub Stars
2

Available Tools

17 tools
calculateTry in Inspector

Safely evaluate mathematical expressions with support for basic operations and math functions.

Supported operations: +, -, *, /, **, () Supported functions: sin, cos, tan, log, sqrt, abs, pow

Examples:

  • "2 + 3 * 4" → 14

  • "sqrt(16)" → 4.0

  • "sin(3.14159/2)" → 1.0

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYes
compound_interestTry in Inspector

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYes
timeYes
principalYes
compounds_per_yearNo
convert_unitsTry in Inspector

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
to_unitYes
from_unitYes
unit_typeYes
create_histogramTry in Inspector

Create statistical histograms (requires matplotlib).

Args: data: List of numerical values bins: Number of histogram bins (default: 20) title: Chart title ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: create_histogram([1, 2, 2, 3, 3, 3, 4, 4, 5], bins=5)

ParametersJSON Schema
NameRequiredDescriptionDefault
binsNo
dataYes
titleNoData Distribution
load_variableTry in Inspector

Load previously saved calculation result from workspace.

Args: name: Variable name to load

Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
matrix_determinantTry in Inspector

Calculate the determinant of a square matrix.

Args: matrix: Square matrix (n x n)

Returns: Determinant value

Raises: ValueError: If matrix is not square

Examples: matrix_determinant([[4, 6], [3, 8]]) # Returns 14 matrix_determinant([[1, 2], [2, 4]]) # Returns 0 (singular)

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes
matrix_eigenvaluesTry in Inspector

Calculate the eigenvalues of a square matrix.

Args: matrix: Square matrix (n x n)

Returns: List of eigenvalues (may be complex numbers)

Raises: ValueError: If matrix is not square

Examples: matrix_eigenvalues([[4, 2], [1, 3]]) matrix_eigenvalues([[3, 0, 0], [0, 5, 0], [0, 0, 7]]) # Diagonal matrix

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes
matrix_inverseTry in Inspector

Calculate the inverse of a square matrix.

Args: matrix: Square matrix (n x n)

Returns: Inverse matrix

Raises: ValueError: If matrix is not square or is singular

Examples: matrix_inverse([[4, 7], [2, 6]]) matrix_inverse([[1, 0], [0, 1]]) # Identity matrix

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes
matrix_multiplyTry in Inspector

Multiply two matrices using NumPy.

Args: matrix_a: First matrix (m x n) matrix_b: Second matrix (n x p)

Returns: Result matrix (m x p)

Raises: ValueError: If matrices have incompatible dimensions

Examples: matrix_multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]) matrix_multiply([[1, 2, 3]], [[1], [2], [3]])

ParametersJSON Schema
NameRequiredDescriptionDefault
matrix_aYes
matrix_bYes
matrix_transposeTry in Inspector

Transpose a matrix (swap rows and columns).

Args: matrix: Input matrix

Returns: Transposed matrix

Examples: matrix_transpose([[1, 2, 3], [4, 5, 6]]) # Returns [[1, 4], [2, 5], [3, 6]] matrix_transpose([[1, 2], [3, 4]])

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes
plot_box_plotTry in Inspector

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

Args: data_groups: List of data groups to compare group_labels: Labels for each group (optional) title: Chart title y_label: Y-axis label color: Box plot color (name or hex code, e.g., 'blue', '#2E86AB') ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: plot_box_plot([[1, 2, 3, 4], [2, 3, 4, 5]], group_labels=['Group A', 'Group B']) plot_box_plot([[10, 20, 30], [15, 25, 35], [20, 30, 40]], color='green')

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
titleNoBox Plot
y_labelNoValues
data_groupsYes
group_labelsNo
plot_financial_lineTry in Inspector

Generate and plot synthetic financial price data (requires matplotlib).

Creates realistic price movement patterns for educational purposes. Does not use real market data.

Args: days: Number of days to generate (default: 30) trend: Market trend ('bullish', 'bearish', or 'volatile') start_price: Starting price value (default: 100.0) color: Line color (name or hex code, e.g., 'blue', '#2E86AB') ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: plot_financial_line(days=60, trend='bullish') plot_financial_line(days=90, trend='volatile', start_price=150.0, color='orange')

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
colorNo
trendNobullish
start_priceNo
plot_functionTry in Inspector

Generate mathematical function plots (requires matplotlib).

Args: expression: Mathematical expression to plot (e.g., "x**2", "sin(x)") x_range: Tuple of (min, max) for x-axis range num_points: Number of points to plot (default: 100) ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: plot_function("x**2", (-5, 5)) plot_function("sin(x)", (-3.14, 3.14))

ParametersJSON Schema
NameRequiredDescriptionDefault
x_rangeYes
expressionYes
num_pointsNo
plot_line_chartTry in Inspector

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

Args: x_data: X-axis data points y_data: Y-axis data points title: Chart title x_label: X-axis label y_label: Y-axis label color: Line color (name or hex code, e.g., 'blue', '#2E86AB') show_grid: Whether to show grid lines ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: plot_line_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Squares") plot_line_chart([0, 1, 2], [0, 1, 4], color='red', x_label='Time', y_label='Distance')

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
titleNoLine Chart
x_dataYes
y_dataYes
x_labelNoX
y_labelNoY
show_gridNo
plot_scatter_chartTry in Inspector

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

Args: x_data: X-axis data points y_data: Y-axis data points title: Chart title x_label: X-axis label y_label: Y-axis label color: Point color (name or hex code, e.g., 'blue', '#2E86AB') point_size: Size of scatter points (default: 50) ctx: FastMCP context for logging

Returns: Dict with base64-encoded PNG image or error message

Examples: plot_scatter_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Correlation Study") plot_scatter_chart([1, 2, 3], [2, 4, 5], color='purple', point_size=100)

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
titleNoScatter Plot
x_dataYes
y_dataYes
x_labelNoX
y_labelNoY
point_sizeNo
save_calculationTry in Inspector

Save calculation to persistent workspace (survives restarts).

Args: name: Variable name to save under expression: The mathematical expression result: The calculated result

Examples: save_calculation("portfolio_return", "10000 * 1.07^5", 14025.52) save_calculation("circle_area", "pi * 5^2", 78.54)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
resultYes
expressionYes
statisticsTry in Inspector

Perform statistical calculations on a list of numbers.

Available operations: mean, median, mode, std_dev, variance

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYes
operationYes

FAQ

How do I claim this server?

To claim this server, publish a /.well-known/glama.json file on your server's domain with the following structure:

{ "$schema": "https://glama.ai/mcp/schemas/connector.json", "maintainers": [ { "email": "your-email@example.com" } ] }

The email address must match the email associated with your Glama account. Once verified, the server will appear as claimed by you.

What are the benefits of claiming a server?
  • Control your server's listing on Glama, including description and metadata
  • Receive usage reports showing how your server is being used
  • Get monitoring and health status updates for your server
Try in Browser

Your Connectors

Sign in to create a connector for this server.