Symbolic Math MCP
Servidor MCP para derivación, cálculo y verificación de matemáticas simbólicas
GitHub
1
Prueba este MCPPatrocinadoDocumentación
symbolic_math_mcp

Verifica simbólicamente cualquier ecuación y cálculo
Requisitos
- Python 3.11+
fastmcp>=3.4.2symbolic-math-verify>=0.1.4
Instalación
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e .
Configuración
Archivo de configuración predeterminado: config.json
{
"mcp_server_name": "My Symbolic Math MCP Server",
"mcp_server_url": "http://localhost:8753",
"max_requests": 10,
"total_timeout": 600
}
Notas
stdio://...ejecuta el servidor a través de stdio.http://...ejecuta el servidor a través del transporte HTTP transmisible de FastMCP.https://...es aceptado por el analizador de configuración y utiliza la configuración del transporte HTTP. En la práctica, TLS normalmente se termina mediante un proxy inverso frente al proceso.
Ejecución
Desde el directorio del proyecto:
.venv/bin/python run_server.py --config config.json
O después de la instalación:
symbolic-math-mcp --config config.json
API de herramientas
check_symbolic_math(filename)
- entrada: ruta absoluta a un archivo de matemática simbólica
.yaml - comportamiento: se bloquea hasta que
verify_yaml_file(filename)se complete o expire el tiempo de espera
Finalización exitosa:
{
"status": "Tool call completed!",
"filename": "proof.yaml",
"result": "Math proofs are valid"
}
Tiempo de espera agotado:
{
"status": "Tool call has timed out!",
"filename": "proof.yaml",
"result": "TIMEOUT ERROR!"
}
Archivo no encontrado:
{
"status": "Tool call cannot find the file based on the filename!",
"filename": "proof.yaml",
"result": "FILE NOT FOUND!"
}
Error de lectura del archivo:
{
"status": "Tool call cannot read the file!",
"filename": "proof.yaml",
"result": "FILE CANNOT BE READ!"
}
Error desconocido:
{
"status": "Tool call has unknown error!",
"filename": "proof.yaml",
"result": "UNKNOWN ERROR!"
}
check_symbolic_math_parallel(dir_path)
- entrada: ruta absoluta de directorio que contiene uno o más archivos de matemática simbólica
.yaml - comportamiento: inicia la verificación de cada archivo
.yamlen paralelo, limitado pormax_requests, y se bloquea hasta que todas las comprobaciones finalicen o se supere el tiempo de espera total - claves de resultado: rutas absolutas de archivo para cada archivo
.yamlencontrado endir_path - comportamiento de error: si
dir_pathfalta, no es absoluto, no se puede leer o no contiene archivos.yaml, la herramienta devuelve la misma estructura de error utilizada porcheck_symbolic_math
Finalización exitosa:
{
"status": "Parallel Tool call completed!",
"dir_path": "/abs/path/to/proofs",
"result": {
"/abs/path/to/proofs/one.yaml": "Math proofs are valid",
"/abs/path/to/proofs/two.yaml": "Error! Math proofs are invalid"
}
}
Tiempo de espera agotado:
{
"status": "Tool call has timed out!",
"filename": "/abs/path/to/proofs",
"result": "TIMEOUT ERROR!"
}
Directorio no encontrado o sin archivos YAML:
{
"status": "Tool call cannot find the file based on the filename!",
"filename": "/abs/path/to/proofs",
"result": "FILE NOT FOUND!"
}
Pruebas
El conjunto de pruebas es intencionalmente secuencial.
Ejecutar todas las pruebas:
PYTHONPATH=src /home/brosnan/symbolic_math_mcp/.venv/bin/python tests/run_tests_sequentially.py
La prueba de integración inicia un subproceso real del servidor MCP stdio y valida:
- 5 archivos YAML válidos en tests_yaml
- 5 archivos YAML no válidos en tests_yaml
Configuración de Codex
[mcp_servers.symbolic_math_mcp]
url = "http://localhost:8753/mcp"
[mcp_servers.symbolic_math_mcp.tools.check_symbolic_math]
approval_mode = "approve"
[mcp_servers.symbolic_math_mcp.tools.check_symbolic_math_parallel]
approval_mode = "approve"