Skip to main content
Glama
TechSuvam

Calculator MCP Server

by TechSuvam
README.md
# 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.