Skip to main content
Glama
PsyWhat

advanced-math-mcp

by PsyWhat

advanced-math-mcp

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.

Quick Start

npm install -g advanced-math-mcp

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"
      ]
    }
  }
}

Related MCP server: Math MCP Server

Tools (17 total)

Unified Expression Evaluator

Tool

Description

evaluate

Universal expression evaluator with natural math syntax. Supports matrices, vectors, scalars, decompositions, and custom functions.

set_variable

Define a named variable (matrix, vector, or scalar) for use in evaluate

get_variable

Retrieve a variable's value

list_variables

List all defined variables and their types

clear_variables

Reset all variables

Matrix Creation

Tool

Description

matrix_create

Create a matrix from a 2D array of strings

matrix_identity

Create an n×n identity matrix

matrix_zeros

Create an m×n matrix of zeros

matrix_diagonal

Create a diagonal matrix from a vector of values

Symbolic Math

Tool

Description

symbolic_simplify

Simplify algebraic expressions

symbolic_expand

Expand factored expressions

symbolic_substitute

Substitute variables with values or expressions

symbolic_derivative

Compute ordinary derivatives (single-variable)

symbolic_partial_derivative

Compute partial derivatives (multivariable)

symbolic_integrate

Compute indefinite integrals (antiderivatives)

symbolic_definite_integral

Compute definite integrals with bounds

symbolic_limit

Compute limits of expressions

evaluate — The Universal Evaluator

All matrix/vector operations use a single evaluate tool with natural expression syntax:

Matrix Operations

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

Vector Operations

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]

Inline Literals

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

Variable Workflow

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 Math

Simplification & Expansion

symbolic_simplify("x^2 + 2*x + 1 - (x+1)^2")  // → 0
symbolic_expand("(x+1)*(x-1)*(x+2)")           // → x^3 + 2x^2 - x - 2

Substitution

// Single variable
symbolic_substitute("x^2 + 2*x", { x: "3" })      // → 15

// Multi-variable
symbolic_substitute("x^2 + y*x + z", { x: "3", y: "2", z: "1" })  // → 16

Calculus

// Derivatives
symbolic_derivative("x^3 + 2*x^2", "x")              // → 3x^2 + 4x
symbolic_partial_derivative("x^2*y + 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

Architecture

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

Dependencies

Package

Purpose

@modelcontextprotocol/sdk

MCP protocol implementation

mathjs v13

Numeric matrix operations, expression parsing

nerdamer

Symbolic algebra, calculus (integrals, limits)

zod

Runtime input validation

Custom Functions in evaluate

The evaluator extends mathjs with these custom functions:

Function

Implementation

rank(A)

Via eigenvalue count of AᵀA

solve(A, b)

Wraps math.lusolve()

eig(A) / eigs(A)

Wraps math.eigs() with formatted output

svd(A)

Via eigenvalue decomposition of AᵀA

charpoly(A)

Formula-based for 2×2 and 3×3

lu(A)

Alias for math.lup()

qr(A)

Alias for math.qr()

project(u, v)

Vector projection formula

norm(v, type)

L1, L2 (default), L∞

Development

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

Testing

npm test             # run all tests (vitest)
npm run test:watch   # watch mode
npm run typecheck    # TypeScript validation only

Suite

Tests

Coverage

evaluator.test.ts

36

Matrix ops, vector ops, decompositions, eigenvalues, variable scope, error handling

symbolic.test.ts

15

Simplify, expand, substitute, ordinary derivatives

calculus.test.ts

17

Indefinite/definite integrals, limits, partial derivatives

All 68 tests pass.

Known Limitations

  • 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; use lu() for general decomposition

  • norm(v, inf): Must use quoted "inf" (not bare inf) due to mathjs parsing

  • charpoly: Numeric only, supports 2×2 and 3×3 matrices

  • symbolic_limit: Some advanced limits (e.g., (1+1/x)^x as x→∞) may not fully resolve

License

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides comprehensive mathematical capabilities including basic arithmetic, advanced functions, statistical tools, and access to mathematical constants. It allows users to perform computations and generate math-related prompts through a standardized MCP interface.
    Last updated
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    Exposes a broad mathematics toolkit including symbolic algebra, calculus, numerical methods, linear algebra, statistics, discrete math, graph theory, rendering, and optional GPU acceleration via MCP tools for use with Claude Desktop and other MCP hosts.
    Last updated
    51
    2
  • A
    license
    -
    quality
    D
    maintenance
    Provides a comprehensive set of mathematical functions as MCP tools, enabling language models to perform calculations including arithmetic, trigonometry, logarithms, and more.
    Last updated
    16
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that exposes 8 mathematical tools (arithmetic, algebra, calculus, matrix operations, statistics, probability, unit conversions) to any MCP-compatible AI agent, enabling mathematical computations without code.
    Last updated
    8
    28
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Precision math engine for AI agents. 203 exact methods. Zero hallucination.

  • This MCP server enables users to perform scientific computations regarding linear algebra and vect…

  • Newton MCP — wraps the Newton math solver API (free, no auth)

View all MCP Connectors

Latest Blog Posts

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/PsyWhat/advanced-math-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server