Math MCP Learning
REMOTE · MATH-MCP.FASTMCP.APP · 2 COMPONENTS · SCANNED AUG 3
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 17 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3275 tokens (~148/item across 22 items; 17 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (65% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · math-mcp.fastmcp.app
claude mcp add --transport http clouatre-labs-math-mcp-learning-server https://math-mcp.fastmcp.app/mcp
[mcp_servers.clouatre-labs-math-mcp-learning-server] url = "https://math-mcp.fastmcp.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"clouatre-labs-math-mcp-learning-server": {
"type": "remote",
"url": "https://math-mcp.fastmcp.app/mcp",
"enabled": true
}
}
} openclaw mcp add clouatre-labs-math-mcp-learning-server --url https://math-mcp.fastmcp.app/mcp --transport streamable-http
mcp_servers:
clouatre-labs-math-mcp-learning-server:
url: "https://math-mcp.fastmcp.app/mcp" {
"mcpServers": {
"clouatre-labs-math-mcp-learning-server": {
"type": "http",
"url": "https://math-mcp.fastmcp.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 0
- Server version: 3.4.4 → 3.4.5 functional
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 63
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://math-mcp.fastmcp.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.fastmcp.app | CN=Amazon RSA 2048 M04,O=Amazon,C=US | 17 Jun 2026 | 31 Dec 2026 | RSA 2048 | SHA256-RSA | a1583bafd89c7b58780ef1a0a0d2ad7 |
| SANs: *.fastmcp.app | ||||||
| CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 773124f2a952e3ed18a58bdb85d1bc0ce5f27 |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
DNSSEC insecure
Validation of math-mcp.fastmcp.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| fastmcp.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://math-mcp.fastmcp.app/mcp | Verified | 200 | |
| http (plaintext) | http://math-mcp.fastmcp.app/mcp | HTTPS enforced | 301 | https://math-mcp.fastmcp.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
calc_expression Mathematical Calculator ~174
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 over a list of numbers, use the statistics tool instead. Examples: - "2 + 3 * 4" → 14 - "sqrt(16)" → 4.0 - "sin(3.14159/2)" → 1.0
| Name | Type | Req | Description |
|---|---|---|---|
| expression | string | yes | Mathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)' |
| Name | Type | Req | Description |
|---|---|---|---|
| difficulty | string | yes | — |
| expression | string | yes | — |
| result | number | yes | — |
| topic | string | yes | — |
No examples provided.
calc_interest Compound Interest Calculator ~265
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,762.82 compound_interest(5000, 0.03, 10, 12) # $5,000 at 3% compounded monthly → $6,744.25
| Name | Type | Req | Description |
|---|---|---|---|
| compounds_per_year | integer | — | Compounding frequency per year (must be > 0): 12=monthly, 365=daily |
| principal | number | yes | Initial investment amount in dollars (must be > 0), e.g. 1000.0 |
| rate | number | yes | Annual interest rate as decimal 0.0-1.0 (e.g. 0.05 = 5%). If entering a percentage, divide by 100 first. |
| time | number | yes | Investment time in years (must be > 0), e.g. 10.0 |
| Name | Type | Req | Description |
|---|---|---|---|
| compounds_per_year | integer | yes | — |
| difficulty | string | yes | — |
| final_amount | number | yes | — |
| formula | string | yes | — |
| principal | number | yes | — |
| rate | number | yes | — |
| time | number | yes | — |
| topic | string | yes | — |
| total_interest | number | yes | — |
No examples provided.
calc_statistics Statistical Analysis ~206
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: statistics([1.0, 2.5, 3.0, 4.5, 5.0], "mean") # Returns 3.2 statistics([1.0, 2.5, 3.0, 4.5, 5.0], "std_dev") # Returns ~1.58
| Name | Type | Req | Description |
|---|---|---|---|
| numbers | array | yes | List of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0] |
| operation | string | yes | Statistical operation to perform. Allowed values: mean, median, mode, std_dev, variance |
| Name | Type | Req | Description |
|---|---|---|---|
| difficulty | string | yes | — |
| operation | string | yes | — |
| result | number | yes | — |
| sample_size | integer | yes | — |
| topic | string | yes | — |
No examples provided.
calc_units Unit Converter ~265
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", "kg", "weight") # 150 pounds → 68.04 kilograms
| Name | Type | Req | Description |
|---|---|---|---|
| from_unit | string | yes | 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 | yes | 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 | yes | Unit category: length, weight, or temperature |
| value | number | yes | Numeric value to convert, e.g., 100.0 |
| Name | Type | Req | Description |
|---|---|---|---|
| converted_value | number | yes | — |
| difficulty | string | yes | — |
| from_unit | string | yes | — |
| to_unit | string | yes | — |
| topic | string | yes | — |
| unit_type | string | yes | — |
| value | number | yes | — |
No examples provided.
matrix_determinant Matrix Determinant ~128
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
| Name | Type | Req | Description |
|---|---|---|---|
| matrix | array | yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] |
| Name | Type | Req | Description |
|---|---|---|---|
| determinant | number | yes | — |
| difficulty | string | yes | — |
| size | integer | yes | — |
| topic | string | yes | — |
No examples provided.
matrix_eigenvalues Matrix Eigenvalues ~130
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
| Name | Type | Req | Description |
|---|---|---|---|
| matrix | array | yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]] |
| Name | Type | Req | Description |
|---|---|---|---|
| complex_eigenvalues_warning | — | — | — |
| complex_values | — | — | — |
| difficulty | string | yes | — |
| eigenvalues | — | — | — |
| eigenvectors | — | — | — |
| error | — | — | — |
| size | integer | yes | — |
| success | boolean | yes | — |
| topic | string | yes | — |
No examples provided.
matrix_inverse Matrix Inverse ~108
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
| Name | Type | Req | Description |
|---|---|---|---|
| matrix | array | yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] |
| Name | Type | Req | Description |
|---|---|---|---|
| difficulty | string | yes | — |
| error | — | — | — |
| result_matrix | — | — | — |
| size | integer | yes | — |
| success | boolean | yes | — |
| topic | string | yes | — |
No examples provided.
matrix_multiply Matrix Multiplication ~163
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]])
| Name | Type | Req | Description |
|---|---|---|---|
| matrix_a | array | yes | 2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] |
| matrix_b | array | yes | 2D list of numbers representing the second matrix. Each inner list is a row. Example: [[5, 6], [7, 8]] |
| Name | Type | Req | Description |
|---|---|---|---|
| cols_a | integer | yes | — |
| cols_b | integer | yes | — |
| difficulty | string | yes | — |
| result_matrix | array | yes | — |
| rows_a | integer | yes | — |
| rows_b | integer | yes | — |
| topic | string | yes | — |
No examples provided.
matrix_transpose Matrix Transpose ~115
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]])
| Name | Type | Req | Description |
|---|---|---|---|
| matrix | array | yes | 2D list of numbers representing the matrix. Each inner list is a row. Example: [[1, 2, 3], [4, 5, 6]] |
| Name | Type | Req | Description |
|---|---|---|---|
| difficulty | string | yes | — |
| original_cols | integer | yes | — |
| original_rows | integer | yes | — |
| result_matrix | array | yes | — |
| topic | string | yes | — |
No examples provided.
plot_box_plot Box Plot ~213
Create a box plot for comparing distributions (requires matplotlib). Examples: plot_box_plot([[1, 2, 3, 4, 5], [2, 4, 6, 8, 10]], group_labels=["A", "B"]) plot_box_plot([[10, 20, 30], [15, 25, 35], [5, 15, 25]], title="Comparison")
| Name | Type | Req | Description |
|---|---|---|---|
| color | — | — | Box color (name or hex code, e.g., 'blue', '#2E86AB') |
| data_groups | array | yes | List of data groups to compare, e.g., [[1, 2, 3], [4, 5, 6]] |
| group_labels | — | — | Labels for each group, e.g., ['Group A', 'Group B'] |
| title | string | — | Chart title string, e.g., 'Distribution Comparison' |
| y_label | string | — | Y-axis label, e.g., 'Values' |
No output schema declared.
No examples provided.
plot_financial_line Financial Line Chart ~174
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. Examples: plot_financial_line(days=60, trend='bullish') plot_financial_line(days=90, trend='volatile', start_price=150.0, color='orange')
| Name | Type | Req | Description |
|---|---|---|---|
| color | — | — | Line color (name or hex code, e.g., 'blue', '#2E86AB') |
| days | integer | — | Number of days to generate, e.g., 30 |
| start_price | number | — | Starting price value, e.g., 100.0 |
| trend | string | — | Market trend direction |
No output schema declared.
No examples provided.
plot_function Function Plotter ~142
Generate mathematical function plots (requires matplotlib). Examples: plot_function("x**2", (-5, 5)) plot_function("sin(x)", (-3.14, 3.14))
| Name | Type | Req | Description |
|---|---|---|---|
| expression | string | yes | Mathematical expression to plot, e.g., "x**2" or "sin(x)". Must be <= MAX_EXPRESSION_LENGTH characters. Example: "x**2" |
| num_points | integer | — | Number of sample points to plot along x_range, e.g., 100 |
| x_range | array | yes | X-axis range as (min, max), e.g., (-5.0, 5.0) |
No output schema declared.
No examples provided.
plot_histogram Statistical Histogram ~156
Create statistical histograms (requires matplotlib). Examples: plot_histogram([1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0]) plot_histogram([10, 20, 30, 40, 50], bins=5, title="Test Scores")
| Name | Type | Req | Description |
|---|---|---|---|
| bins | integer | — | Number of histogram bins, e.g., 20 |
| data | array | yes | List of numeric values to bin, e.g., [1.0, 2.0, 2.5, 3.0] |
| title | string | — | Chart title string, e.g., 'Data Distribution' |
No output schema declared.
No examples provided.
plot_line_chart Line Chart ~257
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, 4], color='red', x_label='Time', y_label='Distance')
| Name | Type | Req | Description |
|---|---|---|---|
| color | — | — | Line color (name or hex code, e.g., 'blue', '#2E86AB') |
| show_grid | boolean | — | Whether to display grid lines |
| title | string | — | Chart title string, e.g., 'Squares' |
| x_data | array | yes | X-axis data points, e.g., [1, 2, 3, 4] |
| x_label | string | — | X-axis label, e.g., 'Time' |
| y_data | array | yes | Y-axis data points, e.g., [1, 4, 9, 16] |
| y_label | string | — | Y-axis label, e.g., 'Distance' |
No output schema declared.
No examples provided.
plot_scatter Scatter Plot ~238
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)
| Name | Type | Req | Description |
|---|---|---|---|
| color | — | — | Point color (name or hex code, e.g., 'blue', '#2E86AB') |
| point_size | integer | — | Scatter point size in points^2, e.g., 50 |
| title | string | — | Chart title string, e.g., 'Correlation Study' |
| x_data | array | yes | X-axis data points, e.g., [1, 2, 3, 4] |
| x_label | string | — | X-axis label, e.g., 'Variable X' |
| y_data | array | yes | Y-axis data points, e.g., [1, 4, 9, 16] |
| y_label | string | — | Y-axis label, e.g., 'Variable Y' |
No output schema declared.
No examples provided.
workspace_load Load Variable ~66
Load previously saved calculation result from workspace. Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Name of the variable to load from workspace, e.g., 'circle_area' |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | — |
| available_variables | — | — | — |
| difficulty | — | — | — |
| error | — | — | — |
| expression | — | — | — |
| name | string | yes | — |
| result | — | — | — |
| session_id | — | — | — |
| success | boolean | yes | — |
| timestamp | — | — | — |
| topic | — | — | — |
No examples provided.
workspace_save Save Calculation to Workspace ~136
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)
| Name | Type | Req | Description |
|---|---|---|---|
| expression | string | yes | The mathematical expression that was evaluated. Example: 'pi * r**2' |
| name | string | yes | Variable name for the saved calculation. Used to retrieve it later. Example: 'circle_area' |
| result | number | yes | Numeric result of evaluating the expression, e.g., 78.54 |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | — |
| difficulty | string | yes | — |
| expression | string | yes | — |
| is_new | boolean | yes | — |
| name | string | yes | — |
| result | number | yes | — |
| session_id | — | — | — |
| success | boolean | yes | — |
| topic | string | yes | — |
| total_variables | integer | yes | — |
No examples provided.