calculator-mcp-remote-server

calculator-mcp-remote-server

0

The SSE Calculator MCP Server is a stateful calculator server enabling real-time calculator operations via Server-Sent Events (SSE). It is designed to integrate with AI assistants through the Model Context Protocol (MCP), providing a web-based interface and session management for calculations.

SSE Calculator MCP Server

A stateful calculator server that uses Server-Sent Events (SSE) for real-time communication. This server implements the Model Context Protocol (MCP) for integration with AI assistants.

Features

  • Real-time calculator operations using SSE
  • Stateful sessions for ongoing calculations
  • History tracking for all calculations
  • Web-based calculator interface
  • MCP integration for AI assistants

Architecture

The server is built using NestJS and implements the following components:

  • Session Service: Manages calculator sessions and state
  • Calculator Service: Performs calculation operations
  • SSE Controller: Handles client connections and event streaming

Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Start the server:
npm run start:dev
  1. Open the calculator interface in your browser:
http://localhost:3000

API Endpoints

SSE Stream

GET /calculator/stream

Establishes an SSE connection and creates a new calculator session.

Calculate

POST /calculator/calculate/:sessionId

Performs a calculation operation on the specified session.

Request body:

{
  "operation": "add", // add, subtract, multiply, divide, clear
  "a": 5,
  "b": 3
}

History

GET /calculator/history/:sessionId

Retrieves the calculation history for the specified session.

Sessions

GET /calculator/sessions

Retrieves all active calculator sessions.

MCP Integration

To use this server as an MCP server, add the following configuration to your MCP settings file:

{
  "mcpServers": {
    "remote-calculator": {
      "url": "http://localhost:3000/calculator/stream",
      "disabled": false,
      "alwaysAllow": [],
      "timeout": 60
    }
  }
}

Deployment Options

For production deployment, you can use the following options:

  1. Docker: A Dockerfile is provided for containerized deployment

    • See Dockerfile and docker-compose.yml for configuration
  2. Smithery.ai: Deploy directly from GitHub

    • See SMITHERY_DEPLOYMENT.md for detailed instructions
    • Configuration provided in smithery.json
  3. Heroku/DigitalOcean: Cloud platform deployment

    • See DEPLOYMENT.md for step-by-step instructions
  4. Self-hosted: Use NGINX or similar for SSL termination and load balancing

Hosting Your Own MCP Server

After deploying your server, update your MCP client configuration to point to your hosted URL:

{
  "mcpServers": {
    "remote-calculator": {
      "url": "https://your-deployed-url.com/calculator/stream",
      "disabled": false,
      "alwaysAllow": [],
      "timeout": 60
    }
  }
}

License

MIT