Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Advanced Math

БесплатноНе проверен

Enables advanced mathematics operations including linear algebra, vector math, symbolic computation, and calculus through MCP tools. Designed for use with Claud

GitHubEmbed

Описание

Enables advanced mathematics operations including linear algebra, vector math, symbolic computation, and calculus through MCP tools. Designed for use with Claude and other MCP-compatible LLMs.

README

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

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

from github.com/PsyWhat/advanced-math-mcp

Установка Advanced Math

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/PsyWhat/advanced-math-mcp

FAQ

Advanced Math MCP бесплатный?

Да, Advanced Math MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Advanced Math?

Нет, Advanced Math работает без API-ключей и переменных окружения.

Advanced Math — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Advanced Math в Claude Desktop, Claude Code или Cursor?

Открой Advanced Math на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Advanced Math with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории productivity