Calculator MCP Server
A simple calculator MCP (Model Context Protocol) server that exposes arithmetic operations as tools for AI assistants like Claude.
What is MCP?
Model Context Protocol (MCP) is an open protocol that enables AI assistants to interact with external tools and data sources. This server demonstrates how to build MCP tools using Python.
Features
| Tool | Description | Example |
|---|---|---|
add | Add two numbers | add(5, 3) → 8 |
subtract | Subtract numbers | subtract(10, 4) → 6 |
multiply | Multiply numbers | multiply(6, 7) → 42 |
divide | Divide with zero-check | divide(15, 3) → 5.0 |
power | Exponentiation | power(2, 3) → 8.0 |
modulo | Remainder operation | modulo(17, 5) → 2 |
square_root | Square root | square_root(16) → 4.0 |
absolute | Absolute value | absolute(-5) → 5 |
percentage | Calculate percentage | percentage(200, 15) → 30.0 |
Installation
Prerequisites
- Python 3.10 or higher
- pip package manager
Install from source
git clone https://github.com/Sathiya-Moorthi/MCP.git
cd calculator-mcp
pip install -e .
Install dependencies only
pip install mcp
Usage
With Claude Desktop
Add to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["/path/to/calculator-mcp/calculator_server.py"]
}
}
}
Restart Claude Desktop, then ask Claude to perform calculations!
With Cursor IDE
Add to your Cursor MCP configuration (~/.cursor/mcp.json):
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["/path/to/calculator-mcp/calculator_server.py"]
}
}
}
Standalone Testing
python calculator_server.py
The server communicates via stdio (standard input/output) using the MCP protocol.
Development
Setup development environment
# Clone the repository
git clone https://github.com/Sathiya-Moorthi/MCP.git
cd calculator-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
Run tests
pytest
Project Structure
calculator-mcp/
├── calculator_server.py # Main MCP server implementation
├── pyproject.toml # Project configuration
├── tests/
│ └── test_calculator.py # Unit tests
├── .github/
│ └── workflows/
│ └── ci.yml # GitHub Actions CI
├── README.md
├── LICENSE
└── .gitignore
How It Works
This server uses FastMCP, a high-level API from the official MCP Python SDK:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(name="calculator")
@mcp.tool()
def add(a: float, b: float) -> float:
"""Add two numbers together."""
return a + b
if __name__ == "__main__":
mcp.run()
Key concepts:
@mcp.tool()decorator - Registers functions as MCP tools- Type hints - Define parameter types for validation
- Docstrings - Become tool descriptions visible to AI
mcp.run()- Starts the server with stdio transport
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Acknowledgments
- Anthropic for the MCP protocol
- MCP Python SDK