Calculator MCP Server
A Model Context Protocol (MCP) server that provides calculator tools for mathematical operations.
Features
The calculator server provides the following tools:
- add: Add two or more numbers together
- subtract: Subtract numbers (subtracts all subsequent numbers from the first)
- multiply: Multiply two or more numbers together
- divide: Divide numbers (divides first number by all subsequent numbers)
- power: Raise a number to a power
- sqrt: Calculate the square root of a number
- evaluate: Evaluate a mathematical expression safely (supports basic math operations and functions)
Installation
- Install the required dependencies:
pip install -r requirements.txt
Or install directly:
pip install mcp
Usage
Run the server:
python calculator_server.py
The server communicates via stdio and follows the MCP protocol.
Configuration
To use this server with an MCP client, add the following to your MCP client configuration:
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["/path/to/calculator_server.py"],
"transport": "stdio"
}
}
}
Or if you're in the same directory:
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["calculator_server.py"],
"transport": "stdio"
}
}
}
Example Tools
Add
{
"name": "add",
"arguments": {
"numbers": [1, 2, 3, 4]
}
}
Result: 10
Subtract
{
"name": "subtract",
"arguments": {
"numbers": [100, 20, 5]
}
}
Result: 75
Multiply
{
"name": "multiply",
"arguments": {
"numbers": [2, 3, 4]
}
}
Result: 24
Divide
{
"name": "divide",
"arguments": {
"numbers": [100, 5, 2]
}
}
Result: 10.0
Power
{
"name": "power",
"arguments": {
"base": 2,
"exponent": 8
}
}
Result: 256
Square Root
{
"name": "sqrt",
"arguments": {
"number": 16
}
}
Result: 4.0
Evaluate Expression
{
"name": "evaluate",
"arguments": {
"expression": "2 + 2 * 3"
}
}
Result: 8
The evaluate tool also supports mathematical functions like sin, cos, tan, sqrt, log, exp, pi, e, etc.
Safety
The evaluate tool uses Python's compile() and eval() functions with a restricted namespace for safety. Only basic mathematical operations and functions are allowed.
License
This project is provided as-is for use with the Model Context Protocol.
