symath-mcp
v0.2.0
Published
High-precision mathematics MCP server with expression, LaTeX, statistics, number theory, and calculus tools.
Maintainers
Readme
SyMath MCP
SyMath MCP is a high-precision mathematics server for MCP clients. It gives LLMs a reliable calculator layer for exact integer work, configurable decimal precision, symbolic derivatives and simplification, numerical calculus, statistics, number theory, and common LaTeX-style math input.
Features
- High-precision expression evaluation powered by
mathjsBigNumber mode. - Common LaTeX normalization, including
\frac{},\sqrt{}, trig/log functions,\pi,\cdot, and braced powers. - Dedicated tools for arithmetic, statistics, number theory, and calculus.
- Symbolic derivative and simplification support.
- Exact integer algorithms using
BigIntfor gcd, lcm, prime checks, factorization, modular exponentiation, and modular inverse. - Structured errors for edge cases such as division by zero, invalid domains, malformed LaTeX, and non-integer number theory input.
- Official MCP transports:
stdiofor local desktop clients.- Streamable HTTP at
/mcpfor remote or local HTTP clients. - Legacy HTTP+SSE for older clients that have not migrated yet.
Install
npm installAfter npm publication, users can run it without cloning:
npx symath-mcpRun Locally
stdio
Use this for Claude Desktop and other local MCP clients that launch a command.
npm startEquivalent direct command:
node /Users/fengling/AiProjects/symath/src/stdio.jsStreamable HTTP
Use this for clients that connect to an MCP URL.
npm run start:httpDefaults:
- URL:
http://127.0.0.1:3000/mcp - Health check:
http://127.0.0.1:3000/health
Configuration:
HOST=0.0.0.0 PORT=3000 MCP_PATH=/mcp npm run start:httpLegacy SSE
SSE is deprecated by the MCP SDK, but some older clients still support it.
npm run start:sseDefaults:
- SSE endpoint:
http://127.0.0.1:3000/mcp - Messages endpoint:
http://127.0.0.1:3000/messages
Configuration:
HOST=0.0.0.0 PORT=3000 SSE_PATH=/mcp MESSAGES_PATH=/messages npm run start:sseClient Configuration
Claude Desktop, local clone
Add this to Claude Desktop's MCP configuration and restart Claude Desktop:
{
"mcpServers": {
"symath": {
"command": "node",
"args": ["/Users/fengling/AiProjects/symath/src/stdio.js"]
}
}
}Claude Desktop, after npm publication
{
"mcpServers": {
"symath": {
"command": "npx",
"args": ["-y", "symath-mcp"]
}
}
}MCP clients with Streamable HTTP support
Start the HTTP server:
npm run start:httpThen configure the client URL:
http://127.0.0.1:3000/mcpFor a remote deployment, replace the URL with your public HTTPS endpoint, for example:
https://your-domain.example/mcpOlder SSE clients
Start the SSE server:
npm run start:sseConfigure:
SSE URL: http://127.0.0.1:3000/mcp
Messages URL: http://127.0.0.1:3000/messagesPublish
GitHub
git add .
git commit -m "Support all MCP transports"
git pushnpm
Log in once:
npm loginPublish:
npm publish --access publicPackage binaries:
symath-mcp: stdio server.symath-mcp-http: Streamable HTTP server.symath-mcp-sse: legacy SSE server.
Tools
calculate: Evaluate a math expression or common LaTeX expression at configurable precision.arithmetic: Run basic arithmetic operations with explicit operands.statistics: Compute descriptive statistics over numeric data.number_theory: Run exact integer operations such as gcd, lcm, primality, factorization, modular exponentiation, modular inverse, and Euler totient.calculus: Differentiate symbolically, simplify symbolically, or compute a definite integral numerically.latex_to_expression: Convert supported LaTeX math syntax to amathjsexpression.
Examples
{
"expression": "\\frac{1}{3} + \\sqrt{2}",
"precision": 80
}{
"operation": "modPow",
"values": ["7", "560", "561"]
}{
"operation": "derivative",
"expression": "sin(x)^2 + x^3",
"variable": "x"
}Test
npm test
node --check src/server.js
node --check src/stdio.js
node --check src/http.js
node --check src/sse.js