advanced-math-mcp
About
advanced-math-mcp — MCP server for linear algebra, calculus, and symbolic math. 17 tools with a unified evaluate() expression engine. Supports matrices, eigenvalues, SVD, integrals, limits, derivatives, and more.
Details
- Author
- psywhat
- Categories
- Productivity, Project Management, Automation
Jump to
Setup
Install advanced-math-mcp in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/psywhat/advanced-math-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
advanced-math-mcp — MCP server for linear algebra, calculus, and symbolic math. 17 tools with a unified evaluate() expression engine. Supports matrices, eigenvalues, SVD, integrals, limits, derivatives, and more.
MCP (Model Context Protocol) server for advanced mathematics — linear algebra, vector math, symbolic computation, and calculus. Designed for use with Claude and other MCP-compatible LLMs.
Then add to your MCP client configuration (e.g.,mcp_settings.json):
{ "mcpServers": { "advanced-math-mcp": { "command": "advanced-math-mcp", "args": [], "alwaysAllow": [ "evaluate", "set_variable", "get_variable", "list_variables", "clear_variables", "matrix_create", "matrix_identity", "matrix_zeros", "matrix_diagonal", "symbolic_simplify", "symbolic_substitute", "symbolic_derivative", "symbolic_expand", "symbolic_integrate", "symbolic_definite_integral", "symbolic_limit", "symbolic_partial_derivative" ] } } }
All matrix/vector operations use a singleevaluatetool with natural expression syntax:
// Arithmetic evaluate("A + B") // addition evaluate("A - B") // subtraction evaluate("A B") // matrix multiplication evaluate("A ^ 3") // matrix power // Properties evaluate("det(A)") // determinant evaluate("trace(A)") // trace evaluate("rank(A)") // rank evaluate("inv(A)") // inverse evaluate("transpose(A)") // transpose // Decompositions evaluate("eig(A)") // eigenvalues & eigenvectors evaluate("charpoly(A)") // characteristic polynomial (2×2, 3×3) evaluate("lu(A)") // LU decomposition evaluate("qr(A)") // QR decomposition evaluate("svd(A)") // singular value decomposition // Linear systems evaluate("solve(A, b)") // solve Ax = b
evaluate("dot([1,2,3], [4,5,6])") // dot product → 32 evaluate("cross([1,2,3], [4,5,6])") // cross product → [-3, 6, -3] evaluate("norm([3,4])") // L2 norm → 5 evaluate("norm([3,4], \"1\")") // L1 norm → 7 evaluate("project([3,4], [1,0])") // vector projection → [3, 0]
evaluate("[[1,2],[3,4]] [[5,6],[7,8]]") // → [[19,22],[43,50]] evaluate("det([[4,1],[2,3]])") // → 10 evaluate("inv([[4,7],[2,6]])") // → [[0.6,-0.7],[-0.2,0.4]]
set_variable("A", "[[1,2],[3,4]]") set_variable("B", "[[5,6],[7,8]]") evaluate("A B") // uses stored variables list_variables() // see all defined variables clear_variables() // reset
symbolic_simplify("x^2 + 2x + 1 - (x+1)^2") // → 0 symbolic_expand("(x+1)(x-1)(x+2)") // → x^3 + 2x^2 - x - 2
// Single variable symbolic_substitute("x^2 + 2x", { x: "3" }) // → 15 // Multi-variable symbolic_substitute("x^2 + yx + z", { x: "3", y: "2", z: "1" }) // → 16
// Derivatives symbolic_derivative("x^3 + 2x^2", "x") // → 3x^2 + 4x symbolic_partial_derivative("x^2y + sin(z)", "x", 2) // → 2y (second partial) // Integration symbolic_integrate("x^2 + sin(x)", "x") // → 0.333x^3 - cos(x) + C symbolic_definite_integral("x^2", "x", "0", "2") // → 2.667 (∫₀² x² dx) // Limits symbolic_limit("sin(x)/x", "x", "0") // → 1
src/ ├── index.ts # Entry point, loads nerdamer plugins ├── server.ts # MCP server setup, tool routing ├── types.ts # Shared types and Zod schemas ├── engine/ │ ├── evaluator.ts # Unified expression evaluator (mathjs + custom functions) │ ├── symbolic.ts # Symbolic engine (nerdamer + mathjs) │ ├── math-engine.ts # Low-level matrix operations │ └── format.ts # Output formatting utilities └── tools/ ├── evaluate.ts # evaluate + variable management tools ├── matrix-create.ts # matrix_create, identity, zeros, diagonal ├── symbolic.ts # symbolic_simplify, substitute, derivative, expand └── calculus.ts # symbolic_integrate, definite_integral, limit, partial_derivative
The evaluator extends mathjs with these custom functions:
git clone https://github.com/PsyWhat/advanced-math-mcp.git cd advanced-math-mcp npm install npm run build # compile TypeScript npm run dev # watch mode npm link # install globally for local testing
npm test # run all tests (vitest) npm run test:watch # watch mode npm run typecheck # TypeScript validation only
- SVD: The rank-deficient SVD gives zero vectors for nullspace columns (computed via AᵀA eigen-decomposition, not full Golub-Reinsch)
- Cholesky: Not available in mathjs v13; uselu()for general decomposition
- norm(v, inf): Must use quoted"inf"(not bareinf) due to mathjs parsing
- charpoly: Numeric only, supports 2×2 and 3×3 matrices
- symbolic_limit: Some advanced limits (e.g.,(1+1/x)^xasx→∞) may not fully resolve
Perform queries and entity operations in your Fibery workspace.
Keep teams & agents coordinated automatically
Connect to the Taskade platform via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.
A universal remote MCP server that connects to popular productivity tools such as Notion, Monday, AirTable, and many more.
An MCP interface for Atlassian products, including Jira and Bitbucket.
The Outcome Backcasting MCP is a strategic planning tool that helps you work backwards from a desired future outcome to identify the specific steps, resources, and dependencies needed to achieve your goals. Unlike traditional forward planning, backcasting starts with your end goal and creates a reverse roadmap to get there.
About A repo-native task graph as plain Markdown files, served to AI agents over MCP and to humans over a clean web UI .
Integrate ClickUp with AI applications to manage tasks, spaces, lists, and folders.
Interact with the ClickUp API to manage tasks, lists, and spaces, automating project planning and workflows.
Integrate AI assistants with ClickUp for productivity and project management.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


