CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Math MCP Learning

clouatre-labs/math-mcp-learning-server
417 toolsSTDIO, HTTPregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

17 tools
calculateSafely 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 descript...1 params

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 descript...

Parameters* required
expressionstring
Mathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)'
statisticsPerform 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. Exampl...2 params

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. Exampl...

Parameters* required
numbersarray
List of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0]
operationstring
Statistical operation to perform. Allowed values: mean, median, mode, std_dev, variance
compound_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 years Examples: compound_interest(10000, 0.05, 5) # $10,000 at 5% for...4 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 Examples: compound_interest(10000, 0.05, 5) # $10,000 at 5% for...

Parameters* required
ratenumber
Annual interest rate as decimal between 0.0 and 1.0. Example: 0.05 for 5%
timenumber
Time period in years, must be greater than 0. Example: 10
principalnumber
Initial investment amount, must be greater than 0. Example: 1000.0
compounds_per_yearinteger
Compounding frequency per year, must be >= 1. Example: 12 for monthlydefault: 1
convert_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) Examples: convert_units(5, "km", "mi", "length") # 5 kilometers → 3.11 miles convert_units...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) Examples: convert_units(5, "km", "mi", "length") # 5 kilometers → 3.11 miles convert_units...

Parameters* required
valuenumber
Numeric value to convert, e.g., 100.0
to_unitstring
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)
from_unitstring
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)
unit_typestring
Unit category: length, weight, or temperature
matrix_multiplyMultiply two matrices (A × B). Args: matrix_a: First matrix (m x n) matrix_b: Second matrix (n x p) 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]])2 params

Multiply two matrices (A × B). Args: matrix_a: First matrix (m x n) matrix_b: Second matrix (n x p) 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]])

Parameters* required
matrix_aarray
2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]
matrix_barray
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). Args: matrix: Input matrix (m x n) Note: Requires NumPy. Raises ValueError if NumPy is unavailable. Examples: matrix_transpose([[1, 2, 3], [4, 5, 6]]) matrix_transpose([[1], [2], [3]])1 params

Transpose a matrix (swap rows and columns). Args: matrix: Input matrix (m x n) Note: Requires NumPy. Raises ValueError if NumPy is unavailable. Examples: matrix_transpose([[1, 2, 3], [4, 5, 6]]) matrix_transpose([[1], [2], [3]])

Parameters* required
matrixarray
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. Args: matrix: Square matrix (n x n) 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 matrix1 params

Calculate the determinant of a square matrix. Args: matrix: Square matrix (n x n) 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

Parameters* required
matrixarray
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. Args: matrix: Square matrix (n x n) Note: Requires NumPy. Raises ValueError if NumPy is unavailable. Examples: matrix_inverse([[1, 2], [3, 4]]) matrix_inverse([[2, 0], [0, 2]]) # Diagonal matrix1 params

Calculate the inverse of a square matrix. Args: matrix: Square matrix (n x n) Note: Requires NumPy. Raises ValueError if NumPy is unavailable. Examples: matrix_inverse([[1, 2], [3, 4]]) matrix_inverse([[2, 0], [0, 2]]) # Diagonal matrix

Parameters* required
matrixarray
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. Args: matrix: Square matrix (n x n) 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 matrix1 params

Calculate the eigenvalues of a square matrix. Args: matrix: Square matrix (n x n) 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

Parameters* required
matrixarray
2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]]
save_calculationSave 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)3 params

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)

Parameters* required
namestring
Variable name for the saved calculation. Used to retrieve it later. Example: 'circle_area'
resultnumber
Numeric result of evaluating the expression, e.g., 78.54
expressionstring
The mathematical expression that was evaluated. Example: 'pi * r**2'
load_variableLoad previously saved calculation result from workspace. Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions1 params

Load previously saved calculation result from workspace. Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions

Parameters* required
namestring
Name of the variable to load from workspace, e.g., 'circle_area'
plot_functionGenerate 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 Examples: p...3 params

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 Examples: p...

Parameters* required
x_rangearray
X-axis range as (min, max), e.g., (-5.0, 5.0)
expressionstring
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
create_histogramCreate 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 Examples: create_histogram([1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0]) create_histogram([10, 20,...3 params

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 Examples: create_histogram([1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0]) create_histogram([10, 20,...

Parameters* required
binsinteger
Number of histogram bins, e.g., 20default: 20
dataarray
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). 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...7 params

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...

Parameters* required
colorvalue
Line color (name or hex code, e.g., 'blue', '#2E86AB')
titlestring
Chart title string, e.g., 'Squares'default: Line Chart
x_dataarray
X-axis data points, e.g., [1, 2, 3, 4]
y_dataarray
Y-axis data points, e.g., [1, 4, 9, 16]
x_labelstring
X-axis label, e.g., 'Time'default: X
y_labelstring
Y-axis label, e.g., 'Distance'default: Y
show_gridboolean
Whether to display grid linesdefault: true
plot_scatter_chartCreate 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 p...7 params

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 p...

Parameters* required
colorvalue
Point color (name or hex code, e.g., 'blue', '#2E86AB')
titlestring
Chart title string, e.g., 'Correlation Study'default: Scatter Plot
x_dataarray
X-axis data points, e.g., [1, 2, 3, 4]
y_dataarray
Y-axis data points, e.g., [1, 4, 9, 16]
x_labelstring
X-axis label, e.g., 'Variable X'default: X
y_labelstring
Y-axis label, e.g., 'Variable Y'default: Y
point_sizeinteger
Scatter point size in points^2, e.g., 50default: 50
plot_box_plotCreate a box plot for comparing distributions (requires matplotlib). Args: data_groups: List of data groups to compare group_labels: Optional labels for each group title: Chart title y_label: Y-axis label color: Box color (name or hex code, e.g., 'blue', '#2E86AB') ctx: FastMC...5 params

Create a box plot for comparing distributions (requires matplotlib). Args: data_groups: List of data groups to compare group_labels: Optional labels for each group title: Chart title y_label: Y-axis label color: Box color (name or hex code, e.g., 'blue', '#2E86AB') ctx: FastMC...

Parameters* required
colorvalue
Box color (name or hex code, e.g., 'blue', '#2E86AB')
titlestring
Chart title string, e.g., 'Distribution Comparison'default: Box Plot
y_labelstring
Y-axis label, e.g., 'Values'default: Values
data_groupsarray
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']
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. Args: days: Number of days to generate (default: 30) trend: Market trend ('bullish', 'bearish', or 'volati...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. Args: days: Number of days to generate (default: 30) trend: Market trend ('bullish', 'bearish', or 'volati...

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

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.

Available on the MCP Registry (io.github.clouatre-labs/math-mcp-learning-server) and PyPI.

Demo

math-mcp Demo

See CONTRIBUTING.md for instructions to record your own demo.

Quick Start

Cloud (No Installation)

Connect your MCP client to the hosted server:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "math-cloud": {
      "transport": "http",
      "url": "https://math-mcp.fastmcp.app/mcp"
    }
  }
}

Local Installation

{
  "mcpServers": {
    "math": {
      "command": "uvx",
      "args": ["math-mcp-learning-server[scientific,plotting]"]
    }
  }
}

For other installation options (basic, scientific-only, plotting-only), see CONTRIBUTING.md.

Tools

CategoryToolDescription
Workspaceworkspace_saveSave calculations to persistent storage
workspace_loadRetrieve previously saved calculations
Mathcalc_expressionSafely evaluate mathematical expressions
calc_statisticsStatistical analysis (mean, median, mode, std_dev, variance)
calc_interestCalculate compound interest for investments
calc_unitsConvert between units (length, weight, temperature)
Matrixmatrix_multiplyMultiply two matrices
matrix_transposeTranspose a matrix
matrix_determinantCalculate matrix determinant
matrix_inverseCalculate matrix inverse
matrix_eigenvaluesCalculate eigenvalues
Visualizationplot_functionPlot mathematical functions
plot_histogramCreate statistical histograms
plot_line_chartCreate line charts
plot_scatterCreate scatter plots
plot_box_plotCreate box plots
plot_financial_lineCreate financial line charts

Resources

  • math://workspace - Persistent calculation workspace summary
  • math://history - Chronological calculation history
  • math://functions - Available mathematical functions reference
  • math://constants/{constant} - Mathematical constants (pi, e, golden_ratio, etc.)
  • math://catalog/tools - Tool catalog with metadata and usage examples
  • math://variables - Active variables in the current workspace
  • math://test - Server health check

Prompts

  • math_tutor - Structured tutoring prompts (configurable difficulty)
  • formula_explainer - Formula explanation with step-by-step breakdowns

See Usage Examples for detailed examples.

Development

See CONTRIBUTING.md for development setup, testing, and contribution guidelines.

Security

  • OpenSSF Best Practices Silver - Fewer than 1% of open source projects reach this level
  • REUSE/SPDX - License compliance for all files
  • Signed Commits - GPG-signed commits required
  • Dependency Scanning - Automated updates via Renovate
  • pip-audit CVE Scanning - Automated dependency vulnerability checks
  • gitleaks Secret Scanning - Detects secrets in code and history
  • zizmor GitHub Actions Security - Workflow security scanning
  • commitlint Enforcement - Conventional commit validation in CI
  • OpenSSF Scorecard - Continuous open source security assessment
calc_expression safety

The calc_expression tool uses restricted eval() with a whitelist of allowed characters and functions, restricted global scope (only math module and abs), and no access to dangerous built-ins or imports. All tool inputs are validated with Pydantic models. File operations are restricted to the designated workspace directory. Complete type hints and validation are enforced for all operations.

Documentation

  • Architecture
  • Cloud Deployment Guide
  • Usage Examples
  • Contributing Guidelines
  • Maintainer Guide
  • Roadmap
  • Code of Conduct
  • License
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Packagemath-mcp-learning-server
TransportSTDIO, HTTP
UpdatedApr 2, 2026
View on GitHub