math-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@math-mcp Evaluate the expression: 2 * sin(pi/4)"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Math MCP Server
A secure Model Context Protocol (MCP) server for mathematical expression evaluation with strict grammar validation and comprehensive safety features.
Features
Security-First Design
Grammar Validation: All expressions are validated against a comprehensive BNF grammar before evaluation
Function Whitelisting: Only mathematical functions are allowed - no arbitrary code execution
CLI Validation: Command-line arguments are validated to ensure only supported functions are allowed
Sandboxed Evaluation: Secure execution environment with timeout protection
Expression Limits: Built-in safeguards against overly complex expressions
Mathematical Capabilities
Arithmetic Operations: Basic operations (+, -, *, /, %, ^) with proper precedence
Mathematical Functions: Trigonometric, logarithmic, statistical, and utility functions
Constants: Built-in mathematical constants (pi, e, tau, phi, etc.)
Variables: Variable assignment and reuse across expressions
Advanced Features:
Conditional expressions (ternary operator)
Logical operations (and, or, not)
Comparison operations (==, !=, <, <=, >, >=)
Arrays and object notation
Range notation (a:b:c)
Summation operations (sigma functions)
Unit values and member access
Factorial and transpose operations
MCP Integration
6 Tools for expression evaluation and variable management
3 Resources providing grammar specification and function documentation
Real-time Validation with detailed error reporting
Session State with persistent variable context
Configurable Runtime with CLI options for fine-grained control
Related MCP server: math-mcp-learning-server
Installation
Prerequisites
Node.js >= 18.0.0
npm or yarn package manager
NPM Installation (Recommended)
The package is available on npm at https://www.npmjs.com/package/math-mcp
# Install globally
npm install -g math-mcp
# Start the server
math-mcpDevelopment Installation
# Clone the repository
git clone https://github.com/Desz01ate/math-mcp
cd math-mcp
# Install dependencies and build
npm install
npm run build
# Start the server
npm startInstallation for LLM Agents
Claude Desktop Integration
To use this MCP server with Claude Desktop, first install the package globally:
npm install -g math-mcpThen add the following configuration to your Claude Desktop settings:
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"math-mcp": {
"command": "math-mcp",
"args": [],
"env": {}
}
}
}Alternative for development (from source):
{
"mcpServers": {
"math-mcp": {
"command": "node",
"args": ["/path/to/math-mcp/dist/index.js"],
"env": {}
}
}
}Other MCP Clients
For other MCP-compatible clients, you can run the server directly:
# If installed globally via npm
math-mcp
# With custom configuration
math-mcp --max-expression-length 2000 --timeout 10000
# Or if running from source
npm start
# With custom configuration from source
npm start -- --max-expression-length 2000 --timeout 10000The server will start and listen for MCP connections on stdio.
Docker Installation
# Build the Docker image
docker build -t math-mcp .
# Run the container
docker run -it math-mcpTroubleshooting Installation
Common Issues:
"Command not found" error
Ensure Node.js >= 18.0.0 is installed:
node --versionVerify npm is available:
npm --versionFor global installation, ensure npm global bin is in PATH
Claude Desktop not detecting the server
Verify the path in
claude_desktop_config.jsonis correctEnsure the server builds successfully:
npm run buildCheck Claude Desktop logs for connection errors
Restart Claude Desktop after configuration changes
Permission errors
Use
sudofor global npm installations if neededEnsure write permissions in the installation directory
On Windows, run terminal as Administrator if needed
Build failures
Clear npm cache:
npm cache clean --forceRemove node_modules and reinstall:
rm -rf node_modules && npm installEnsure TypeScript dependencies are installed
Server startup issues
Check if port is already in use
Verify all dependencies are installed
Run
npm run typecheckto check for type errors
Testing Installation:
# Verify the server starts correctly
npm start
# Run the test suite
npm test
# Test with demo examples
node demo/run-all-demos.jsUsage
As MCP Server
Start the server:
npm start
# or
math-mcpThe server runs as an MCP server and can be integrated with Claude Desktop or other MCP clients.
Configuration Options
The server supports various configuration options via command-line flags:
# Basic usage
math-mcp
# With custom configuration
math-mcp --max-expression-length 2000 --timeout 10000 --allowed-functions "sqrt,sin,cos"
# Show help and available options
math-mcp --help
# Show version
math-mcp --versionAvailable Options:
--max-expression-length <number>- Maximum expression length (default: 1000)--max-recursion-depth <number>- Maximum recursion depth (default: 100)--timeout <number>- Evaluation timeout in milliseconds (default: 5000)--allowed-functions <functions>- Comma-separated list of allowed functions--help- Display help information--version- Show version number
Supported Functions:
sqrt, cbrt, abs, sign, ceil, floor, round, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh, log, log10, log2, exp, expm1, log1p, min, max, mean, median, std, var, sum, factorial, gamma
Development Mode
npm run devRunning Examples
# Run all demo examples
node demo/run-all-demos.js
# Run specific demos
node demo/basic-operations.js
node demo/mathematical-functions.js
node demo/conditional-logic.js
node demo/test-summation.js
node demo/statistics-probability.js
node demo/calculus-applications.js
node demo/advanced-features.jsMCP Tools
evaluate
Evaluate mathematical expressions with full validation.
{
"expression": "2 * pi * radius^2",
"validate_only": false
}validate_syntax
Validate expression syntax without evaluation.
{
"expression": "sin(x) + cos(y)"
}set_variable / get_variable
Manage variables in the math context.
{
"name": "radius",
"expression": "5"
}list_variables / clear_variables
List or clear all defined variables.
MCP Resources
math://grammar
Access the complete BNF grammar specification.
math://functions
Get the list of all supported mathematical functions.
math://constants
Retrieve all predefined mathematical constants.
Expression Examples
Basic Arithmetic
2 + 3 * 4 // 14 (order of operations)
(2 + 3) * 4 // 20 (parentheses)
2^3 + 1 // 9 (exponentiation)
15 % 4 // 3 (modulo)Mathematical Functions
sin(pi/2) // 1
log(e) // 1
sqrt(16) // 4
abs(-5) // 5Variables and Constants
x = 5
y = 2 * x // 10
area = pi * r^2 // Circle areaAdvanced Features
x > 0 ? x : -x // Absolute value using ternary
sigma(i, 1, 10, i^2) // Sum of squares 1 to 10
[1, 2, 3, 4] // Arrays
{x: 1, y: 2} // ObjectsConditional Logic
x > 0 and y > 0 // Logical AND
not (x == 0) // Logical NOT
a >= b ? a : b // Maximum using ternaryGrammar Specification
The server implements a comprehensive BNF grammar supporting:
Operators: Arithmetic, logical, comparison, with proper precedence
Data Types: Numbers, strings, arrays, objects
Functions: Extensive mathematical function library
Control Flow: Conditional expressions and logical operations
Advanced Math: Summation, ranges, units, member access
See grammar.txt for the complete specification or access via math://grammar resource.
Development
Available Scripts
npm run build # Compile TypeScript
npm run dev # Development mode with tsx
npm start # Start compiled server
npm test # Run test suite
npm run test:watch # Watch mode testing
npm run lint # ESLint checking
npm run typecheck # Type checking only
npm run setup # Full setup: install, build, testConfiguration Examples
# Restrict to basic functions only
math-mcp --allowed-functions "sqrt,abs,sin,cos"
# Increase limits for complex expressions
math-mcp --max-expression-length 5000 --timeout 15000
# Minimal configuration for simple calculations
math-mcp --allowed-functions "sqrt,abs" --max-expression-length 500Project Structure
src/
├── server.ts # MCP server implementation
├── evaluator.ts # Secure expression evaluator
├── grammar-parser.ts # BNF grammar parser
├── tokenizer.ts # Lexical analyzer
├── tools/ # MCP tool implementations
├── resources/ # MCP resource handlers
└── __tests__/ # Test suite
demo/ # Example scripts
grammar.txt # BNF grammar specificationTesting
npm test # Run all tests
npm run test:watch # Watch modeTests cover:
Tokenizer functionality
Grammar parser validation
Expression evaluation
Integration scenarios
Summation operations
CLI configuration validation
Security Considerations
This server is designed with security as a primary concern:
No Code Execution: Only mathematical expressions are evaluated
Grammar Validation: All input is validated against a strict grammar
Function Whitelisting: Only approved mathematical functions are available
CLI Validation: Command-line function arguments are validated against the whitelist
Timeout Protection: Expressions are evaluated with time limits
Input Sanitization: All input is properly sanitized before processing
License
MIT License - see LICENSE file for details.
Support
For issues and feature requests, please use the GitHub issue tracker.
Acknowledgments
Built with MCP SDK
Available Tools
6 toolsclear_variablesA
Clear all defined variables
Inputs: no named parameters.
evaluateB
Evaluate mathematical expressions with strict grammar validation
Inputs: expression (required), validate_only.
get_variableB
Get the value of a variable
Inputs: name (required).
list_variablesA
List all defined variables
Inputs: no named parameters.
set_variableB
Set a variable value in the math context
Inputs: name (required), expression (required).
validate_syntaxB
Validate mathematical expression syntax against grammar
Inputs: expression (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a distinct purpose: evaluate computes, validate_syntax checks syntax, and variable tools manage context state. No two tools overlap in a confusing way.
Variable tools follow a clear verb_noun pattern (set_variable, get_variable, list_variables, clear_variables), but evaluate and validate_syntax are single verbs without a noun, mixing conventions. Still readable but not fully consistent.
Six tools is well-scoped for a math expression server, covering evaluation, validation, and variable management without excess or deficiency.
Core features are covered: evaluate, validate, and variable CRUD. A minor gap is lack of single-variable deletion (only clear all), but set_variable can overwrite, so agents can work around it.
Maintenance
Related MCP Connectors
Safe scientific calculator MCP for numeric expressions
This MCP server enables users to perform scientific computations regarding linear algebra and vect…
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA simple Model Context Protocol server that evaluates mathematical expressions like 'sqrt(25) + 2**3' sent by MCP clients, with secure evaluation that only allows math functions/constants.-
- AlicenseAqualityBmaintenanceEducational MCP server with 17 tools for mathematical calculations, matrix operations, statistical analysis, and data visualization. Includes persistent workspace, cloud hosting, and safety features like restricted eval.1743 PyPI6Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that performs exact arithmetic calculations, avoiding the pitfalls of float64 and unsafe eval, with resource limits for safe execution.136 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceA mathematical MCP server exposing 6 basic arithmetic and secure symbolic expression evaluation tools (add, subtract, multiply, divide, power, evaluate_expression) with structured JSON responses, input validation, and safe AST-based parsing.-