Used for making HTTP requests to the calculator API endpoints, enabling the MCP server to perform mathematical operations like addition, subtraction, multiplication, division, and power calculations.
Manages environment variables for the MCP server, including Anthropic API keys and port configurations.
Powers the API endpoints for both the calculator service and MCP server, handling requests for mathematical operations and tool execution.
MCP Calculator Service
A Model-Context-Protocol (MCP) implementation for a calculator service that uses Claude AI to process natural language requests and perform mathematical calculations.
Architecture
The service consists of three main components:
Calculator API (
calculator-api.js): Handles basic mathematical operationsMCP Server (
mcp-server.js): Manages LLM integration and tool orchestrationMCP Client (
mcp-client.js): Provides a user interface for interacting with the service
Related MCP server: MCP Math Server
Setup
Install dependencies:
Create a
.envfile in the root directory with the following variables:
Running the Service
You can run all components concurrently:
Or run them individually:
Usage
Once the service is running, you can interact with it through the client interface. Here are some example commands:
"Add 5 and 3"
"What is 10 plus 20?"
"Calculate 7.5 + 2.25"
"Multiply 4 by 6"
"What is 8 times 3?"
Type "help" for more examples or "exit" to quit.
API Endpoints
Calculator API (Port 3000)
POST /:operation- Perform mathematical operations (add, subtract, multiply, divide, power)GET /health- Health check endpoint
MCP Server (Port 3001)
GET /tools- List available toolsPOST /execute/:toolId- Execute a specific toolPOST /agent- Process natural language requestsGET /health- Health check endpoint
Error Handling
The service includes comprehensive error handling for:
Invalid mathematical operations
Division by zero
Invalid parameter types
LLM response parsing errors
Network errors
Dependencies
@anthropic-ai/sdk: ^0.51.0
axios: ^1.6.7
body-parser: ^1.20.2
cors: ^2.8.5
dotenv: ^16.4.5
express: ^4.18.3
concurrently: ^8.2.2 (dev dependency)