Skip to main content
Glama
nerdo

precision-math-mcp

by nerdo

precision-math-mcp

LLMs can't do math. They predict tokens, not compute answers. Ask an LLM to multiply large numbers or solve equations, and you might get confident-sounding wrong answers.

This MCP server fixes that by giving your LLM a real calculator. It's powered by math.js, a battle-tested math library with 14k+ GitHub stars, handling everything from basic arithmetic to symbolic calculus.

All expressions use math.js syntax - see math.js documentation for full expression reference.

Features

  • 6 Mathematical Tools:

    • calculate - Evaluate mathematical expressions

    • simplify - Simplify algebraic expressions

    • derivative - Compute symbolic derivatives

    • solve - Solve equations for variables

    • format - Format numbers with precision/notation

    • convert - Convert between units

  • 3 Transport Modes:

    • stdio - Standard I/O (default, for Claude Desktop)

    • http - Streamable HTTP transport

    • sse - Server-Sent Events (backwards compatibility)

Related MCP server: Math MCP Server

Quick Start

Run directly without installing (requires Bun, npm, yarn, or pnpm):

# Using bunx (recommended)
bunx -y @nerdo/precision-math-mcp

# Using npx
npx -y @nerdo/precision-math-mcp

# Using yarn
yarn dlx @nerdo/precision-math-mcp

# Using pnpm
pnpm dlx @nerdo/precision-math-mcp

Installation

Global Install

# Using bun
bun add -g @nerdo/precision-math-mcp

# Using npm
npm install -g @nerdo/precision-math-mcp

# Using yarn
yarn global add @nerdo/precision-math-mcp

# Using pnpm
pnpm add -g @nerdo/precision-math-mcp

Then run with:

precision-math-mcp

Local Development

git clone https://github.com/nerdo/precision-math-mcp
cd precision-math-mcp
bun install
bun run src/index.ts

Usage

Transport Modes

# Stdio mode (default)
bunx -y @nerdo/precision-math-mcp --stdio

# HTTP mode
PORT=3141 bunx -y @nerdo/precision-math-mcp --http

# HTTP mode with authentication
PORT=3141 MCP_AUTH_TOKEN=your-secret bunx -y @nerdo/precision-math-mcp --http

Environment Variables

Variable

Default

Description

PORT

3141

HTTP server port

MCP_AUTH_TOKEN

(none)

Optional auth token for HTTP

MCP_TRANSPORT

stdio

Transport mode: stdio, http, sse

DESCRIPTION_MODE

mandatory

Tool description mode: mandatory (AI must use for all math) or relaxed (optional use)

MCP Client Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "precision-math": {
      "command": "bunx",
      "args": ["-y", "@nerdo/precision-math-mcp"]
    }
  }
}

Or using npx:

{
  "mcpServers": {
    "precision-math": {
      "command": "npx",
      "args": ["-y", "@nerdo/precision-math-mcp"]
    }
  }
}

Claude Code

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "precision-math": {
      "command": "bunx",
      "args": ["-y", "@nerdo/precision-math-mcp"]
    }
  }
}

Tool Examples

calculate

Evaluate mathematical expressions with optional variables.

{
  "name": "calculate",
  "arguments": {
    "expression": "sqrt(a^2 + b^2)",
    "scope": { "a": 3, "b": 4 }
  }
}
// Returns: { "result": "5", "type": "number" }

Supports:

  • Basic arithmetic: 2 + 2 * 38

  • Functions: sin(pi/4), log(100), factorial(5)

  • Complex numbers: sqrt(-1)i

  • Matrices: [[1,2],[3,4]] * [[1,0],[0,1]]

  • Units: 2 inch to cm5.08 cm

simplify

Simplify algebraic expressions.

{
  "name": "simplify",
  "arguments": {
    "expression": "2x + 3x - x"
  }
}
// Returns: { "result": "4 * x" }

derivative

Compute symbolic derivatives.

{
  "name": "derivative",
  "arguments": {
    "expression": "x^3 + 2*x",
    "variable": "x"
  }
}
// Returns: { "result": "3 * x ^ 2 + 2", "simplified": "3 * x ^ 2 + 2" }

solve

Solve equations for a variable.

{
  "name": "solve",
  "arguments": {
    "equation": "x^2 - 4 = 0",
    "variable": "x"
  }
}
// Returns: { "solutions": ["2", "-2"], "type": "exact" }

format

Format numbers with specific precision or notation.

{
  "name": "format",
  "arguments": {
    "value": "pi",
    "precision": 4
  }
}
// Returns: { "result": "3.142" }

convert

Convert between units.

{
  "name": "convert",
  "arguments": {
    "value": "100 km/h",
    "toUnit": "m/s"
  }
}
// Returns: { "result": "27.77777777777778 m / s", "numericValue": 27.77777777777778 }

Testing

# Run all tests
bun test

# Run specific test file
bun test tests/tools/calculate.test.ts

Testing with MCP Inspector

npx @modelcontextprotocol/inspector bun run src/index.ts

Opens the MCP Inspector at http://localhost:6274 where you can:

  • View all available tools

  • Invoke tools with custom arguments

  • See JSON-RPC communication logs

Development

# Type check
bunx tsc --noEmit

# Run in watch mode
bun --watch run src/index.ts

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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.

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/nerdo/precision-math-mcp'

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