Symbolic Math MCP
Servidor MCP para derivação, cálculo e verificação de matemática simbólica
Documentação
symbolic_math_mcp

Verifique simbolicamente qualquer equação e cálculo
Requisitos
- Python 3.11+
fastmcp>=3.4.2symbolic-math-verify>=0.1.4
Instalação
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e .
Configuração
Arquivo de configuração padrão: config.json
{
"mcp_server_name": "My Symbolic Math MCP Server",
"mcp_server_url": "http://localhost:8753",
"max_requests": 10,
"total_timeout": 600
}
Notas
stdio://...executa o servidor via stdio.http://...executa o servidor via transporte HTTP streamable do FastMCP.https://...é aceito pelo analisador de configuração e usa as definições de transporte HTTP. Na prática, o TLS normalmente é terminado por um proxy reverso na frente do processo.
Execução
A partir do diretório do projeto:
.venv/bin/python run_server.py --config config.json
Ou após a instalação:
symbolic-math-mcp --config config.json
API da Ferramenta
check_symbolic_math(filename)
- entrada: caminho absoluto para um arquivo de matemática simbólica
.yaml - comportamento: bloqueia até que
verify_yaml_file(filename)conclua ou expire o tempo limite
Conclusão bem-sucedida:
{
"status": "Tool call completed!",
"filename": "proof.yaml",
"result": "Math proofs are valid"
}
Timeout:
{
"status": "Tool call has timed out!",
"filename": "proof.yaml",
"result": "TIMEOUT ERROR!"
}
Arquivo não encontrado:
{
"status": "Tool call cannot find the file based on the filename!",
"filename": "proof.yaml",
"result": "FILE NOT FOUND!"
}
Erro de leitura do arquivo:
{
"status": "Tool call cannot read the file!",
"filename": "proof.yaml",
"result": "FILE CANNOT BE READ!"
}
Erro desconhecido:
{
"status": "Tool call has unknown error!",
"filename": "proof.yaml",
"result": "UNKNOWN ERROR!"
}
check_symbolic_math_parallel(dir_path)
- entrada: caminho absoluto de diretório contendo um ou mais arquivos de matemática simbólica
.yaml - comportamento: inicia a verificação de cada arquivo
.yamlem paralelo, limitada pormax_requests, e bloqueia até que todas as verificações concluam ou o tempo limite total seja excedido - chaves do resultado: caminhos absolutos dos arquivos para cada arquivo
.yamlencontrado emdir_path - comportamento de falha: se
dir_pathestiver ausente, não for absoluto, não puder ser lido ou não contiver arquivos.yaml, a ferramenta retorna a mesma estrutura de erro padronizada usada porcheck_symbolic_math
Conclusão bem-sucedida:
{
"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"
}
}
Timeout:
{
"status": "Tool call has timed out!",
"filename": "/abs/path/to/proofs",
"result": "TIMEOUT ERROR!"
}
Diretório não encontrado ou nenhum arquivo YAML:
{
"status": "Tool call cannot find the file based on the filename!",
"filename": "/abs/path/to/proofs",
"result": "FILE NOT FOUND!"
}
Testes
A suíte de testes é intencionalmente sequencial.
Executar todos os testes:
PYTHONPATH=src /home/brosnan/symbolic_math_mcp/.venv/bin/python tests/run_tests_sequentially.py
O teste de integração inicia um subprocesso real do servidor MCP stdio e valida:
- 5 arquivos YAML válidos em tests_yaml
- 5 arquivos YAML inválidos em tests_yaml
Configuração do 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"