README.md•2.58 kB
# 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
1. Install the required dependencies:
```bash
pip install -r requirements.txt
```
Or install directly:
```bash
pip install mcp
```
## Usage
Run the server:
```bash
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:
```json
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["/path/to/calculator_server.py"],
"transport": "stdio"
}
}
}
```
Or if you're in the same directory:
```json
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["calculator_server.py"],
"transport": "stdio"
}
}
}
```
## Example Tools
### Add
```json
{
"name": "add",
"arguments": {
"numbers": [1, 2, 3, 4]
}
}
```
Result: 10
### Subtract
```json
{
"name": "subtract",
"arguments": {
"numbers": [100, 20, 5]
}
}
```
Result: 75
### Multiply
```json
{
"name": "multiply",
"arguments": {
"numbers": [2, 3, 4]
}
}
```
Result: 24
### Divide
```json
{
"name": "divide",
"arguments": {
"numbers": [100, 5, 2]
}
}
```
Result: 10.0
### Power
```json
{
"name": "power",
"arguments": {
"base": 2,
"exponent": 8
}
}
```
Result: 256
### Square Root
```json
{
"name": "sqrt",
"arguments": {
"number": 16
}
}
```
Result: 4.0
### Evaluate Expression
```json
{
"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.