Skip to main content
Glama
Math-MCP

Math-MCP

by PolarisHub

Math-MCP

A Model Context Protocol (MCP) server that provides basic mathematical, statistical and trigonometric functions to Large Language Models (LLMs). This server enables LLMs to perform accurate numerical calculations through a simple API.

Features

  • Basic arithmetic operations (addition, subtraction, multiplication, division, sum, modulo)

  • Statistical functions (mean, median, mode, min, max)

  • Advanced statistics (variance, standard deviation, percentile, correlation, linear regression)

  • Rounding functions (floor, ceiling, round)

  • Trigonometric functions (sin, cos, tan, and their inverses; degrees/radians conversions)

  • Exact number theory and combinatorics (GCD, LCM, primes, factors, factorials, combinations, permutations)

  • Exact fraction simplification and arithmetic using arbitrary-size integers

  • Percentages, compound interest, and fixed-rate loan payments

  • Quadratic equations and 2x2 linear systems, including complex or non-unique solutions

  • 3D graphics transforms, bone hierarchies, camera matrices, and world-to-screen projection

  • Bayes' theorem and normalized multi-hypothesis Bayesian updates

Related MCP server: Calculator MCP

Installation

Note: Ensure you have Node.js installed on your computer.

Just clone this repository and save it locally somewhere on your computer.

Then add this server to your MCP configuration file:

"math": {
  "command": "node",
  "args": ["PATH\\TO\\PROJECT\\math-mcp\\build\\index.js"]
}

Here is an example for OpenCode

{
  "mcp": {
    "math-mcp": {
      "type": "local",
      "command": [
        "node",
        "PATH\\TO\\PROJECT\\math-mcp\\build\\index.js"
      ]
    }
  }
}

Replace PATH\\TO\\PROJECT with the actual path to where you cloned the repository.

Note: This project comes prebuilt, so installation is easy but if you change anything in the code, rebuild the project with npm run build.

Available Functions

The Math-MCP server provides the following mathematical operations:

Arithmetic Operations

Function

Description

Parameters

add

Adds two numbers together

firstNumber: The first addendsecondNumber: The second addend

subtract

Subtracts the second number from the first number

minuend: The number to subtract from (minuend)subtrahend: The number being subtracted (subtrahend)

multiply

Multiplies two numbers together

firstNumber: The first numbersecondNumber: The second number

division

Divides the first number by the second number

numerator: The number being divided (numerator)denominator: The number to divide by (denominator)

sum

Adds any number of numbers together

numbers: Array of numbers to sum

modulo

Divides two numbers and returns the remainder

numerator: The number being divided (numerator)denominator: The number to divide by (denominator)

floor

Rounds a number down to the nearest integer

number: The number to round down

ceiling

Rounds a number up to the nearest integer

number: The number to round up

round

Rounds a number to the nearest integer

number: The number to round

Statistical Operations

Function

Description

Parameters

mean

Calculates the arithmetic mean of a list of numbers

numbers: Array of numbers to find the mean of

median

Calculates the median of a list of numbers

numbers: Array of numbers to find the median of

mode

Finds the most common number in a list of numbers

numbers: Array of numbers to find the mode of

min

Finds the minimum value from a list of numbers

numbers: Array of numbers to find the minimum of

max

Finds the maximum value from a list of numbers

numbers: Array of numbers to find the maximum of

variance

Calculates population or sample variance

numbers: Valuessample: Optional; use true for n-1

standard_deviation

Calculates population or sample standard deviation

numbers: Valuessample: Optional; use true for n-1

percentile

Calculates an inclusive R-7/Excel-style percentile

numbers: Valuespercentile: 0 through 100

correlation

Calculates Pearson correlation for paired observations

firstValues: First seriessecondValues: Second series

linear_regression

Fits y = slope*x + intercept and returns R-squared

xValues: X seriesyValues: Y series

Exact and Number-Theory Operations

Function

Description

Parameters

greatest_common_divisor

Finds the GCD of two safe integers

first, second: Integers

least_common_multiple

Finds the exact LCM as a decimal string

first, second: Integers

is_prime

Tests a safe integer for primality

value: Non-negative integer

prime_factors

Finds prime factors up to 1,000,000,000,000

value: Integer

factorial

Calculates n! exactly through 1000!

value: Integer

combinations

Calculates n choose r exactly

total: nselected: r

permutations

Calculates nPr exactly

total: nselected: r

simplify_fraction

Reduces an arbitrary-size integer fraction exactly

numerator, denominator: Decimal integer strings

fraction_arithmetic

Adds, subtracts, multiplies, or divides fractions exactly

operation; two numerator/denominator pairs as strings

Applied Operations

Function

Description

Parameters

percentage_of

Calculates a percentage of a value

valuepercentage: Use 15 for 15%

percentage_change

Calculates percent increase or decrease

originalValuenewValue

round_to

Rounds to a requested number of decimal places

valuedecimalPlaces: 0 through 15

compound_interest

Calculates compound growth and optional end-of-period contributions

principal, annualRatePercent, years, compoundsPerYear, optional contributionPerPeriod

loan_payment

Calculates fixed-rate payment, total paid, and total interest

principal, annualRatePercent, years, paymentsPerYear

Algebra Operations

Function

Description

Parameters

solve_quadratic

Solves a*x^2 + b*x + c = 0, including complex roots

a, b, c

solve_linear_system_2x2

Solves or classifies two linear equations

Coefficients a1, b1, c1, a2, b2, c2

3D Graphics and Bone Projection

All matrices are flat, row-major 4x4 arrays used with column vectors. Transform composition is projection * view * world * point. Quaternions use {x, y, z, w}; Euler inputs are radians. Defaults are right-handed coordinates, OpenGL-style NDC depth -1..1, and a top-left screen origin where Y points down.

Function

Description

quaternion_from_euler

Converts Euler radians and an explicit rotation order to a quaternion

compose_transform_4x4

Builds a translation * rotation * scale matrix

multiply_matrices_4x4

Multiplies two matrices as first * second

transform_point_3d

Applies a matrix to a 3D point with homogeneous w=1

bone_local_to_world

Combines one bone's local transform with its parent world matrix

bone_hierarchy_to_world

Resolves named parent/child local transforms into world-space bones

look_at_view_matrix

Creates a right- or left-handed world-to-view camera matrix

perspective_projection_matrix

Creates a projection matrix with selectable handedness and clip-depth range

world_to_view

Applies the view matrix to a world-space point

view_to_clip

Applies the projection matrix to produce a 4D clip-space point

clip_to_ndc

Performs perspective division: (x/w, y/w, z/w)

ndc_to_screen

Scales NDC to a requested pixel width and height

world_to_screen

Runs projection with a combined projection * view matrix and reports visibility

project_bone_points

Batch-projects named world-space bone positions to 2D screen coordinates

The explicit projection pipeline is:

world point -> view matrix -> view point
view point  -> projection matrix -> clip point (x, y, z, w)
clip point  -> divide by w -> NDC
NDC         -> resolution scaling -> screen pixels

Probability Operations

Function

Description

Parameters

bayes_theorem

Calculates `P(H

E) = P(E

bayes_update_hypotheses

Normalizes likelihood-weighted priors across hypotheses

Array of hypothesis labels, priors, and likelihoods

Trigonometric Operations

Function

Description

Parameters

sin

Calculates the sine of a number in radians

number: The number in radians to find the sine of

arcsin

Calculates the arcsine (in radians) of a number

number: The number to find the arcsine of

cos

Calculates the cosine of a number in radians

number: The number in radians to find the cosine of

arccos

Calculates the arccosine (in radians) of a number

number: The number to find the arccosine of

tan

Calculates the tangent of a number in radians

number: The number in radians to find the tangent of

arctan

Calculates the arctangent (in radians) of a number

number: The number to find the arctangent of

radiansToDegrees

Converts a radian value to its equivalent in degrees

number: The number in radians to convert to degrees

degreesToRadians

Converts a degree value to its equivalent in radians

number: The number in degrees to convert to radians

Available Tools

59 tools
addB

Adds two numbers together

Inputs: firstNumber (required), secondNumber (required).

arccosB

Calculates the arccosine (in radians) of a number

Inputs: number (required).

arcsinA

Calculates the arcsine (in radians) of a number

Inputs: number (required).

arctanA

Calculates the arctangent (in radians) of a number

Inputs: number (required).

bayes_theoremA

Calculates P(hypothesis|evidence) = P(evidence|hypothesis) * P(hypothesis) / P(evidence)

Inputs: prior (required), evidence (required), likelihood (required).

bayes_update_hypothesesB

Normalizes priors and evidence likelihoods into posterior probabilities for mutually exclusive, exhaustive hypotheses

Inputs: hypotheses (required).

bone_hierarchy_to_worldA

Resolves a complete bone hierarchy from local transforms to world matrices and world positions; detects missing parents and cycles

Inputs: bones (required).

bone_local_to_worldA

Combines a parent bone world matrix with a child local position, quaternion rotation, and scale

Inputs: localPosition (required), parentWorldMatrix (required), localScale, localRotation.

ceilingA

Rounds a number up to the nearest integer

Inputs: number (required).

clip_to_ndcB

Performs the 4D clip-space perspective divide x/w, y/w, z/w to normalized device coordinates

Inputs: clipPoint (required).

combinationsA

Calculates n choose r exactly when order does not matter; returns a decimal string

Inputs: total (required), selected (required).

compose_transform_4x4A

Builds a row-major 4x4 TRS transform from position, quaternion rotation, and scale for column vectors

Inputs: position (required), scale, rotation.

compound_interestA

Calculates compound growth with optional equal contributions made at the end of every compounding period

Inputs: years (required), principal (required), compoundsPerYear (required), annualRatePercent (required), +1 more.

correlationB

Calculates the Pearson correlation coefficient for paired numeric observations

Inputs: firstValues (required), secondValues (required).

cosA

Calculates the cosine of a number in radians

Inputs: number (required).

degreesToRadiansA

Converts a degree value to its equivalent in radians

Inputs: number (required).

divisionB

Divides the first number by the second number

Inputs: numerator (required), denominator (required).

factorialA

Calculates n! exactly for an integer from 0 through 1000; returns a decimal string

Inputs: value (required).

floorA

Rounds a number down to the nearest integer

Inputs: number (required).

fraction_arithmeticA

Adds, subtracts, multiplies, or divides two fractions exactly and returns the reduced result

Inputs: operation (required), firstNumerator (required), secondNumerator (required), firstDenominator (required), +1 more.

greatest_common_divisorA

Finds the greatest common divisor (GCD) of two safe integers

Inputs: first (required), second (required).

is_primeA

Determines whether a non-negative safe integer is prime

Inputs: value (required).

least_common_multipleA

Finds the exact least common multiple (LCM) of two safe integers; returns a decimal string

Inputs: first (required), second (required).

linear_regressionA

Fits the least-squares line y = slope*x + intercept and returns slope, intercept, and R-squared

Inputs: xValues (required), yValues (required).

loan_paymentA

Calculates the payment and total interest for a standard fixed-rate amortizing loan

Inputs: years (required), principal (required), paymentsPerYear (required), annualRatePercent (required).

look_at_view_matrixA

Creates a row-major look-at world-to-view matrix for a right- or left-handed coordinate system

Inputs: up (required), eye (required), target (required), handedness.

maxB

Finds the maximum value from a list of numbers

Inputs: numbers (required).

meanA

Calculates the arithmetic mean of a list of numbers

Inputs: numbers (required).

medianB

Calculates the median of a list of numbers

Inputs: numbers (required).

minA

Finds the minimum value from a list of numbers

Inputs: numbers (required).

modeA

Finds the most common number in a list of numbers

Inputs: numbers (required).

moduloA

Divides two numbers and returns the remainder

Inputs: numerator (required), denominator (required).

multiplyA

Multiplies two numbers together

Inputs: firstNumber (required), secondNumber (required).

multiply_matrices_4x4A

Multiplies two row-major 4x4 matrices and returns first * second, for column-vector transforms

Inputs: first (required), second (required).

ndc_to_screenB

Scales normalized device coordinates to a 2D screen resolution

Inputs: width (required), height (required), ndcPoint (required), yDirection.

percentage_changeA

Calculates the percentage increase or decrease from an original value to a new value

Inputs: newValue (required), originalValue (required).

percentage_ofA

Calculates a percentage of a value, such as 15% of 240

Inputs: value (required), percentage (required).

percentileA

Calculates a percentile using sorted linear interpolation (R-7 / Excel PERCENTILE.INC method)

Inputs: numbers (required), percentile (required).

permutationsA

Calculates ordered selections nPr exactly; returns a decimal string

Inputs: total (required), selected (required).

perspective_projection_matrixB

Creates a perspective view-to-clip matrix with explicit handedness and NDC depth range

Inputs: farPlane (required), nearPlane (required), aspectRatio (required), verticalFieldOfViewDegrees (required), +2 more.

prime_factorsB

Returns the prime factorization of an integer from 2 through 1,000,000,000,000

Inputs: value (required).

project_bone_pointsB

Batch-projects named bone or joint world positions to 2D pixels using a combined projection*view matrix

Inputs: width (required), height (required), points (required), viewProjectionMatrix (required), +2 more.

quaternion_from_eulerA

Converts Euler rotations in radians to a normalized quaternion; order states the rotations applied first-to-last

Inputs: eulerRadians (required), order.

radiansToDegreesA

Converts a radian value to its equivalent in degrees

Inputs: number (required).

roundB

Rounds a number to the nearest integer

Inputs: number (required).

round_toA

Rounds a number to a specified count of decimal places

Inputs: value (required), decimalPlaces (required).

simplify_fractionA

Reduces a fraction exactly using integer strings, preserving values larger than JSON's safe integer range

Inputs: numerator (required), denominator (required).

sinA

Calculates the sine of a number in radians

Inputs: number (required).

solve_linear_system_2x2A

Solves a1x + b1y = c1 and a2x + b2y = c2, including no-solution and infinite-solution cases

Inputs: a1 (required), a2 (required), b1 (required), b2 (required), +2 more.

solve_quadraticC

Solves ax^2 + bx + c = 0 and returns real or complex roots

Inputs: a (required), b (required), c (required).

standard_deviationA

Calculates population or sample standard deviation with a numerically stable algorithm

Inputs: numbers (required), sample.

subtractA

Subtracts the second number from the first number

Inputs: minuend (required), subtrahend (required).

sumB

Adds any number of numbers together

Inputs: numbers (required).

tanB

Calculates the tangent of a number in radians

Inputs: number (required).

transform_point_3dA

Transforms a 3D position by a row-major 4x4 matrix using homogeneous w=1 and returns x,y,z,w

Inputs: point (required), matrix (required).

varianceC

Calculates population or sample variance with a numerically stable algorithm

Inputs: numbers (required), sample.

view_to_clipA

Transforms one homogeneous view-space position into 4D clip space with a supplied projection matrix

Inputs: viewPoint (required), projectionMatrix (required).

world_to_screenA

Projects one world-space 3D point through a combined projection*view matrix to 2D pixels with visibility and behind-camera flags

Inputs: width (required), height (required), worldPoint (required), viewProjectionMatrix (required), +2 more.

world_to_viewA

Transforms one world-space 3D position into view space with a supplied row-major view matrix

Inputs: viewMatrix (required), worldPoint (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 59 tools

    Disambiguation5/5

    Each tool has a distinct mathematical operation with clear descriptions. Overlaps are minimal (e.g., add vs. sum, round vs. round_to) but descriptions differentiate them. No two tools perform the same function.

    Naming Consistency2/5

    The naming convention is inconsistent: single-word names (min, add), snake_case (percentage_of, compose_transform_4x4), and camelCase (radiansToDegrees) are mixed. Verbs like 'division' instead of 'divide' break patterns. While many tools follow verb_noun or noun_verb, the overall pattern is chaotic.

    Tool Count2/5

    With 59 tools, the server is extremely heavy for an MCP server. While each tool is well-defined, the sheer number can overwhelm an agent's tool selection. A more focused scope (e.g., separating linear algebra from basic arithmetic) would improve usability.

    Completeness4/5

    The tool set covers a vast range of mathematical domains: arithmetic, trigonometry, statistics, number theory, finance, linear algebra, 3D graphics, and probability. Minor gaps exist (e.g., no general linear system solver beyond 2x2, no calculus operations), but overall it is very comprehensive for a general math server.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      A Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.
      13
      33 npm
      191
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      A Model Context Protocol server that provides basic calculator functionality for LLMs, enabling them to perform mathematical operations like addition, subtraction, multiplication, division, modulo, and square root.
      6
      235 npm
      15
      MIT
    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      A calculator server that exposes mathematical functions as tools (add, subtract, multiply, divide, square, power, square root), enabling language models to perform calculations through Model Context Protocol (MCP).
      -
    • A
      license
      A
      quality
      D
      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.
      8
      11 npm
      1
      MIT