Calculator MCP Server
# Calculator MCP Server
A simple Model Context Protocol (MCP) server that provides basic calculator functionality through MCP tools.
## Features
This MCP server provides the following calculator tools:
- **add**: Add two numbers together
- **subtract**: Subtract second number from first number
- **multiply**: Multiply two numbers together
- **divide**: Divide first number by second number (with zero-division protection)
- **power**: Raise first number to the power of second number
- **sqrt**: Calculate square root of a number (with negative number protection)
## Installation
1. Install dependencies:
```bash
npm install
```
2. Build the TypeScript code:
```bash
npm run build
```
## Usage
### Running the Server
Start the MCP server:
```bash
npm start
```
Or run in development mode:
```bash
npm run dev
```
### MCP Client Configuration
To use this calculator MCP server with an MCP client (like Claude Desktop), add it to your MCP configuration:
```json
{
"mcpServers": {
"calculator": {
"command": "node",
"args": ["/path/to/calculator-mcp/dist/index.js"],
"env": {}
}
}
}
```
### Available Tools
#### add
Adds two numbers together.
- Parameters: `a` (number), `b` (number)
- Example: `add(5, 3)` returns `5 + 3 = 8`
#### subtract
Subtracts the second number from the first.
- Parameters: `a` (number), `b` (number)
- Example: `subtract(10, 4)` returns `10 - 4 = 6`
#### multiply
Multiplies two numbers together.
- Parameters: `a` (number), `b` (number)
- Example: `multiply(6, 7)` returns `6 × 7 = 42`
#### divide
Divides the first number by the second.
- Parameters: `a` (number), `b` (number)
- Example: `divide(15, 3)` returns `15 ÷ 3 = 5`
- Error handling: Returns error for division by zero
#### power
Raises the base to the power of the exponent.
- Parameters: `base` (number), `exponent` (number)
- Example: `power(2, 8)` returns `2^8 = 256`
#### sqrt
Calculates the square root of a number.
- Parameters: `number` (number)
- Example: `sqrt(16)` returns `√16 = 4`
- Error handling: Returns error for negative numbers
## Development
### Project Structure
```
calculator-mcp/
├── src/
│ └── index.ts # Main MCP server implementation
├── dist/ # Compiled JavaScript output
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
```
### Building
```bash
npm run build
```
### Development Mode
```bash
npm run dev
```
## Error Handling
The calculator includes proper error handling for:
- Division by zero
- Square root of negative numbers
- Invalid tool names
- General execution errors
All errors are returned with appropriate error messages and the `isError` flag set to true.
## License
MIT
TDQS
Scored across 6 tools
Each tool has a clearly distinct mathematical operation with no overlap in purpose. The descriptions are precise and unambiguous, making it easy for an agent to select the correct tool for addition, subtraction, multiplication, division, exponentiation, or square root calculation.
All tool names follow a consistent verb-based pattern (add, divide, multiply, power, sqrt, subtract) that directly describes the mathematical operation. There are no deviations in naming conventions, and the pattern is predictable and readable throughout the set.
With 6 tools, this server is well-scoped for a calculator domain, covering essential arithmetic operations (add, subtract, multiply, divide) and common advanced functions (power, sqrt). Each tool earns its place without redundancy, and the count is appropriate for the purpose.
The tool set provides complete coverage for a basic calculator domain, including all core arithmetic operations and key mathematical functions. There are no obvious gaps, such as missing operations like modulo or trigonometric functions, which are not essential for this scope, and agents can perform typical calculations without dead ends.