mma-mcp
mma-mcp
Un servidor del Model Context Protocol (MCP) que envuelve un Wolfram Engine local, permitiendo a los asistentes de IA (Claude, ChatGPT, etc.) realizar matemáticas simbólicas, análisis numérico y visualización de datos mediante Wolfram Language.
Aviso legal: Este es un proyecto personal, independiente y no oficial. No está afiliado, patrocinado, respaldado ni certificado por Wolfram Research, Inc. "Wolfram", "Wolfram Language", "Wolfram Engine", "Mathematica" y las marcas relacionadas son marcas comerciales de Wolfram Research.
Este software no incluye binarios de Wolfram Engine / Mathematica, claves de activación, archivos de licencia u otros materiales propietarios. Los usuarios deben obtener y licenciar de forma independiente su propia copia de Wolfram Engine o Mathematica de acuerdo con los términos de licencia de Wolfram.
El único propósito de este proyecto es permitir que un individuo con licencia invoque su propio kernel de Wolfram instalado localmente a través de asistentes de IA en su propia máquina, dentro del alcance permitido por su licencia. La redistribución del acceso a Wolfram Engine a terceros no es un caso de uso previsto y puede violar los términos de licencia de Wolfram.
Características
Herramientas MCP:
evaluate(texto) yevaluate_image(PNG, experimental) — todas las capacidades de Wolfram Language a través de dos herramientas universalesTransportes: stdio (local) y HTTP con soporte para streaming
Seguridad: Filtrado de expresiones previo al kernel con modos de lista negra/lista blanca y 29 grupos de capacidades
RBAC de cliente: Credenciales por cliente, control de herramientas y políticas de seguridad por rol — para aislar diferentes clientes de IA en la misma máquina
OAuth 2.1: Servidor de autorización para clientes MCP basados en web (Claude.ai, ChatGPT)
Configuración basada en archivos: Un único archivo TOML controla todo el comportamiento
Requisitos previos
Python 3.11+
Wolfram Engine o Mathematica (con licencia adecuada)
Gestor de paquetes uv
Inicio rápido
# 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 serveConfiguración del cliente
Claude Code / VS Code (stdio)
Añadir a su .mcp.json:
{
"mcpServers": {
"mma-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/mma-mcp", "run", "mma-mcp"]
}
}
}Claude Desktop (stdio)
Añadir a su claude_desktop_config.json (Configuración -> Desarrollador -> Editar configuración):
{
"mcpServers": {
"mma-mcp": {
"command": "/path/to/mma-mcp/.venv/bin/mma-mcp"
}
}
}En macOS/Linux, encuentre la configuración en
~/Library/Application Support/Claude/claude_desktop_config.jsono~/.config/Claude/claude_desktop_config.json.
Transporte HTTP
uv run mma-mcp serve --transport http --host 127.0.0.1 --port 8000Configuración
Todos los ajustes residen en mma_mcp.toml (o pyproject.toml bajo [tool.mma-mcp).
uv run mma-mcp init # generates mma_mcp.toml with commentsSecciones clave:
Sección | Descripción |
| Ruta del kernel de Wolfram, tiempo de espera, formato de salida |
| Modo de transporte, host, puerto |
| Modo de lista negra/lista blanca, grupos de capacidades |
| Qué herramientas MCP exponer |
| Dominio y proveedor de DNS para HTTPS (Caddy) |
| Identidad del cliente y control de acceso basado en roles |
Seguridad
Las expresiones se filtran antes de llegar al kernel de Wolfram. Los símbolos se extraen mediante expresiones regulares y se verifican contra la política activa.
Modo de lista negra (predeterminado): bloquea grupos peligrosos (system_exec, E/S de archivos, redes, evaluación dinámica).
Modo de lista blanca: solo permite símbolos de grupos habilitados explícitamente.
29 grupos de capacidades (22 seguros + 7 peligrosos) cubren aproximadamente 6000 símbolos de Wolfram Language. Regenere desde su kernel local:
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)Identidad y roles del cliente
Al usar el transporte HTTP, puede configurar credenciales y roles por cliente para aislar diferentes clientes de IA (por ejemplo, Claude y ChatGPT) que se conectan al mismo kernel:
# Generate password hash
uv run mma-mcp hash-password
# Generate TOML snippet for a new client
uv run mma-mcp add-client alice --role adminCada cliente está vinculado a un rol que controla a qué herramientas puede acceder, qué símbolos de Wolfram puede usar y límites de recursos (tiempo de espera, tamaño del resultado). Los clientes concurrentes se aíslan mediante un grupo de trabajadores del kernel: cada llamada a la herramienta se ejecuta en un proceso de kernel exclusivo con un contexto de WL temporal.
Consulte la sección [auth] en mma_mcp.toml para obtener detalles de configuración.
Desarrollo
# Run tests
uv run pytest tests/ -v
# Inspect MCP tools interactively
uv run mcp dev src/mma_mcp/server.pyComandos CLI
Comando | Descripción |
| Iniciar el servidor MCP (predeterminado) |
| Generar |
| Generar JSONs de grupos de seguridad desde el kernel local |
| Generar Caddyfile para HTTPS |
| Hashear una contraseña para la configuración |
| Generar fragmento TOML para un nuevo cliente de IA |
Compatibilidad del cliente
Cliente | Cálculos largos | Notas |
Claude.ai | ✔ Soportado | Envía |
ChatGPT | ✘ Puede agotar el tiempo | No envía |
Claude Desktop / Claude Code | No probado | Transporte stdio local |
Licencia
MIT — se aplica solo al código en este repositorio. El uso de Wolfram Engine / Mathematica se rige por los propios términos de licencia de 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