Skip to main content
Glama

Math MCP Server

A secure Model Context Protocol (MCP) server for mathematical expression evaluation with strict grammar validation and comprehensive safety features.

Features

Security-First Design

  • Grammar Validation: All expressions are validated against a comprehensive BNF grammar before evaluation

  • Function Whitelisting: Only mathematical functions are allowed - no arbitrary code execution

  • CLI Validation: Command-line arguments are validated to ensure only supported functions are allowed

  • Sandboxed Evaluation: Secure execution environment with timeout protection

  • Expression Limits: Built-in safeguards against overly complex expressions

Mathematical Capabilities

  • Arithmetic Operations: Basic operations (+, -, *, /, %, ^) with proper precedence

  • Mathematical Functions: Trigonometric, logarithmic, statistical, and utility functions

  • Constants: Built-in mathematical constants (pi, e, tau, phi, etc.)

  • Variables: Variable assignment and reuse across expressions

  • Advanced Features:

    • Conditional expressions (ternary operator)

    • Logical operations (and, or, not)

    • Comparison operations (==, !=, <, <=, >, >=)

    • Arrays and object notation

    • Range notation (a:b:c)

    • Summation operations (sigma functions)

    • Unit values and member access

    • Factorial and transpose operations

MCP Integration

  • 6 Tools for expression evaluation and variable management

  • 3 Resources providing grammar specification and function documentation

  • Real-time Validation with detailed error reporting

  • Session State with persistent variable context

  • Configurable Runtime with CLI options for fine-grained control

Related MCP server: MCP Mathematics

Installation

Prerequisites

  • Node.js >= 18.0.0

  • npm or yarn package manager

The package is available on npm at https://www.npmjs.com/package/math-mcp

# Install globally
npm install -g math-mcp

# Start the server
math-mcp

Development Installation

# Clone the repository
git clone https://github.com/Desz01ate/math-mcp
cd math-mcp

# Install dependencies and build
npm install
npm run build

# Start the server
npm start

Installation for LLM Agents

Claude Desktop Integration

To use this MCP server with Claude Desktop, first install the package globally:

npm install -g math-mcp

Then add the following configuration to your Claude Desktop settings:

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

{
  "mcpServers": {
    "math-mcp": {
      "command": "math-mcp",
      "args": [],
      "env": {}
    }
  }
}

Alternative for development (from source):

{
  "mcpServers": {
    "math-mcp": {
      "command": "node",
      "args": ["/path/to/math-mcp/dist/index.js"],
      "env": {}
    }
  }
}

Other MCP Clients

For other MCP-compatible clients, you can run the server directly:

# If installed globally via npm
math-mcp

# With custom configuration
math-mcp --max-expression-length 2000 --timeout 10000

# Or if running from source
npm start

# With custom configuration from source
npm start -- --max-expression-length 2000 --timeout 10000

The server will start and listen for MCP connections on stdio.

Docker Installation

# Build the Docker image
docker build -t math-mcp .

# Run the container
docker run -it math-mcp

Troubleshooting Installation

Common Issues:

  1. "Command not found" error

    • Ensure Node.js >= 18.0.0 is installed: node --version

    • Verify npm is available: npm --version

    • For global installation, ensure npm global bin is in PATH

  2. Claude Desktop not detecting the server

    • Verify the path in claude_desktop_config.json is correct

    • Ensure the server builds successfully: npm run build

    • Check Claude Desktop logs for connection errors

    • Restart Claude Desktop after configuration changes

  3. Permission errors

    • Use sudo for global npm installations if needed

    • Ensure write permissions in the installation directory

    • On Windows, run terminal as Administrator if needed

  4. Build failures

    • Clear npm cache: npm cache clean --force

    • Remove node_modules and reinstall: rm -rf node_modules && npm install

    • Ensure TypeScript dependencies are installed

  5. Server startup issues

    • Check if port is already in use

    • Verify all dependencies are installed

    • Run npm run typecheck to check for type errors

Testing Installation:

# Verify the server starts correctly
npm start

# Run the test suite
npm test

# Test with demo examples
node demo/run-all-demos.js

Usage

As MCP Server

Start the server:

npm start
# or
math-mcp

The server runs as an MCP server and can be integrated with Claude Desktop or other MCP clients.

Configuration Options

The server supports various configuration options via command-line flags:

# Basic usage
math-mcp

# With custom configuration
math-mcp --max-expression-length 2000 --timeout 10000 --allowed-functions "sqrt,sin,cos"

# Show help and available options
math-mcp --help

# Show version
math-mcp --version

Available Options:

  • --max-expression-length <number> - Maximum expression length (default: 1000)

  • --max-recursion-depth <number> - Maximum recursion depth (default: 100)

  • --timeout <number> - Evaluation timeout in milliseconds (default: 5000)

  • --allowed-functions <functions> - Comma-separated list of allowed functions

  • --help - Display help information

  • --version - Show version number

Supported Functions: sqrt, cbrt, abs, sign, ceil, floor, round, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh, log, log10, log2, exp, expm1, log1p, min, max, mean, median, std, var, sum, factorial, gamma

Development Mode

npm run dev

Running Examples

# Run all demo examples
node demo/run-all-demos.js

# Run specific demos
node demo/basic-operations.js
node demo/mathematical-functions.js
node demo/conditional-logic.js
node demo/test-summation.js
node demo/statistics-probability.js
node demo/calculus-applications.js
node demo/advanced-features.js

MCP Tools

evaluate

Evaluate mathematical expressions with full validation.

{
  "expression": "2 * pi * radius^2",
  "validate_only": false
}

validate_syntax

Validate expression syntax without evaluation.

{
  "expression": "sin(x) + cos(y)"
}

set_variable / get_variable

Manage variables in the math context.

{
  "name": "radius",
  "expression": "5"
}

list_variables / clear_variables

List or clear all defined variables.

MCP Resources

math://grammar

Access the complete BNF grammar specification.

math://functions

Get the list of all supported mathematical functions.

math://constants

Retrieve all predefined mathematical constants.

Expression Examples

Basic Arithmetic

2 + 3 * 4          // 14 (order of operations)
(2 + 3) * 4        // 20 (parentheses)
2^3 + 1            // 9 (exponentiation)
15 % 4             // 3 (modulo)

Mathematical Functions

sin(pi/2)          // 1
log(e)             // 1
sqrt(16)           // 4
abs(-5)            // 5

Variables and Constants

x = 5
y = 2 * x          // 10
area = pi * r^2    // Circle area

Advanced Features

x > 0 ? x : -x     // Absolute value using ternary
sigma(i, 1, 10, i^2)  // Sum of squares 1 to 10
[1, 2, 3, 4]       // Arrays
{x: 1, y: 2}       // Objects

Conditional Logic

x > 0 and y > 0    // Logical AND
not (x == 0)       // Logical NOT
a >= b ? a : b     // Maximum using ternary

Grammar Specification

The server implements a comprehensive BNF grammar supporting:

  • Operators: Arithmetic, logical, comparison, with proper precedence

  • Data Types: Numbers, strings, arrays, objects

  • Functions: Extensive mathematical function library

  • Control Flow: Conditional expressions and logical operations

  • Advanced Math: Summation, ranges, units, member access

See grammar.txt for the complete specification or access via math://grammar resource.

Development

Available Scripts

npm run build      # Compile TypeScript
npm run dev        # Development mode with tsx
npm start          # Start compiled server
npm test           # Run test suite
npm run test:watch # Watch mode testing
npm run lint       # ESLint checking
npm run typecheck  # Type checking only
npm run setup      # Full setup: install, build, test

Configuration Examples

# Restrict to basic functions only
math-mcp --allowed-functions "sqrt,abs,sin,cos"

# Increase limits for complex expressions
math-mcp --max-expression-length 5000 --timeout 15000

# Minimal configuration for simple calculations
math-mcp --allowed-functions "sqrt,abs" --max-expression-length 500

Project Structure

src/
├── server.ts           # MCP server implementation
├── evaluator.ts        # Secure expression evaluator
├── grammar-parser.ts   # BNF grammar parser
├── tokenizer.ts        # Lexical analyzer
├── tools/              # MCP tool implementations
├── resources/          # MCP resource handlers
└── __tests__/          # Test suite

demo/                   # Example scripts
grammar.txt            # BNF grammar specification

Testing

npm test               # Run all tests
npm run test:watch     # Watch mode

Tests cover:

  • Tokenizer functionality

  • Grammar parser validation

  • Expression evaluation

  • Integration scenarios

  • Summation operations

  • CLI configuration validation

Security Considerations

This server is designed with security as a primary concern:

  1. No Code Execution: Only mathematical expressions are evaluated

  2. Grammar Validation: All input is validated against a strict grammar

  3. Function Whitelisting: Only approved mathematical functions are available

  4. CLI Validation: Command-line function arguments are validated against the whitelist

  5. Timeout Protection: Expressions are evaluated with time limits

  6. Input Sanitization: All input is properly sanitized before processing

License

MIT License - see LICENSE file for details.

Support

For issues and feature requests, please use the GitHub issue tracker.

Acknowledgments

Available Tools

6 tools
clear_variablesA

Clear all defined variables

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but does not disclose side effects such as whether the clearing is permanent, scoped to the current session, or affects system-defined variables. The word 'clear' is ambiguous between deletion and nullification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no superfluous words. It efficiently conveys the core function without wasting the agent's attention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is adequate but leaves gaps. It does not clarify what 'defined variables' means, whether the action is scoped globally or per-session, or what the state after clearing looks like. Without annotations or output schema, a bit more context would help an agent use it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty. The baseline for zero parameters is 4, and there are no parameter semantics to explain. The description adds no parameter information, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Clear' with a clear resource 'all defined variables'. It is distinct from sibling tools like set_variable, get_variable, list_variables, and evaluate, which focus on individual operations or evaluation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios like resetting state or provide exclusions, leaving the agent without context for choosing this over set_variable or list_variables.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluateB

Evaluate mathematical expressions with strict grammar validation

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesMathematical expression to evaluate
validate_onlyNoIf true, only validate syntax without evaluation

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions 'strict grammar validation' as a trait, but does not disclose error behavior, state mutation (read vs. write), support for variables (despite sibling tools set_variable/get_variable), or return value format. This is a significant gap for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the core purpose and a key distinguishing feature. Every word contributes value; there is no repetition of the tool name or schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and two parameters, the description is too brief. It fails to mention how to reference variables (given sibling tools), what happens on invalid expressions (error vs. result), and what the return value of evaluation or validate_only mode looks like. This leaves significant gaps for a user or agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, as both parameters have descriptive text in the schema. The tool description itself adds no parameter-level semantics beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Evaluate'), a resource ('mathematical expressions'), and adds a distinguishing scope ('strict grammar validation'). It clearly differentiates from the sibling tool 'validate_syntax', which likely only checks syntax without computing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use (evaluating expressions) is implied by the tool name and description, and the validate_only parameter hints at a distinction from pure syntax validation. However, there is no explicit guidance on when to use this tool versus 'validate_syntax' or how it relates to the variable-related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_variableB

Get the value of a variable

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVariable name

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the core operation and does not mention what happens if the variable doesn't exist, whether the return value is typed, or any potential side effects. This is a minimal read operation, but the description fails to add any context beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the essential operation with zero waste. It is concise and well-structured for a tool of this simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter, no output schema, no annotations), the description is adequate but incomplete. It clearly states the purpose, but does not cover what the return value looks like or error behavior, which would be helpful for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with a clear description for the single 'name' parameter. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and a clear resource ('variable'), directly stating the operation. It distinguishes itself from siblings like set_variable, list_variables, and clear_variables, which involve different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention that list_variables should be used for retrieving all variables, nor does it describe any context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_variablesA

List all defined variables

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the action ('list') but does not mention whether the operation is read-only, non-destructive, or what output to expect. No side effects, permissions, or return format are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of four words, extremely concise and front-loaded. Every word earns its place with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool, the description is nearly complete. The only gap is the lack of output format information, but given the simplicity of the tool and absence of an output schema, the description suffices. It could be enhanced by mentioning whether it returns names, values, or both, but this is not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description cannot add parameter semantics beyond the empty schema. The baseline for 0 parameters is 4, and the description does not need to compensate for any missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all defined variables' uses a specific verb (list) and resource (variables), clearly indicating the tool's function. It also differentiates from siblings like get_variable (which likely retrieves a single variable) by specifying 'all defined variables'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_variable or clear_variables. The description is minimal and does not state whether this should be used to enumerate variables or for other purposes, relying solely on the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_variableB

Set a variable value in the math context

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVariable name
expressionYesMathematical expression to evaluate and store

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does not disclose whether the variable is overwritten, whether the expression is evaluated immediately, what happens on invalid expressions, or any persistence/scope details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It is appropriately front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with fully described parameters, the description gives the core purpose. However, given it is a mutation tool with no annotations and no output schema, it lacks behavioral context (overwrite, error handling, scope) that would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the parameter descriptions ('Variable name', 'Mathematical expression to evaluate and store') are clear. The tool description adds no additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set a variable value') and the context ('math context'). It distinguishes the tool from siblings like get_variable, list_variables, and clear_variables by specifying the write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as when to set a variable versus evaluate an expression directly. There is no mention of prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_syntaxB

Validate mathematical expression syntax against grammar

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesMathematical expression to validate

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states that validation is performed, but does not disclose critical behavioral details such as the return value (boolean, error, etc.) or whether the tool has side effects. This is a minimal disclosure for a validation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single, six-word sentence. It is maximally efficient and front-loaded, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description should explain the tool's behavior and expected outputs. It does not mention what result the validation returns or how the agent should interpret failures, making it incomplete for an agent to reliably use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a 100% description of the 'expression' parameter. The description adds the context of 'against grammar', clarifying the validation criterion, but does not provide additional syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Validate') on a specific resource ('mathematical expression syntax') against a defined standard ('grammar'). This distinguishes it from sibling tools like 'evaluate' or 'set_variable' which handle evaluation and variable management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case of checking syntax before evaluation, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. The phrasing suggests a pre-evaluation step, but lacks direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.0.0-development
    • First observedclear_variables
    • First observedevaluate
    • First observedget_variable
    • First observedlist_variables
    • First observedset_variable
    • First observedvalidate_syntax

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: evaluate computes, validate_syntax checks syntax, and variable tools manage context state. No two tools overlap in a confusing way.

Naming Consistency3/5

Variable tools follow a clear verb_noun pattern (set_variable, get_variable, list_variables, clear_variables), but evaluate and validate_syntax are single verbs without a noun, mixing conventions. Still readable but not fully consistent.

Tool Count5/5

Six tools is well-scoped for a math expression server, covering evaluation, validation, and variable management without excess or deficiency.

Completeness4/5

Core features are covered: evaluate, validate, and variable CRUD. A minor gap is lack of single-variable deletion (only clear all), but set_variable can overwrite, so agents can work around it.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A simple Model Context Protocol server that evaluates mathematical expressions like 'sqrt(25) + 2**3' sent by MCP clients, with secure evaluation that only allows math functions/constants.
    -
  • A
    license
    C
    quality
    C
    maintenance
    A comprehensive MCP server that turns any AI assistant into a powerful mathematical computation engine, providing 52 advanced functions, 158 unit conversions, financial calculations, and secure AST-based evaluation.
    18
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that performs exact arithmetic calculations, avoiding the pitfalls of float64 and unsafe eval, with resource limits for safe execution.
    1
    MIT

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

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