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

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.

Loading...

O involucrando la relatividad general:

Calcula la traza del tensor de Ricci Loading... usando la métrica inversa Loading... para el espacio-tiempo Anti-de Sitter para determinar su curvatura escalar constante Loading....

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:

HerramientaIdentificación de la herramientaDescripción
Introducción de variablesintroIntroduce una variable con supuestos específicos y la almacena
Variables múltiplesintro_manyIntroduce múltiples variables con supuestos específicos simultáneamente
Analizador de expresionesintroduce_expressionAnaliza una cadena de expresión utilizando variables locales disponibles y la almacena
Impresora LaTeXprint_latex_expressionImprime una expresión almacenada en formato LaTeX, junto con suposiciones variables
Solucionador algebraicosolve_algebraicallyResuelve una ecuación algebraicamente para una variable dada en un dominio dado
Solucionador linealsolve_linear_systemResuelve un sistema de ecuaciones lineales
Solucionador no linealsolve_nonlinear_systemResuelve un sistema de ecuaciones no lineales
Variable de funciónintroduce_functionIntroduce una variable de función para su uso en ecuaciones diferenciales.
Solucionador de EDOdsolve_odeResuelve una ecuación diferencial ordinaria
Solucionador de EDPpdsolve_pdeResuelve una ecuación diferencial parcial
Métrica estándarcreate_predefined_metricCrea una métrica espacio-temporal predefinida (por ejemplo, Schwarzschild, Kerr, Minkowski)
Búsqueda métricasearch_predefined_metricsBusca métricas predefinidas disponibles
Calculadora de tensorescalculate_tensorCalcula tensores a partir de una métrica (tensores de Ricci, Einstein, Weyl)
Métrica personalizadacreate_custom_metricCrea un tensor métrico personalizado a partir de los componentes y símbolos proporcionados
Tensor LaTeXprint_latex_tensorImprime una expresión tensorial almacenada en formato LaTeX
Simplificadorsimplify_expressionSimplifica una expresión matemática utilizando la función canonicalize de SymPy
Sustituciónsubstitute_expressionSustituye una variable con una expresión en otra expresión
Integraciónintegrate_expressionIntegra una expresión con respecto a una variable
Diferenciacióndifferentiate_expressionDerivamos una expresión con respecto a una variable
Coordenadascreate_coordinate_systemCrea un sistema de coordenadas 3D para operaciones de cálculo vectorial.
Campo vectorialcreate_vector_fieldCrea un campo vectorial en el sistema de coordenadas especificado
Rizocalculate_curlCalcula el rizo de un campo vectorial
Divergenciacalculate_divergenceCalcula la divergencia de un campo vectorial
Gradientecalculate_gradientCalcula el gradiente de un campo escalar
Convertidor de unidadesconvert_to_unitsConvierte una cantidad a unidades objetivo dadas
Simplificador de unidadesquantity_simplify_unitsSimplifica una cantidad con unidades.
Creador de matricescreate_matrixCrea una matriz SymPy a partir de los datos proporcionados
Determinantematrix_determinantCalcula el determinante de una matriz
Matriz inversamatrix_inverseCalcula la inversa de una matriz
Valores propiosmatrix_eigenvaluesCalcula los valores propios de una matriz
vectores propiosmatrix_eigenvectorsCalcula 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 Loading....

PropiedadValor
commutativeverdadero
complexverdadero
finiteverdadero
infiniteFALSO

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:

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.

Loading...

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:

Loading...

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:

Loading...

Ejemplo de interacción 2: Relatividad general

Usuario : Calcule la traza del tensor de Ricci Loading... usando la métrica inversa Loading... para el espacio-tiempo Anti-de Sitter para determinar su curvatura escalar constante Loading....

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:

Loading...

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:

Loading...

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.

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.

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
                              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