Symbolic Algebra MCP Server

by sdiehl
Integrations
  • Enables containerized deployment of the MCP server through Docker images

  • Provides access to the server through GitHub Container Registry for easy deployment

  • Provides LaTeX rendering of mathematical expressions and tensors for clear visualization of symbolic mathematics

Сервер символической алгебры MCP

Sympy-MCP — это сервер Model Context Protocol, позволяющий LLM автономно выполнять символьную математику и компьютерную алгебру. Он предоставляет клиентам MCP многочисленные инструменты из основных функций SymPy для манипулирования математическими выражениями и уравнениями.

Почему?

Языковые модели абсолютно ужасны в символической манипуляции. Они галлюцинируют переменные, создают случайные константы, переставляют термины и вообще создают беспорядок. Но у нас есть системы компьютерной алгебры, специально созданные для символической манипуляции, поэтому мы можем использовать вызов инструментов для организации последовательности преобразований, чтобы символическое ядро выполняло всю тяжелую работу.

Конечно, вы можете заставить LLM генерировать код Mathematica или Python, но если вы хотите использовать LLM в качестве агента или калькулятора «на лету», лучше использовать сервер MCP и предоставлять символьные инструменты напрямую.

Сервер предоставляет подмножество возможностей символьной математики, включая решение алгебраических уравнений, интегрирование и дифференцирование, векторное исчисление, тензорное исчисление для общей теории относительности, а также обыкновенные и частные дифференциальные уравнения.

Например, вы можете попросить его на естественном языке решить дифференциальное уравнение:

Решите затухающий гармонический осциллятор с вынуждающим членом: система масса-пружина-демпфер, описываемая дифференциальным уравнением, где m — масса, c — коэффициент затухания, k — жесткость пружины, а F(t) — внешняя сила.

Loading...

Или с использованием общей теории относительности:

Вычислите след тензора Риччи Loading..., используя обратную метрику Loading... для пространства-времени Анти-де Ситтера, чтобы определить его постоянную скалярную кривизну Loading....

Использование

Сначала вам понадобится УФ .

  • Homebrew - brew install uv
  • Curl - curl -LsSf https://astral.sh/uv/install.sh | sh

Затем вы можете установить и запустить сервер с помощью следующих команд:

# Setup the project git clone https://github.com/sdiehl/sympy-mcp.git cd sympy-mcp uv sync # Install the server to Claude Desktop uv run mcp install server.py # Run the server uv run mcp run server.py

Теперь вы должны увидеть сервер, доступный в приложении Claude Desktop. Для других клиентов см. ниже.

Если вам нужна полностью автономная версия, которая запускается одной командой, вы можете использовать следующее. Обратите внимание, что это запуск произвольного кода из Github, поэтому будьте осторожны.

uv run --with https://github.com/sdiehl/sympy-mcp/releases/download/0.1/sympy_mcp-0.1.0-py3-none-any.whl python server.py

Если вы хотите выполнить расчеты общей теории относительности, вам необходимо установить библиотеку einsteinpy .

uv sync --group relativity

Доступные инструменты

Сервер sympy-mcp предоставляет следующие инструменты для символьной математики:

ИнструментИдентификатор инструментаОписание
Введение переменнойintroВводит переменную с указанными предположениями и сохраняет ее
Множественные переменныеintro_manyВводит несколько переменных с указанными предположениями одновременно
Анализатор выраженийintroduce_expressionАнализирует строку выражения, используя доступные локальные переменные, и сохраняет ее
Латексный принтерprint_latex_expressionПечатает сохраненное выражение в формате LaTeX вместе с переменными предположениями.
Алгебраический решательsolve_algebraicallyРешает уравнение алгебраически относительно заданной переменной в заданной области
Линейный решательsolve_linear_systemРешает систему линейных уравнений
Нелинейный решательsolve_nonlinear_systemРешает систему нелинейных уравнений
Функция Переменнаяintroduce_functionВводит функциональную переменную для использования в дифференциальных уравнениях.
Решатель ОДУdsolve_odeРешает обыкновенное дифференциальное уравнение
Решатель уравнений в частных производныхpdsolve_pdeРешает уравнение в частных производных
Стандартная метрикаcreate_predefined_metricСоздает предопределенную метрику пространства-времени (например, Шварцшильда, Керра, Минковского)
Метрический поискsearch_predefined_metricsПоиск доступных предопределенных метрик
Калькулятор тензораcalculate_tensorВычисляет тензоры из метрики (тензоры Риччи, Эйнштейна, Вейля)
Пользовательская метрикаcreate_custom_metricСоздает пользовательский метрический тензор из предоставленных компонентов и символов.
Тензорный LaTeXprint_latex_tensorПечатает сохраненное выражение тензора в формате LaTeX
Упростительsimplify_expressionУпрощает математическое выражение с помощью функции канонизации SymPy
Заменаsubstitute_expressionЗаменяет переменную выражением в другом выражении.
Интеграцияintegrate_expressionИнтегрирует выражение относительно переменной
Дифференциацияdifferentiate_expressionДифференцирует выражение по переменной
Координатыcreate_coordinate_systemСоздает трехмерную систему координат для операций векторного исчисления
Вектор поляcreate_vector_fieldСоздает векторное поле в указанной системе координат.
Завитокcalculate_curlВычисляет ротор векторного поля
Дивергенцияcalculate_divergenceВычисляет дивергенцию векторного поля
Градиентcalculate_gradientВычисляет градиент скалярного поля
Конвертер единицconvert_to_unitsПреобразует количество в заданные целевые единицы
Упрощенный блокquantity_simplify_unitsУпрощает количество с единицами измерения
Создатель Матрицыcreate_matrixСоздает матрицу SymPy из предоставленных данных
Определительmatrix_determinantВычисляет определитель матрицы
Обратная матрицаmatrix_inverseВычисляет обратную матрицу
Собственные значенияmatrix_eigenvaluesВычисляет собственные значения матрицы
Собственные векторыmatrix_eigenvectorsВычисляет собственные векторы матрицы

По умолчанию переменные предопределены с предположениями (аналогично тому, как работает функция symbols() в SymPy). Если не указано иное, предположения по умолчанию таковы, что переменная является комплексной, коммутативной, термом над комплексным полем Loading....

СвойствоЦенить
commutativeистинный
complexистинный
finiteистинный
infiniteЛОЖЬ

Настройка рабочего стола Клода

Обычно команда mcp install автоматически добавляет сервер в файл claude_desktop_config.json . Если этого не произошло, вам нужно найти файл конфигурации и добавить следующее:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Добавьте следующее к объекту mcpServers , заменив /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py на абсолютный путь к файлу sympy-mcp server.py .

{ "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }

Настройка курсора

В файле ~/.cursor/mcp.json добавьте следующее, где ABSOLUTE_PATH_TO_SYMPY_MCP — это путь к файлу sympy-mcp server.py.

{ "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }

Настройка VS-кода

VS Code и VS Code Insiders теперь поддерживают MCP в режиме агента . Для VS Code вам может потребоваться включить Chat > Agent: Enable в настройках.

  1. Настройка в один клик:

ИЛИ вручную добавьте конфигурацию в settings.json (глобальный):

{ "mcp": { "servers": { "sympy-mcp": { "command": "uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } } }
  1. Нажмите «Пуск» над конфигурацией сервера, откройте файл Python или математический файл, переключитесь в режим агента в чате и попробуйте команды типа «интегрировать x^2» или «решить x^2 = 1», чтобы начать.

Установка Клайна

Для использования с Cline вам необходимо вручную запустить сервер MCP сначала с помощью команд в разделе «Использование». После запуска сервера MCP откройте Cline и выберите «Серверы MCP» вверху.

Затем выберите «Удаленные серверы» и добавьте следующее:

  • Имя сервера: sympy-mcp
  • URL-адрес сервера: http://127.0.0.1:8081/sse

Настройка 5ire

Еще один клиент MCP, поддерживающий несколько моделей (o3, o4-mini, DeepSeek-R1 и т. д.) на бэкэнде — это 5ire.

Чтобы настроить 5ire , откройте 5ire, перейдите в Инструменты -> Создать и установите следующие конфигурации:

  • Ключ инструмента: sympy-mcp
  • Имя: SymPy MCP
  • Команда: /opt/homebrew/bin/uv run --with einsteinpy --with mcp[cli] --with pydantic --with sympy mcp run /ABSOLUTE_PATH_TO/server.py

Замените /ABSOLUTE_PATH_TO/server.py фактическим путем к вашему файлу sympy-mcp server.py.

Работает в контейнере

Вы можете создать и запустить сервер с помощью Docker локально:

# Build the Docker image docker build -t sympy-mcp . # Run the Docker container docker run -p 8081:8081 sympy-mcp

Кроме того, вы можете извлечь готовый образ из GitHub Container Registry:

# Pull the latest image docker pull ghcr.io/sdiehl/sympy-mcp:latest # Run the container docker run -p 8081:8081 --rm ghcr.io/sdiehl/sympy-mcp:latest

Чтобы настроить Claude Desktop для запуска контейнера Docker, отредактируйте файл claude_desktop_config.json :

{ "mcpServers": { "sympy-mcp": { "command": "docker", "args": [ "run", "-i", "-p", "8081:8081", "--rm", "sympy-mcp" ] } } }

Или использовать готовый контейнер с GitHub:

{ "mcpServers": { "sympy-mcp": { "command": "docker", "args": [ "run", "-i", "-p", "8081:8081", "--rm", "ghcr.io/sdiehl/sympy-mcp:latest" ] } } }

Эта конфигурация сообщает Claude Desktop о необходимости запуска контейнера Docker при необходимости. Обязательно соберите образ Docker ( docker build -t sympy-mcp . ) перед использованием Claude Desktop с этой конфигурацией.

Другие методы установки также можно адаптировать для работы с Docker, если изменить команду uv на команду docker run.

Пример взаимодействия 1: Дифференциальные уравнения

Вот пример того, как работает вызов инструментов в разговоре с помощником на основе искусственного интеллекта с использованием этого сервера MCP:

Пользователь : Решить затухающий гармонический осциллятор с вынуждающим членом: система масса-пружина-демпфер, описываемая дифференциальным уравнением, где m — масса, c — коэффициент затухания, k — жесткость пружины, а F(t) — внешняя сила.

Loading...

Помощник : (Внутренний вызов инструмента) intro_many для введения переменных:

{ "variables": [ {"var_name": "t", "pos_assumptions": ["real"], "neg_assumptions": []}, {"var_name": "m", "pos_assumptions": ["real", "positive"], "neg_assumptions": []}, {"var_name": "c", "pos_assumptions": ["real", "positive"], "neg_assumptions": []}, {"var_name": "k", "pos_assumptions": ["real", "positive"], "neg_assumptions": []} ] }

Помощник : (Внутренний вызов инструмента) introduce_function для определения x(t):

{ "func_name": "x" }

Помощник : (Внутренний вызов инструмента) introduce_expression для создания дифференциального уравнения:

{ "expr_str": "Eq(m*Derivative(x(t), t, t) + c*Derivative(x(t), t) + k*x(t), F(t))" }

Помощник : (Внутренний вызов инструмента) print_latex_expression для удобного отображения уравнения:

{ "expr_key": "expr_12" }

Результат:

Loading...

Помощник : (Внутренний вызов инструмента) introduce_function для определения F(t):

{ "func_name": "F" }

Помощник : (Внутренний вызов инструмента) dsolve_ode для решения дифференциального уравнения:

{ "expr_key": "expr_12", "func_name": "x" }

Результат:

Loading...

Пример взаимодействия 2: Общая теория относительности

Пользователь : Вычислить след тензора Риччи Loading..., используя обратную метрику Loading... для пространства-времени Анти-де Ситтера, чтобы определить его постоянную скалярную кривизну Loading....

Помощник : (Внутренний вызов инструмента) create_predefined_metric для создания метрики Анти-де Ситтера:

{ "metric_name": "AntiDeSitter" }

Помощник : (Внутренний вызов инструмента) calculate_tensor для вычисления тензора Риччи:

{ "metric_key": "metric_AntiDeSitter", "tensor_type": "RICCI_TENSOR", "simplify_result": true }

Помощник : (Внутренний вызов инструмента) print_latex_tensor для отображения тензора Риччи:

{ "tensor_key": "riccitensor_metric_AntiDeSitter" }

Результат:

Loading...

Помощник : (Внутренний вызов инструмента) calculate_tensor для вычисления скаляра Риччи:

{ "metric_key": "metric_AntiDeSitter", "tensor_type": "RICCI_SCALAR", "simplify_result": true }

Помощник : (Внутренний вызов инструмента) print_latex_tensor для отображения скаляра Риччи:

{ "tensor_key": "ricciscalar_metric_AntiDeSitter" }

Результат:

Loading...

Отказ от ответственности за безопасность

Этот сервер работает на вашем компьютере и предоставляет языковой модели доступ к запуску логики Python. В частности, он использует parse_expr Sympy для разбора математических выражений, что использует eval под капотом, фактически позволяя выполнять произвольный код. Запуская сервер, вы доверяете коду, который генерирует Клод. Запуск в образе Docker немного безопаснее, но все равно хорошей идеей будет просмотреть код перед его запуском.

Лицензия

Авторские права 2025 г. Стивен Диль.

Этот проект лицензирован по лицензии Apache 2.0. Подробности смотрите в файле LICENSE .

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер протокола контекста модели, позволяющий магистрам права автономно выполнять символьную математику и компьютерную алгебру с помощью функциональных возможностей SymPy для манипулирования математическими выражениями и уравнениями.

  1. Почему?
    1. Использование
      1. Доступные инструменты
        1. Настройка рабочего стола Клода
          1. Настройка курсора
            1. Настройка VS-кода
              1. Установка Клайна
                1. Настройка 5ire
                  1. Работает в контейнере
                    1. Пример взаимодействия 1: Дифференциальные уравнения
                      1. Пример взаимодействия 2: Общая теория относительности
                        1. Отказ от ответственности за безопасность
                          1. Лицензия

                            Related MCP Servers

                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.
                              Last updated -
                              13
                              13
                              TypeScript
                              MIT License
                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that enables LLMs to perform precise numerical calculations by evaluating mathematical expressions.
                              Last updated -
                              1
                              48
                              Python
                              MIT License
                              • Linux
                              • Apple
                            • -
                              security
                              F
                              license
                              -
                              quality
                              A Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.
                              Last updated -
                              Python
                            • A
                              security
                              F
                              license
                              A
                              quality
                              A Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.
                              Last updated -
                              9
                              8
                              Python
                              • Linux
                              • Apple

                            View all related MCP servers

                            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/sdiehl/sympy-mcp'

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