Math MCP Learning
What this MCP does
Provides mathematical and statistical calculations, matrix operations, unit conversions, educational plots, and persistent calculation storage.
Tools
Input schema
{'type': 'object', 'required': ['expression'], 'properties': {'expression': {'type': 'string', 'maxLength': 500, 'description': "Mathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['expression', 'result', 'difficulty', 'topic'], 'properties': {'topic': {'type': 'string'}, 'result': {'type': 'number'}, 'difficulty': {'type': 'string'}, 'expression': {'type': 'string'}}, 'description': 'Result of a mathematical expression evaluation.'}
Input schema
{'type': 'object', 'required': ['principal', 'rate', 'time'], 'properties': {'rate': {'type': 'number', 'maximum': 1.0, 'minimum': 0, 'description': 'Annual interest rate as decimal 0.0-1.0 (e.g. 0.05 = 5%). If entering a percentage, divide by 100 first.'}, 'time': {'type': 'number', 'description': 'Investment time in years (must be > 0), e.g. 10.0', 'exclusiveMinimum': 0}, 'principal': {'type': 'number', 'description': 'Initial investment amount in dollars (must be > 0), e.g. 1000.0', 'exclusiveMinimum': 0}, 'compounds_per_year': {'type': 'integer', 'default': 12, 'description': 'Compounding frequency per year (must be > 0): 12=monthly, 365=daily', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['principal', 'final_amount', 'total_interest', 'rate', 'time', 'compounds_per_year', 'difficulty', 'topic', 'formula'], 'properties': {'rate': {'type': 'number'}, 'time': {'type': 'number'}, 'topic': {'type': 'string'}, 'formula': {'type': 'string'}, 'principal': {'type': 'number'}, 'difficulty': {'type': 'string'}, 'final_amount': {'type': 'number'}, 'total_interest': {'type': 'number'}, 'compounds_per_year': {'type': 'integer'}}, 'description': 'Result of compound interest calculation.'}
Input schema
{'type': 'object', 'required': ['numbers', 'operation'], 'properties': {'numbers': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'List of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0]'}, 'operation': {'type': 'string', 'examples': ['mean', 'median', 'mode', 'std_dev', 'variance'], 'description': 'Statistical operation to perform. Allowed values: mean, median, mode, std_dev, variance'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operation', 'result', 'sample_size', 'difficulty', 'topic'], 'properties': {'topic': {'type': 'string'}, 'result': {'type': 'number'}, 'operation': {'type': 'string'}, 'difficulty': {'type': 'string'}, 'sample_size': {'type': 'integer'}}, 'description': 'Result of statistical calculation.'}
Input schema
{'type': 'object', 'required': ['value', 'from_unit', 'to_unit', 'unit_type'], 'properties': {'value': {'type': 'number', 'description': 'Numeric value to convert, e.g., 100.0'}, 'to_unit': {'type': 'string', 'examples': ['ft', 'lb', 'f'], 'description': '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_unit': {'type': 'string', 'examples': ['m', 'kg', 'c'], 'description': '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_type': {'type': 'string', 'examples': ['length', 'weight', 'temperature'], 'description': 'Unit category: length, weight, or temperature'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['value', 'from_unit', 'to_unit', 'converted_value', 'unit_type', 'difficulty', 'topic'], 'properties': {'topic': {'type': 'string'}, 'value': {'type': 'number'}, 'to_unit': {'type': 'string'}, 'from_unit': {'type': 'string'}, 'unit_type': {'type': 'string'}, 'difficulty': {'type': 'string'}, 'converted_value': {'type': 'number'}}, 'description': 'Result of unit conversion.'}
Input schema
{'type': 'object', 'required': ['matrix'], 'properties': {'matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['size', 'determinant', 'difficulty', 'topic'], 'properties': {'size': {'type': 'integer'}, 'topic': {'type': 'string'}, 'difficulty': {'type': 'string'}, 'determinant': {'type': 'number'}}, 'description': 'Result of matrix determinant calculation.'}
Input schema
{'type': 'object', 'required': ['matrix'], 'properties': {'matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]]'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['size', 'success', 'difficulty', 'topic'], 'properties': {'size': {'type': 'integer'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'topic': {'type': 'string'}, 'success': {'type': 'boolean'}, 'difficulty': {'type': 'string'}, 'eigenvalues': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'default': None}, 'eigenvectors': {'anyOf': [{'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, {'type': 'null'}], 'default': None}, 'complex_values': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'complex_eigenvalues_warning': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'description': 'Result of matrix eigenvalues calculation.'}
Input schema
{'type': 'object', 'required': ['matrix'], 'properties': {'matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['size', 'success', 'difficulty', 'topic'], 'properties': {'size': {'type': 'integer'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'topic': {'type': 'string'}, 'success': {'type': 'boolean'}, 'difficulty': {'type': 'string'}, 'result_matrix': {'anyOf': [{'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, {'type': 'null'}], 'default': None}}, 'description': 'Result of matrix inverse calculation.'}
Input schema
{'type': 'object', 'required': ['matrix_a', 'matrix_b'], 'properties': {'matrix_a': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]'}, 'matrix_b': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing the second matrix. Each inner list is a row. Example: [[5, 6], [7, 8]]'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['rows_a', 'cols_a', 'rows_b', 'cols_b', 'result_matrix', 'difficulty', 'topic'], 'properties': {'topic': {'type': 'string'}, 'cols_a': {'type': 'integer'}, 'cols_b': {'type': 'integer'}, 'rows_a': {'type': 'integer'}, 'rows_b': {'type': 'integer'}, 'difficulty': {'type': 'string'}, 'result_matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}}, 'description': 'Result of matrix multiplication operation.'}
Input schema
{'type': 'object', 'required': ['matrix'], 'properties': {'matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 10000, 'description': '2D list of numbers representing the matrix. Each inner list is a row. Example: [[1, 2, 3], [4, 5, 6]]'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['original_rows', 'original_cols', 'result_matrix', 'difficulty', 'topic'], 'properties': {'topic': {'type': 'string'}, 'difficulty': {'type': 'string'}, 'original_cols': {'type': 'integer'}, 'original_rows': {'type': 'integer'}, 'result_matrix': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}}, 'description': 'Result of matrix transpose operation.'}
Input schema
{'type': 'object', 'required': ['data_groups'], 'properties': {'color': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'default': None, 'description': "Box color (name or hex code, e.g., 'blue', '#2E86AB')"}, 'title': {'type': 'string', 'default': 'Box Plot', 'maxLength': 100, 'description': "Chart title string, e.g., 'Distribution Comparison'"}, 'y_label': {'type': 'string', 'default': 'Values', 'maxLength': 100, 'description': "Y-axis label, e.g., 'Values'"}, 'data_groups': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'maxItems': 100, 'description': 'List of data groups to compare, e.g., [[1, 2, 3], [4, 5, 6]]'}, 'group_labels': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100}, {'type': 'null'}], 'default': None, 'description': "Labels for each group, e.g., ['Group A', 'Group B']"}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 1000, 'minimum': 2, 'description': 'Number of days to generate, e.g., 30'}, 'color': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'default': None, 'description': "Line color (name or hex code, e.g., 'blue', '#2E86AB')"}, 'trend': {'type': 'string', 'default': 'bullish', 'examples': ['bullish', 'bearish', 'volatile'], 'description': 'Market trend direction'}, 'start_price': {'type': 'number', 'default': 100.0, 'description': 'Starting price value, e.g., 100.0'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['expression', 'x_range'], 'properties': {'x_range': {'type': 'array', 'maxItems': 2, 'minItems': 2, 'description': 'X-axis range as (min, max), e.g., (-5.0, 5.0)', 'prefixItems': [{'type': 'number'}, {'type': 'number'}]}, 'expression': {'type': 'string', 'maxLength': 500, 'description': 'Mathematical expression to plot, e.g., "x**2" or "sin(x)". Must be <= MAX_EXPRESSION_LENGTH characters. Example: "x**2"'}, 'num_points': {'type': 'integer', 'default': 100, 'maximum': 10000, 'minimum': 2, 'description': 'Number of sample points to plot along x_range, e.g., 100'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['data'], 'properties': {'bins': {'type': 'integer', 'default': 20, 'description': 'Number of histogram bins, e.g., 20'}, 'data': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'List of numeric values to bin, e.g., [1.0, 2.0, 2.5, 3.0]'}, 'title': {'type': 'string', 'default': 'Data Distribution', 'maxLength': 100, 'description': "Chart title string, e.g., 'Data Distribution'"}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['x_data', 'y_data'], 'properties': {'color': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'default': None, 'description': "Line color (name or hex code, e.g., 'blue', '#2E86AB')"}, 'title': {'type': 'string', 'default': 'Line Chart', 'maxLength': 100, 'description': "Chart title string, e.g., 'Squares'"}, 'x_data': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'X-axis data points, e.g., [1, 2, 3, 4]'}, 'y_data': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'Y-axis data points, e.g., [1, 4, 9, 16]'}, 'x_label': {'type': 'string', 'default': 'X', 'maxLength': 100, 'description': "X-axis label, e.g., 'Time'"}, 'y_label': {'type': 'string', 'default': 'Y', 'maxLength': 100, 'description': "Y-axis label, e.g., 'Distance'"}, 'show_grid': {'type': 'boolean', 'default': True, 'description': 'Whether to display grid lines'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['x_data', 'y_data'], 'properties': {'color': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'default': None, 'description': "Point color (name or hex code, e.g., 'blue', '#2E86AB')"}, 'title': {'type': 'string', 'default': 'Scatter Plot', 'maxLength': 100, 'description': "Chart title string, e.g., 'Correlation Study'"}, 'x_data': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'X-axis data points, e.g., [1, 2, 3, 4]'}, 'y_data': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10000, 'description': 'Y-axis data points, e.g., [1, 4, 9, 16]'}, 'x_label': {'type': 'string', 'default': 'X', 'maxLength': 100, 'description': "X-axis label, e.g., 'Variable X'"}, 'y_label': {'type': 'string', 'default': 'Y', 'maxLength': 100, 'description': "Y-axis label, e.g., 'Variable Y'"}, 'point_size': {'type': 'integer', 'default': 50, 'description': 'Scatter point size in points^2, e.g., 50'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': "Name of the variable to load from workspace, e.g., 'circle_area'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['success', 'name', 'action'], 'properties': {'name': {'type': 'string'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'topic': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'action': {'type': 'string'}, 'result': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None}, 'success': {'type': 'boolean'}, 'timestamp': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'difficulty': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'expression': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'available_variables': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'description': 'Result of loading a variable from the workspace.'}
Input schema
{'type': 'object', 'required': ['name', 'expression', 'result'], 'properties': {'name': {'type': 'string', 'maxLength': 50, 'description': "Variable name for the saved calculation. Used to retrieve it later. Example: 'circle_area'"}, 'result': {'type': 'number', 'description': 'Numeric result of evaluating the expression, e.g., 78.54'}, 'expression': {'type': 'string', 'maxLength': 500, 'description': "The mathematical expression that was evaluated. Example: 'pi * r**2'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['name', 'expression', 'result', 'success', 'is_new', 'total_variables', 'difficulty', 'topic'], 'properties': {'name': {'type': 'string'}, 'topic': {'type': 'string'}, 'action': {'type': 'string', 'default': 'save_calculation'}, 'is_new': {'type': 'boolean'}, 'result': {'type': 'number'}, 'success': {'type': 'boolean'}, 'difficulty': {'type': 'string'}, 'expression': {'type': 'string'}, 'session_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'total_variables': {'type': 'integer'}}, 'description': 'Result of saving a calculation to the workspace.'}
Recent tool changes
Similar MCP servers
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
opportunity-exchange
Provides governed Saskatchewan labor-market, wage, housing, community-economy, workforce-pathway, procurement, and business-readi…
osint
Provides source-cited US data and schemas for power systems, AI infrastructure, semiconductor production and trade, robotics, and…
whatif
Builds, validates, calibrates, compares, and simulates Petri-net process models using event logs, scenarios, invariants, and diag…
Us Iso Grid
Provides real-time and recent electricity grid data for CAISO, ERCOT, and NYISO, including demand, forecasts, fuel mix, emissions…
AOI — Environmental Intelligence for AI Agents
Provides paid, quote-based environmental intelligence assessments covering climate risk, emissions, biodiversity, air quality, ha…
Pharma Intel
Combines clinical trial, FDA, PubMed, drug identification, safety, pipeline, sales, patent, and pharmaceutical sponsor data for d…
Data Gov Sg
Provides Singapore government datasets and environmental feeds, including air quality, dataset metadata, and routed structured re…