Model Context Protocol server for advanced mathematical calculations (SymPy, NumPy, SciPy, pandas)
Project description
Scientific Calculator MCP Server
A production-ready Model Context Protocol (MCP) server providing advanced mathematical calculation capabilities for AI models. Supports symbolic math (SymPy), numerical computing (NumPy/SciPy), data analysis (pandas), and image processing.
Quick Start
1. Install Dependencies
pip install sympy numpy scipy pandas
2. Server Configuration
Add to your MCP client config (e.g., Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"scientific-calculator": {
"command": "python",
"args": ["-u", "path/to/mcp_server.py"],
"env": {}
}
}
}
Windows Example:
{
"mcpServers": {
"scientific-calculator": {
"command": "python",
"args": ["-u", "F:\\AAchengguoofAI\\cuz_caculat\\mcp_server.py"]
}
}
}
macOS/Linux Example:
{
"mcpServers": {
"scientific-calculator": {
"command": "python3",
"args": ["-u", "/path/to/mcp_server.py"]
}
}
}
Features
- 3 Unified Tools covering:
- symbolic_tool: Symbolic algebra, calculus, equation solving (SymPy)
- numpy_tool: Linear algebra, matrix decompositions, data analysis (NumPy/pandas), image processing
- scipy_tool: Numerical integration, optimization, ODE/PDE solving, statistics, FFT
- 10 University-Level Math Problems with validated step-by-step solutions
- 100% Calculation Accuracy (validated against analytical solutions)
- MCP Protocol Compliant (STDIO transport, JSON-RPC 2.0)
- Zero Configuration - Works out-of-the-box with Claude Desktop
Core Files
| File | Purpose |
|---|---|
calculator.py |
Pure function library with 22 mathematical tools |
mcp_server.py |
MCP-compliant server (STDIO-based, JSON-RPC 2.0) |
advanced_math_problems.py |
10 complex math problems with solutions |
advanced_math_problems.json |
Problem data (auto-generated) |
Supported Operations (via consolidated tools)
symbolic_tool
- Operations: simplify, expand, factor, derivative, integral, limit, solve, taylor, matrix (determinant/inverse/rank/trace via
matrix_data).
-### numpy_tool
- Array reductions: sum, mean, std, max, min (with optional axis).
- Linear algebra & decompositions: eigenvalues/eigenvectors (aliases eig/eigvals), determinant, inverse, solve, norm, rank, trace, matmul/dot/hadamard (needs
matrix_a&matrix_b), SVD, QR, Cholesky (usematrix_a, optionalmatrix_b). - Polynomials: poly_eval, poly_derivative, poly_integral.
- Trigonometry: sin/cos/tan/arcsin/arccos/arctan/sinh/cosh/tanh (optional degrees input).
- Pandas (data analysis via pandas_* operations): describe, corr, value_counts (requires
columns), group_sum (columnsJSON with group/agg). Input as dataframe JSON. - Image (numpy-based): image_stats, image_normalize, image_threshold (input
image_dataJSON array, optionalthreshold). - Trigonometry: sin, cos, tan, arcsin, arccos, arctan, sinh, cosh, tanh (use
values, optionaluse_degrees). - Polynomials: poly_eval, poly_derivative, poly_integral (use
coefficients, optionalx_values).
scipy_tool
- Integrate: integrate_function (operation=
integrate). - Optimization: optimize_minimize, optimize_root.
- Interpolation: interpolate_linear / interpolate_cubic / interpolate_spline.
- Special functions: special (function + parameters).
- ODE: solve_ode (expression, initial_conditions, t_values).
- Statistics: statistics/mean/std/describe/ttest/pearsonr via
operation+data(+params). - FFT: fft, rfft.
- Matrix eigensystem: matrix_eigensystem (uses
matrix_a).
Usage Examples
from calculator import CALCULATOR_TOOLS
# Derivative: d(x³)/dx = 3x²
result = CALCULATOR_TOOLS['symbolic_derivative']('x**3', 'x')
# Solve: x² - 4 = 0
result = CALCULATOR_TOOLS['solve_equation']('x**2 - 4', 'x')
# Eigenvalues of matrix
import numpy as np
A = [[1, 2], [3, 4]]
result = CALCULATOR_TOOLS['numpy_linear_algebra'](A, 'eigenvalues')
# Integrate: ∫ x² dx from 0 to 1
result = CALCULATOR_TOOLS['symbolic_integral']('x**2', 'x', 0, 1)
Model Usage Policy
- Every numeric or symbolic calculation must be delegated to the tools (via MCP
tools/callor directCALCULATOR_TOOLS[...]), never hand-compute inside the model response. - Reasoning flow: pick the right tool → prepare JSON-safe inputs → call the tool → present the tool output (with minimal post-processing only for formatting).
- If a step would require arithmetic, call a tool instead (e.g., use
numpy_linear_algebrafor matrices,symbolic_*for algebra,scipy_*for calculus/optimization). - Avoid approximations unless the tool returns them; do not estimate values manually.
Prompting Playbook (Advanced Problems)
- Restate the task, list the required sub-calculations, and map each to a tool.
- For matrices, always supply
matrix_a(andmatrix_bwhen needed) as JSON arrays tonumpy_linear_algebra. - For calculus/ODE/PDE, convert expressions to plain strings (SymPy-compatible) before calling
symbolic_*orscipy_*tools. - After each tool call, reuse its exact output for subsequent steps—no manual arithmetic in between.
- When summing or solving, prefer tool outputs as inputs to the next tool (e.g., eigenvalues → use in later steps instead of recomputing).
- If the user asks for a result, return: the tool(s) called, inputs used, and the tool outputs; avoid “mental math.”
Problem Set
10 complex university-level problems demonstrating the tool capabilities:
- 2nd Order ODE: y'' + 4y' + 4y = e^x (7 steps)
- Eigenvalues & Eigenvectors: Matrix analysis (5 steps)
- Fourier Series & Basel Problem: Series expansion (6 steps)
- Lagrange Multipliers: Constrained optimization (7 steps)
- Residue Theorem: Complex integration (6 steps)
- Heat Equation: PDE solving (7 steps)
- Surface Geometry: Tangent planes (7 steps)
- ODE Systems: Linear systems (7 steps)
- Green's Theorem: Line integrals (8 steps)
- Calculus of Variations: Euler-Lagrange (10 steps)
Performance
| Metric | Value |
|---|---|
| Calculation Accuracy | 100% |
| MCP Compliance | 100% (16/16 checks) |
| Tools Available | 3 (consolidated) |
| Problems Included | 10 |
| Solution Steps | 69 |
| Startup Time | <1 second |
| Response Time | <100ms |
Technical Details
- Transport: STDIO (standard for MCP)
- Protocol: JSON-RPC 2.0
- Language: Python 3.10+
- Dependencies: SymPy, NumPy, SciPy, FastMCP
- Size: ~70 KB (core code only)
Status
✅ Production Ready
- 3 consolidated tools tested and working
- MCP specification verified
- Deployed and tested with Claude Desktop
- Ready for production use
Support
For issues or questions, refer to the MCP specification at: https://modelcontextprotocol.io/docs/develop/build-server
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_scientific_calculator-1.0.0.tar.gz.
File metadata
- Download URL: mcp_scientific_calculator-1.0.0.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1d94c738575581df926e6a01ace6201ffca2e6d5c8edeeceaf5b4334ff7d634
|
|
| MD5 |
aee17c192a04cf25170aae68c390d3fe
|
|
| BLAKE2b-256 |
9150ee7da7f1fa68e2af26f922dd37e950d3ecafa83a2d4f4e10b6b9729d9b37
|
File details
Details for the file mcp_scientific_calculator-1.0.0-py3-none-any.whl.
File metadata
- Download URL: mcp_scientific_calculator-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6d6fb22eb335f503085b4c05af2a5711e3766d3d823749498a8380e6c8b3d6f
|
|
| MD5 |
681a368aacdf027b972eec1dcb5726e9
|
|
| BLAKE2b-256 |
5ef369407adf7244f022f262a2efa5cf1edb237449be0898125c7f76332283f3
|