Skip to main content
Glama

Symbolic Algebra MCP Server

by sdiehl

Servidor MCP de álgebra simbólica

Sympy-MCP es un servidor de Protocolo de Contexto de Modelo que permite a los LLM realizar matemáticas simbólicas y álgebra computacional de forma autónoma. Ofrece numerosas herramientas de la funcionalidad principal de SymPy a clientes MCP para manipular expresiones y ecuaciones matemáticas.

¿Por qué?

Los modelos de lenguaje son pésimos en la manipulación simbólica. Alucinan variables, inventan constantes aleatorias, permutan términos y, en general, crean un caos. Pero contamos con sistemas de álgebra computacional diseñados específicamente para la manipulación simbólica, lo que nos permite usar herramientas para orquestar una secuencia de transformaciones, de modo que el núcleo simbólico se encargue de todo el trabajo pesado.

Si bien es posible hacer que un LLM genere código Mathematica o Python, si desea utilizar el LLM como agente o calculadora sobre la marcha, es una mejor experiencia utilizar el servidor MCP y exponer las herramientas simbólicas directamente.

El servidor expone un subconjunto de capacidades de matemática simbólica que incluyen resolución de ecuaciones algebraicas, integración y diferenciación, cálculo vectorial, cálculo tensorial para relatividad general y ecuaciones diferenciales tanto ordinarias como parciales.

Por ejemplo, puedes pedirle en lenguaje natural que resuelva una ecuación diferencial:

Resuelva el oscilador armónico amortiguado con término de forzamiento: el sistema masa-resorte-amortiguador descrito por la ecuación diferencial donde m es masa, c es el coeficiente de amortiguamiento, k es la constante del resorte y F(t) es una fuerza externa.

$$ m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F(t) $$

O involucrando la relatividad general:

Calcula la traza del tensor de Ricci $R_{\mu\nu}$ usando la métrica inversa $g^{\mu\nu}$ para el espacio-tiempo Anti-de Sitter para determinar su curvatura escalar constante $R$.

Uso

Primero necesitas rayos ultravioleta .

  • Homebrew - brew install uv

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

Luego puedes instalar y ejecutar el servidor con los siguientes comandos:

# 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

Debería ver el servidor disponible en la aplicación Claude Desktop. Para otros clientes, consulte a continuación.

Si quieres una versión completamente independiente que se ejecute con un solo comando, puedes usar lo siguiente. Ten en cuenta que se ejecuta código arbitrario de Github, así que ten cuidado.

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

Si desea realizar cálculos de relatividad general, necesita instalar la biblioteca einsteinpy .

uv sync --group relativity

Herramientas disponibles

El servidor sympy-mcp proporciona las siguientes herramientas para matemáticas simbólicas:

Herramienta

Identificación de la herramienta

Descripción

Introducción de variables

intro

Introduce una variable con supuestos específicos y la almacena

Variables múltiples

intro_many

Introduce múltiples variables con supuestos específicos simultáneamente

Analizador de expresiones

introduce_expression

Analiza una cadena de expresión utilizando variables locales disponibles y la almacena

Impresora LaTeX

print_latex_expression

Imprime una expresión almacenada en formato LaTeX, junto con suposiciones variables

Solucionador algebraico

solve_algebraically

Resuelve una ecuación algebraicamente para una variable dada en un dominio dado

Solucionador lineal

solve_linear_system

Resuelve un sistema de ecuaciones lineales

Solucionador no lineal

solve_nonlinear_system

Resuelve un sistema de ecuaciones no lineales

Variable de función

introduce_function

Introduce una variable de función para su uso en ecuaciones diferenciales.

Solucionador de EDO

dsolve_ode

Resuelve una ecuación diferencial ordinaria

Solucionador de EDP

pdsolve_pde

Resuelve una ecuación diferencial parcial

Métrica estándar

create_predefined_metric

Crea una métrica espacio-temporal predefinida (por ejemplo, Schwarzschild, Kerr, Minkowski)

Búsqueda métrica

search_predefined_metrics

Busca métricas predefinidas disponibles

Calculadora de tensores

calculate_tensor

Calcula tensores a partir de una métrica (tensores de Ricci, Einstein, Weyl)

Métrica personalizada

create_custom_metric

Crea un tensor métrico personalizado a partir de los componentes y símbolos proporcionados

Tensor LaTeX

print_latex_tensor

Imprime una expresión tensorial almacenada en formato LaTeX

Simplificador

simplify_expression

Simplifica una expresión matemática utilizando la función canonicalize de SymPy

Sustitución

substitute_expression

Sustituye una variable con una expresión en otra expresión

Integración

integrate_expression

Integra una expresión con respecto a una variable

Diferenciación

differentiate_expression

Derivamos una expresión con respecto a una variable

Coordenadas

create_coordinate_system

Crea un sistema de coordenadas 3D para operaciones de cálculo vectorial.

Campo vectorial

create_vector_field

Crea un campo vectorial en el sistema de coordenadas especificado

Rizo

calculate_curl

Calcula el rizo de un campo vectorial

Divergencia

calculate_divergence

Calcula la divergencia de un campo vectorial

Gradiente

calculate_gradient

Calcula el gradiente de un campo escalar

Convertidor de unidades

convert_to_units

Convierte una cantidad a unidades objetivo dadas

Simplificador de unidades

quantity_simplify_units

Simplifica una cantidad con unidades.

Creador de matrices

create_matrix

Crea una matriz SymPy a partir de los datos proporcionados

Determinante

matrix_determinant

Calcula el determinante de una matriz

Matriz inversa

matrix_inverse

Calcula la inversa de una matriz

Valores propios

matrix_eigenvalues

Calcula los valores propios de una matriz

vectores propios

matrix_eigenvectors

Calcula los vectores propios de una matriz

Por defecto, las variables se predefinen con supuestos (similar al funcionamiento de la función symbols() en SymPy). A menos que se especifique lo contrario, se asume por defecto que una variable es compleja y conmutativa, con un término en el cuerpo complejo $\mathbb{C}$.

Propiedad

Valor

commutative

verdadero

complex

verdadero

finite

verdadero

infinite

FALSO

Configuración del escritorio de Claude

Normalmente, el comando mcp install agregará automáticamente el servidor al archivo claude_desktop_config.json . Si no es así, busque el archivo de configuración y agregue lo siguiente:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Ventanas: %APPDATA%\Claude\claude_desktop_config.json

Agregue lo siguiente al objeto mcpServers , reemplazando /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py con la ruta absoluta al archivo 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" ] } } }

Configuración del cursor

En su ~/.cursor/mcp.json , agregue lo siguiente, donde ABSOLUTE_PATH_TO_SYMPY_MCP es la ruta al archivo 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" ] } } }

Configuración de VS Code

VS Code y VS Code Insiders ahora admiten MCP en modo agente . Para VS Code, es posible que deba habilitar Chat > Agent: Enable en la configuración.

  1. Configuración con un solo clic:

Instalar en VS Code

Instalar en VS Code Insiders

O agregue manualmente la configuración a su settings.json (global):

{ "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. Haga clic en "Iniciar" sobre la configuración del servidor, abra un archivo Python o matemático, cambie al modo agente en el chat y pruebe comandos como "integrar x^2" o "resolver x^2 = 1" para comenzar.

Configuración de Cline

Para usar Cline , primero debe ejecutar manualmente el servidor MCP con los comandos de la sección "Uso". Una vez que el servidor MCP esté en ejecución, abra Cline y seleccione "Servidores MCP" en la parte superior.

Luego seleccione “Servidores remotos” y agregue lo siguiente:

  • Nombre del servidor: sympy-mcp

  • URL del servidor: http://127.0.0.1:8081/sse

Configuración de 5ire

Otro cliente MCP que admite múltiples modelos (o3, o4-mini, DeepSeek-R1, etc.) en el backend es 5ire.

Para configurar con 5ire , abra 5ire y vaya a Herramientas -> Nuevo y configure las siguientes configuraciones:

  • Clave de herramienta: sympy-mcp

  • Nombre: SymPy MCP

  • Comando: /opt/homebrew/bin/uv run --with einsteinpy --with mcp[cli] --with pydantic --with sympy mcp run /ABSOLUTE_PATH_TO/server.py

Reemplace /ABSOLUTE_PATH_TO/server.py con la ruta real a su archivo sympy-mcp server.py.

Corriendo en contenedor

Puede construir y ejecutar el servidor usando Docker localmente:

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

Alternativamente, puede extraer la imagen prediseñada de 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

Para configurar Claude Desktop para que inicie el contenedor Docker, edite su archivo claude_desktop_config.json :

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

O utilizar el contenedor prediseñado desde GitHub:

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

Esta configuración indica a Claude Desktop que inicie el contenedor Docker cuando sea necesario. Asegúrese de compilar la imagen de Docker ( docker build -t sympy-mcp . ) antes de usar Claude Desktop con esta configuración.

Los otros métodos de instalación también se pueden adaptar para funcionar con Docker si cambia el comando uv para utilizar el comando docker run en su lugar.

Ejemplo de interacción 1: ecuaciones diferenciales

A continuación se muestra un ejemplo de cómo funciona la llamada de herramientas en una conversación con un asistente de IA que utiliza este servidor MCP:

Usuario : Resuelva el oscilador armónico amortiguado con término de forzamiento: el sistema masa-resorte-amortiguador descrito por la ecuación diferencial donde m es masa, c es el coeficiente de amortiguamiento, k es la constante del resorte y F(t) es una fuerza externa.

$$ m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F(t) $$

Asistente : (Llamada a herramienta interna) intro_many para introducir variables:

{ "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": []} ] }

Asistente : (Llamada a la herramienta interna) introduce_function para definir x(t):

{ "func_name": "x" }

Asistente : (Llamada a la herramienta interna) introduce_expression para crear la ecuación diferencial:

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

Asistente : (Llamada a la herramienta interna) print_latex_expression para mostrar la ecuación correctamente:

{ "expr_key": "expr_12" }

Resultado:

$$ c \frac{d}{dt} x{\left(t \right)} + kx{\left(t \right)} + m \frac{d^{2}}{dt^{2}} x{\left(t \right)} = F{\left(t \right)} $$

Asistente : (Llamada a la herramienta interna) introduce_function para definir F(t):

{ "func_name": "F" }

Asistente : (Llamada a la herramienta interna) dsolve_ode para resolver la ecuación diferencial:

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

Resultado:

$$ x{\left(t \right)} = C_{1} e^{\frac{t \left(- c + \sqrt{c^{2} - 4 km}\right)}{2 m}} + C_{2} e^{- \frac{t \left(c + \sqrt{c^{2} - 4 km}\right)}{2 m}} + \cdots $$

Ejemplo de interacción 2: Relatividad general

Usuario : Calcule la traza del tensor de Ricci $R_{\mu\nu}$ usando la métrica inversa $g^{\mu\nu}$ para el espacio-tiempo Anti-de Sitter para determinar su curvatura escalar constante $R$.

Asistente : (Llamada a la herramienta interna) create_predefined_metric para crear la métrica Anti-de Sitter:

{ "metric_name": "AntiDeSitter" }

Asistente : (Llamada a la herramienta interna) calculate_tensor para calcular el tensor de Ricci:

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

Asistente : (Llamada a la herramienta interna) print_latex_tensor para mostrar el tensor de Ricci:

{ "tensor_key": "riccitensor_metric_AntiDeSitter" }

Resultado:

$$ \left[\begin{matriz}3 & 0 & 0 & 0\\0 & - 3 \cos^{2}{\left(t \right)} & 0 & 0\\0 & 0 & - 3 \cos^{2}{\left(t \right)} \sinh^{2}{\left(\chi \right)} & 0\\0 & 0 & 0 & - 3 \sin^{2}{\left(\theta \right)} \cos^{2}{\left(t \right)} \sinh^{2}{\left(\chi \right)}\end{matriz}\right] $$

Asistente : (Llamada a la herramienta interna) calculate_tensor para calcular el escalar de Ricci:

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

Asistente : (Llamada a la herramienta interna) print_latex_tensor para mostrar el escalar de Ricci:

{ "tensor_key": "ricciscalar_metric_AntiDeSitter" }

Resultado:

$$ -12 $$

Descargo de responsabilidad de seguridad

Este servidor se ejecuta en tu ordenador y permite que el modelo de lenguaje ejecute la lógica de Python. En particular, utiliza parse_expr de Sympy para analizar expresiones matemáticas, que a su vez utiliza eval internamente, lo que permite la ejecución de código arbitrario. Al ejecutar el servidor, confías en el código que genera Claude. Ejecutar en la imagen de Docker es un poco más seguro, pero aun así es recomendable revisar el código antes de ejecutarlo.

Licencia

Derechos de autor 2025 Stephen Diehl.

Este proyecto está licenciado bajo la licencia Apache 2.0. Consulte el archivo de licencia para obtener más información.

Deploy Server
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.

Un servidor de protocolo de contexto de modelo que permite a los LLM realizar de forma autónoma matemáticas simbólicas y álgebra computacional a través de la funcionalidad de SymPy para manipular expresiones y ecuaciones matemáticas.

  1. ¿Por qué?
    1. Uso
      1. Herramientas disponibles
        1. Configuración del escritorio de Claude
          1. Configuración del cursor
            1. Configuración de VS Code
              1. Configuración de Cline
                1. Configuración de 5ire
                  1. Corriendo en contenedor
                    1. Ejemplo de interacción 1: ecuaciones diferenciales
                      1. Ejemplo de interacción 2: Relatividad general
                        1. Descargo de responsabilidad de seguridad
                          1. Licencia

                            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
                              35
                              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
                              121
                              MIT License
                              • Linux
                              • Apple
                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that provides basic calculator functionality for LLMs, enabling them to perform mathematical operations like addition, subtraction, multiplication, division, modulo, and square root.
                              Last updated -
                              6
                              222
                              14
                              MIT License
                              • Linux
                            • A
                              security
                              F
                              license
                              A
                              quality
                              A simple server that provides basic mathematical operations (sum and subtraction) through the Model Context Protocol.
                              Last updated -
                              2
                              1

                            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