Skip to main content
Glama

mma-mcp

Chinese / 中文版

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) y evaluate_image (PNG, experimental) — todas las capacidades de Wolfram Language a través de dos herramientas universales

  • Transportes: 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 serve

Configuració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.json o ~/.config/Claude/claude_desktop_config.json.

Transporte HTTP

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

Configuració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 comments

Secciones clave:

Sección

Descripción

[kernel]

Ruta del kernel de Wolfram, tiempo de espera, formato de salida

[server]

Modo de transporte, host, puerto

[security]

Modo de lista negra/lista blanca, grupos de capacidades

[tools]

Qué herramientas MCP exponer

[tls]

Dominio y proveedor de DNS para HTTPS (Caddy)

[auth]

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 admin

Cada 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.py

Comandos CLI

Comando

Descripción

mma-mcp serve

Iniciar el servidor MCP (predeterminado)

mma-mcp init

Generar mma_mcp.toml predeterminado

mma-mcp setup

Generar JSONs de grupos de seguridad desde el kernel local

mma-mcp caddyfile

Generar Caddyfile para HTTPS

mma-mcp hash-password

Hashear una contraseña para la configuración

mma-mcp add-client

Generar fragmento TOML para un nuevo cliente de IA

Compatibilidad del cliente

Cliente

Cálculos largos

Notas

Claude.ai

✔ Soportado

Envía progressToken; el heartbeat del servidor mantiene la conexión activa

ChatGPT

✘ Puede agotar el tiempo

No envía progressToken; tiene un tiempo de espera estricto (~60s) independiente del heartbeat del servidor

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.

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