mma-mcp
mma-mcp
Сервер Model Context Protocol (MCP), который является оберткой для локального Wolfram Engine, позволяя ИИ-ассистентам (Claude, ChatGPT и др.) выполнять символьные вычисления, численный анализ и визуализацию данных с помощью языка Wolfram Language.
Отказ от ответственности: Это неофициальный, независимый, личный проект. Он не связан, не спонсируется, не поддерживается и не сертифицирован Wolfram Research, Inc. "Wolfram", "Wolfram Language", "Wolfram Engine", "Mathematica" и связанные с ними знаки являются торговыми марками Wolfram Research.
Данное программное обеспечение не включает в себя какие-либо бинарные файлы Wolfram Engine / Mathematica, ключи активации, файлы лицензий или другие проприетарные материалы. Пользователи должны самостоятельно получить и надлежащим образом лицензировать свою копию Wolfram Engine или Mathematica в соответствии с условиями лицензирования Wolfram.
Единственная цель этого проекта — позволить лицензированному пользователю вызывать свое локально установленное ядро Wolfram через ИИ-ассистентов на своем собственном компьютере в рамках, разрешенных их лицензией. Перераспределение доступа к Wolfram Engine третьим лицам не является предполагаемым сценарием использования и может нарушать условия лицензирования Wolfram.
Возможности
Инструменты MCP:
evaluate(текст) иevaluate_image(PNG, экспериментально) — все возможности Wolfram Language через два универсальных инструментаТранспорты: stdio (локальный) и потоковый HTTP
Безопасность: Фильтрация выражений перед отправкой в ядро с режимами черного/белого списка и 29 группами возможностей
RBAC для клиентов: Учетные данные для каждого клиента, контроль инструментов и политик безопасности для каждой роли — для изоляции различных ИИ-клиентов на одном компьютере
OAuth 2.1: Сервер авторизации для веб-клиентов MCP (Claude.ai, ChatGPT)
Конфигурация: Все поведение управляется одним файлом TOML
Предварительные требования
Python 3.11+
Wolfram Engine или Mathematica (с надлежащей лицензией)
Менеджер пакетов uv
Быстрый старт
# 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Конфигурация клиента
Claude Code / VS Code (stdio)
Добавьте в ваш .mcp.json:
{
"mcpServers": {
"mma-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/mma-mcp", "run", "mma-mcp"]
}
}
}Claude Desktop (stdio)
Добавьте в ваш claude_desktop_config.json (Настройки -> Разработчик -> Редактировать конфигурацию):
{
"mcpServers": {
"mma-mcp": {
"command": "/path/to/mma-mcp/.venv/bin/mma-mcp"
}
}
}В macOS/Linux файл конфигурации находится по адресу
~/Library/Application Support/Claude/claude_desktop_config.jsonили~/.config/Claude/claude_desktop_config.json.
HTTP-транспорт
uv run mma-mcp serve --transport http --host 127.0.0.1 --port 8000Конфигурация
Все настройки находятся в mma_mcp.toml (или pyproject.toml в разделе [tool.mma-mcp]).
uv run mma-mcp init # generates mma_mcp.toml with commentsОсновные разделы:
Раздел | Описание |
| Путь к ядру Wolfram, тайм-аут, формат вывода |
| Режим транспорта, хост, порт |
| Режим черного/белого списка, группы возможностей |
| Какие инструменты MCP предоставлять |
| Домен и DNS-провайдер для HTTPS (Caddy) |
| Идентификация клиента и контроль доступа на основе ролей |
Безопасность
Выражения фильтруются до того, как попадут в ядро Wolfram. Символы извлекаются с помощью регулярных выражений и проверяются на соответствие активной политике.
Режим черного списка (по умолчанию): блокирует опасные группы (system_exec, файловый ввод-вывод, сеть, динамическое выполнение).
Режим белого списка: разрешает только символы из явно включенных групп.
29 групп возможностей (22 безопасные + 7 опасных) охватывают около 6000 символов Wolfram Language. Сгенерируйте их из вашего локального ядра:
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)Идентификация клиентов и роли
При использовании HTTP-транспорта вы можете настроить учетные данные и роли для каждого клиента, чтобы изолировать различных ИИ-клиентов (например, Claude и ChatGPT), подключающихся к одному и тому же ядру:
# 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Каждый клиент привязан к роли, которая определяет, к каким инструментам он имеет доступ, какие символы Wolfram может использовать, а также устанавливает ограничения ресурсов (тайм-аут, размер результата). Параллельные клиенты изолируются через пул рабочих процессов ядра — каждый вызов инструмента выполняется в отдельном процессе ядра с временным контекстом WL.
Подробности конфигурации см. в разделе [auth] в mma_mcp.toml.
Разработка
# Run tests
uv run pytest tests/ -v
# Inspect MCP tools interactively
uv run mcp dev src/mma_mcp/server.pyКоманды CLI
Команда | Описание |
| Запуск MCP-сервера (по умолчанию) |
| Генерация файла |
| Генерация JSON-файлов групп безопасности из локального ядра |
| Генерация Caddyfile для HTTPS |
| Хеширование пароля для конфигурации |
| Генерация фрагмента TOML для нового ИИ-клиента |
Совместимость с клиентами
Клиент | Длительные вычисления | Примечания |
Claude.ai | ✔ Поддерживается | Отправляет |
ChatGPT | ✘ Возможен тайм-аут | Не отправляет |
Claude Desktop / Claude Code | Не тестировалось | Локальный транспорт stdio |
Лицензия
MIT — применяется только к коду в этом репозитории. Использование Wolfram Engine / Mathematica регулируется собственными условиями лицензирования 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