FastMCP Calculator Server
README.md
# FastMCP Calculator Server
A Model Context Protocol (MCP) server providing calculator functionality with authentication options.
## Quick Start
### 1. Install Dependencies
```bash
pip install -r requirements.txt
```
### 2. Choose Authentication Mode
**No Authentication (Port 8000)**
```bash
python calculator_server.py
```
**JWT Authentication (Port 8001)**
```bash
python calculator_server_auth.py
# Copy the bearer token from output
```
**Google OAuth (Port 8002)**
```bash
# Setup: Get credentials from https://console.cloud.google.com/
# Create .env file with GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET
python calculator_server_google_oauth.py
```
## Calculator Tools
- `add(a, b)` - Add two numbers
- `subtract(a, b)` - Subtract numbers
- `multiply(a, b)` - Multiply numbers
- `divide(a, b)` - Divide numbers
- `power(base, exponent)` - Raise to power
- `modulo(a, b)` - Get remainder
- `square_root(n)` - Calculate square root
- `evaluate_expression(expr)` - Evaluate math expression
- `calculate_percentage(value, pct)` - Calculate percentage
- `average(numbers)` - Calculate average
## Google OAuth Setup
1. Go to https://console.cloud.google.com/
2. Create OAuth 2.0 Client ID
3. Add redirect URI: `http://localhost:8000/auth/callback`
4. Copy credentials to `.env`:
```
GOOGLE_CLIENT_ID=your-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-secret
SERVER_BASE_URL=http://localhost:8000
```
## Claude Desktop Setup
Edit your Claude config file:
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"calculator": {
"command": "python",
"args": ["path/to/calculator_server.py"]
}
}
}
```
## Production
- Use HTTPS (required for Google OAuth)
- Store credentials securely
- Enable rate limiting
- Set up monitoring
## Resources
- [FastMCP Documentation](https://gofastmcp.com/)
- [MCP Specification](https://modelcontextprotocol.io/)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues