Skip to main content
Glama
calculator-mcp-server

calculator-mcp-server

by cyanheads

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework

Öffentlich gehosteter Server: https://calculator.caseyjhand.com/mcp


Tools

Ein Tool für alle mathematischen Operationen:

Tool-Name

Beschreibung

calculate

Mathematische Ausdrücke auswerten, algebraische Ausdrücke vereinfachen oder symbolische Ableitungen berechnen.

calculate

Ein einziges Tool, das 100 % des Serverzwecks abdeckt. Der Parameter operation ist standardmäßig auf evaluate gesetzt, sodass der häufigste Fall einfach { expression: "..." } ist.

  • Evaluate — Arithmetik, Trigonometrie, Logarithmen, Statistik, Matrizen, komplexe Zahlen, Einheitenumrechnung, Kombinatorik

  • Simplify — algebraische Ausdrücke symbolisch reduzieren (z. B. 2x + 3x -> 5 * x). Unterstützt algebraische und trigonometrische Identitäten

  • Derivative — symbolische Ableitungen berechnen (z. B. 3x^2 + 2x + 1 -> 6 * x + 2)

  • Variablenbereich über den Parameter scope: { "x": 5, "y": 3 }

  • Konfigurierbare Genauigkeit für numerische Ergebnisse

  • Leere optionale variable- und precision-Werte von formularbasierten MCP-Clients werden als weggelassen behandelt


Related MCP server: pycodemath

Ressourcen

URI-Muster

Beschreibung

calculator://help

Verfügbare Funktionen, Operatoren, Konstanten und Syntaxreferenz.


Funktionen

Basiert auf @cyanheads/mcp-ts-core:

  • Deklarative Tool-Definitionen — eine Datei pro Tool, das Framework übernimmt Registrierung und Validierung

  • Einheitliche Fehlerbehandlung für alle Tools

  • Strukturierte Protokollierung mit optionalem OpenTelemetry-Tracing

  • Läuft lokal (stdio/HTTP) oder in Docker

Rechnerspezifisch:

  • Gehärtete math.js-v15-Instanz — gefährliche Funktionen deaktiviert, Auswertung per vm.runInNewContext() mit Timeout in einer Sandbox ausgeführt

  • Keine Authentifizierung erforderlich — alle Operationen sind schreibgeschützt und zustandslos

  • Eingabevalidierung: Begrenzung der Ausdruckslänge, Ablehnung von Ausdrucks-Trennzeichen (Semikolons und Zeilenumbrüche), nur numerische Scope-Werte

  • Ergebnisvalidierung: blockierte Ergebnistypen (Funktionen, Parser, Ergebnismengen), konfigurierbare maximale Ergebnisgröße

  • Scope-Bereinigung: nur numerische Werte, Schutz vor Prototype Pollution (blockierte __proto__, constructor usw.)


Erste Schritte

Öffentlich gehostete Instanz

Eine öffentliche Instanz ist unter https://calculator.caseyjhand.com/mcp verfügbar — keine Installation erforderlich. Richten Sie einen beliebigen MCP-Client über Streamable HTTP darauf aus:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "streamable-http",
      "url": "https://calculator.caseyjhand.com/mcp"
    }
  }
}

Selbst gehostet / Lokal

Fügen Sie eine der folgenden Optionen zu Ihrer MCP-Client-Konfigurationsdatei hinzu:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/calculator-mcp-server@latest"]
    }
  }
}

Oder mit npx (kein Bun erforderlich):

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/calculator-mcp-server@latest"]
    }
  }
}

Oder mit Docker:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "ghcr.io/cyanheads/calculator-mcp-server:latest"
      ]
    }
  }
}

Voraussetzungen

Installation

  1. Repository klonen:

git clone https://github.com/cyanheads/calculator-mcp-server.git
  1. In das Verzeichnis wechseln:

cd calculator-mcp-server
  1. Abhängigkeiten installieren:

bun install

Konfiguration

Variable

Beschreibung

Standard

CALC_MAX_EXPRESSION_LENGTH

Maximal zulässige Länge des Ausdrucksstrings (10–10.000).

1000

CALC_EVALUATION_TIMEOUT_MS

Maximale Auswertungszeit in Millisekunden (100–30.000).

5000

CALC_MAX_RESULT_LENGTH

Maximale Länge des Ergebnisstrings in Zeichen (1.000–1.000.000).

100000

MCP_TRANSPORT_TYPE

Transport: stdio oder http.

stdio

MCP_HTTP_HOST

Hostname für den HTTP-Server.

localhost

MCP_HTTP_PORT

Port für den HTTP-Server.

3010

MCP_HTTP_ENDPOINT_PATH

Pfad für den HTTP-MCP-Endpunkt.

/mcp

MCP_HTTP_MAX_BODY_BYTES

Maximale Größe eingehender HTTP-Anfragen; 0 deaktiviert das Limit.

1048576

MCP_AUTH_MODE

Auth-Modus: none, jwt oder oauth.

none

MCP_LOG_LEVEL

Protokollstufe (RFC 5424).

info

Siehe .env.example für optionale Sitzungs-, Fortsetzbarkeits-, Protokollierungs- und Telemetrieeinstellungen.


Server ausführen

Lokale Entwicklung

  • Produktionsversion erstellen und ausführen:

    bun run build
    bun run start:http   # or start:stdio
  • Prüfungen und Tests ausführen:

    bun run devcheck     # Lints, formats, type-checks
    bun run test         # Runs test suite

Docker

docker build -t calculator-mcp-server .
docker run -p 3010:3010 calculator-mcp-server

Das Image verwendet standardmäßig Streamable HTTP auf Port 3010, zustandslose Sitzungen und protokolliert unter /var/log/calculator-mcp-server.


Projektstruktur

Verzeichnis

Zweck

src/mcp-server/tools/

Tool-Definitionen (*.tool.ts).

src/mcp-server/resources/

Ressourcen-Definitionen (*.resource.ts).

src/services/

Integrationen von Domänendiensten (MathService).

src/config/

Parsing und Validierung von Umgebungsvariablen mit Zod.

docs/

Generierter Verzeichnisbaum.


Entwicklungsleitfaden

Siehe AGENTS.md oder CLAUDE.md für Entwicklungsrichtlinien und Architekturregeln. Die Kurzfassung:

  • Handler werfen Fehler, das Framework fängt sie — kein try/catch in der Tool-Logik

  • Verwenden Sie ctx.log für die Protokollierung

  • Registrieren Sie neue Tools und Ressourcen in src/index.ts


Mitwirken

Issues und Pull Requests sind willkommen. Führen Sie vor dem Einreichen die Prüfungen aus:

bun run devcheck
bun run test

Lizenz

Apache-2.0 — siehe LICENSE für Details.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    High-precision mathematics server for MCP clients, providing exact integer arithmetic, symbolic derivatives, and numerical calculus via LaTeX-style input.
    6
    5 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a token-efficient exact math engine for AI agents, enabling computation of derivatives, integrals, equations, and optimized Python/NumPy code via a single MCP tool.
    8
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Safe MCP server for math operations: evaluate, simplify, and differentiate expressions with configurable precision, using a sandboxed worker thread and strict AST allowlist to block dangerous input.
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to perform safe sandboxed expression evaluation, symbolic calculus such as derivatives, simplification, equation solving and integration, statistical analysis, and JSON-native matrix operations. Everything is computed statelessly through the Model Context Protocol over stdio, HTTP, or SSE.
    118 npm
    MIT