mma-mcp
mma-mcp
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) undevaluate_image(PNG, experimentell) — alle Funktionen der Wolfram Language über zwei universelle ToolsTransporte: 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 serveClient-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.jsonoder~/.config/Claude/claude_desktop_config.json.
HTTP-Transport
uv run mma-mcp serve --transport http --host 127.0.0.1 --port 8000Konfiguration
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 commentsSchlüsselbereiche:
Bereich | Beschreibung |
| Pfad zum Wolfram-Kernel, Timeout, Ausgabeformat |
| Transportmodus, Host, Port |
| Blacklist/Whitelist-Modus, Fähigkeitsgruppen |
| Welche MCP-Tools bereitgestellt werden sollen |
| Domain und DNS-Anbieter für HTTPS (Caddy) |
| 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 adminJeder 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.pyCLI-Befehle
Befehl | Beschreibung |
| Startet den MCP-Server (Standard) |
| Generiert die Standard- |
| Generiert Sicherheitsgruppen-JSONs vom lokalen Kernel |
| Generiert Caddyfile für HTTPS |
| Hasht ein Passwort für die Konfiguration |
| Generiert TOML-Snippet für einen neuen KI-Client |
Client-Kompatibilität
Client | Lange Berechnungen | Hinweise |
Claude.ai | ✔ Unterstützt | Sendet |
ChatGPT | ✘ Kann Zeitüberschreitung verursachen | Sendet kein |
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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