Skip to main content
Glama

mma-mcp

Chinese / 中文版

Ein Model Context Protocol (MCP)-Server, der eine lokale Wolfram Engine einbindet und es KI-Assistenten (Claude, ChatGPT usw.) ermöglicht, symbolische Mathematik, numerische Analysen und Datenvisualisierungen über die Wolfram Language durchzuführen.

Haftungsausschluss: Dies ist ein inoffizielles, unabhängiges, persönliches Projekt. Es ist nicht mit Wolfram Research, Inc. verbunden, wird von dieser nicht gesponsert, unterstützt oder zertifiziert. "Wolfram", "Wolfram Language", "Wolfram Engine", "Mathematica" und zugehörige Marken sind Marken von Wolfram Research.

Diese Software enthält keine Wolfram Engine / Mathematica-Binärdateien, Aktivierungsschlüssel, Lizenzdateien oder andere proprietäre Materialien. Benutzer müssen unabhängig ihre eigene Kopie der Wolfram Engine oder von Mathematica gemäß den Lizenzbedingungen von Wolfram erwerben und ordnungsgemäß lizenzieren.

Der einzige Zweck dieses Projekts besteht darin, einer lizenzierten Einzelperson zu ermöglichen, ihren eigenen, lokal installierten Wolfram-Kernel über KI-Assistenten auf ihrem eigenen Rechner im Rahmen ihrer Lizenz zu nutzen. Die Weitergabe des Zugriffs auf die Wolfram Engine an Dritte ist kein vorgesehener Anwendungsfall und kann gegen die Lizenzbedingungen von Wolfram verstoßen.

Funktionen

  • MCP-Tools: evaluate (Text) und evaluate_image (PNG, experimentell) — alle Funktionen der Wolfram Language über zwei universelle Tools

  • Transporte: stdio (lokal) und Streamable HTTP

  • Sicherheit: Ausdrucksfilterung vor dem Kernel mit Blacklist/Whitelist-Modi und 29 Fähigkeitsgruppen

  • Client-RBAC: Client-spezifische Anmeldedaten, rollenbasierte Tool- und Sicherheitsrichtlinienkontrolle — zur Isolierung verschiedener KI-Clients auf demselben Rechner

  • OAuth 2.1: Autorisierungsserver für webbasierte MCP-Clients (Claude.ai, ChatGPT)

  • Konfigurationsgesteuert: Eine einzige TOML-Datei steuert das gesamte Verhalten

Voraussetzungen

  • Python 3.11+

  • Wolfram Engine oder Mathematica (ordnungsgemäß lizenziert)

  • uv Paketmanager

Schnellstart

# Clone and install
git clone https://github.com/siqiliu-tsinghua/mma-mcp.git
cd mma-mcp
uv sync

# Graphics export dependencies (headless servers only — desktops already have these)
sudo apt-get install -y libfontconfig1 libgl1 libasound2t64 libxkbcommon0 libegl1

# Generate default config
uv run mma-mcp init

# Generate security group files (requires Wolfram kernel, ~1 min)
uv run mma-mcp setup

# Start server (stdio, for local MCP clients)
uv run mma-mcp serve

Client-Konfiguration

Claude Code / VS Code (stdio)

Fügen Sie dies zu Ihrer .mcp.json hinzu:

{
  "mcpServers": {
    "mma-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/mma-mcp", "run", "mma-mcp"]
    }
  }
}

Claude Desktop (stdio)

Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu (Einstellungen -> Entwickler -> Konfiguration bearbeiten):

{
  "mcpServers": {
    "mma-mcp": {
      "command": "/path/to/mma-mcp/.venv/bin/mma-mcp"
    }
  }
}

Unter macOS/Linux finden Sie die Konfiguration unter ~/Library/Application Support/Claude/claude_desktop_config.json oder ~/.config/Claude/claude_desktop_config.json.

HTTP-Transport

uv run mma-mcp serve --transport http --host 127.0.0.1 --port 8000

Konfiguration

Alle Einstellungen befinden sich in mma_mcp.toml (oder pyproject.toml unter [tool.mma-mcp]).

uv run mma-mcp init  # generates mma_mcp.toml with comments

Schlüsselbereiche:

Bereich

Beschreibung

[kernel]

Pfad zum Wolfram-Kernel, Timeout, Ausgabeformat

[server]

Transportmodus, Host, Port

[security]

Blacklist/Whitelist-Modus, Fähigkeitsgruppen

[tools]

Welche MCP-Tools bereitgestellt werden sollen

[tls]

Domain und DNS-Anbieter für HTTPS (Caddy)

[auth]

Client-Identität und rollenbasierte Zugriffskontrolle

Sicherheit

Ausdrücke werden gefiltert, bevor sie den Wolfram-Kernel erreichen. Symbole werden per Regex extrahiert und gegen die aktive Richtlinie geprüft.

Blacklist-Modus (Standard): blockiert gefährliche Gruppen (system_exec, Datei-I/O, Netzwerk, dynamische Auswertung).

Whitelist-Modus: erlaubt nur Symbole aus explizit aktivierten Gruppen.

29 Fähigkeitsgruppen (22 sicher + 7 gefährlich) decken ca. 6000 Wolfram Language-Symbole ab. Generieren Sie diese neu von Ihrem lokalen Kernel:

uv run mma-mcp setup          # required after cloning (generates from your local kernel)
uv run mma-mcp setup --force   # force regeneration (e.g., after Wolfram Engine upgrade)

Client-Identität & Rollen

Bei Verwendung des HTTP-Transports können Sie Client-spezifische Anmeldedaten und Rollen konfigurieren, um verschiedene KI-Clients (z. B. Claude und ChatGPT), die mit demselben Kernel verbunden sind, zu isolieren:

# Generate password hash
uv run mma-mcp hash-password

# Generate TOML snippet for a new client
uv run mma-mcp add-client alice --role admin

Jeder Client ist an eine Rolle gebunden, die steuert, auf welche Tools er zugreifen kann, welche Wolfram-Symbole er verwenden darf und welche Ressourcenlimits (Timeout, Ergebnisgröße) gelten. Gleichzeitige Clients werden über einen Kernel-Worker-Pool isoliert — jeder Tool-Aufruf läuft in einem exklusiven Kernel-Prozess mit einem temporären WL-Kontext.

Siehe den Abschnitt [auth] in mma_mcp.toml für Konfigurationsdetails.

Entwicklung

# Run tests
uv run pytest tests/ -v

# Inspect MCP tools interactively
uv run mcp dev src/mma_mcp/server.py

CLI-Befehle

Befehl

Beschreibung

mma-mcp serve

Startet den MCP-Server (Standard)

mma-mcp init

Generiert die Standard-mma_mcp.toml

mma-mcp setup

Generiert Sicherheitsgruppen-JSONs vom lokalen Kernel

mma-mcp caddyfile

Generiert Caddyfile für HTTPS

mma-mcp hash-password

Hasht ein Passwort für die Konfiguration

mma-mcp add-client

Generiert TOML-Snippet für einen neuen KI-Client

Client-Kompatibilität

Client

Lange Berechnungen

Hinweise

Claude.ai

✔ Unterstützt

Sendet progressToken; Server-Heartbeat hält die Verbindung aufrecht

ChatGPT

✘ Kann Zeitüberschreitung verursachen

Sendet kein progressToken; hat ein hartes Timeout (~60s), unabhängig vom Server-Heartbeat

Claude Desktop / Claude Code

Nicht getestet

Lokaler stdio-Transport

Lizenz

MIT — gilt nur für den Code in diesem Repository. Die Nutzung der Wolfram Engine / Mathematica unterliegt den eigenen Lizenzbedingungen von Wolfram Research.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/siqiliu-tsinghua/mma-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server