math-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@math-mcpEvaluate the expression: 2 * sin(pi/4)"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
NPM Installation (Recommended)
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-mcpDevelopment 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 startInstallation for LLM Agents
Claude Desktop Integration
To use this MCP server with Claude Desktop, first install the package globally:
npm install -g math-mcpThen 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 10000The 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-mcpTroubleshooting Installation
Common Issues:
"Command not found" error
Ensure Node.js >= 18.0.0 is installed:
node --versionVerify npm is available:
npm --versionFor global installation, ensure npm global bin is in PATH
Claude Desktop not detecting the server
Verify the path in
claude_desktop_config.jsonis correctEnsure the server builds successfully:
npm run buildCheck Claude Desktop logs for connection errors
Restart Claude Desktop after configuration changes
Permission errors
Use
sudofor global npm installations if neededEnsure write permissions in the installation directory
On Windows, run terminal as Administrator if needed
Build failures
Clear npm cache:
npm cache clean --forceRemove node_modules and reinstall:
rm -rf node_modules && npm installEnsure TypeScript dependencies are installed
Server startup issues
Check if port is already in use
Verify all dependencies are installed
Run
npm run typecheckto 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.jsUsage
As MCP Server
Start the server:
npm start
# or
math-mcpThe 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 --versionAvailable 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 devRunning 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.jsMCP 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) // 5Variables and Constants
x = 5
y = 2 * x // 10
area = pi * r^2 // Circle areaAdvanced 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} // ObjectsConditional Logic
x > 0 and y > 0 // Logical AND
not (x == 0) // Logical NOT
a >= b ? a : b // Maximum using ternaryGrammar 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, testConfiguration 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 500Project 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 specificationTesting
npm test # Run all tests
npm run test:watch # Watch modeTests 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:
No Code Execution: Only mathematical expressions are evaluated
Grammar Validation: All input is validated against a strict grammar
Function Whitelisting: Only approved mathematical functions are available
CLI Validation: Command-line function arguments are validated against the whitelist
Timeout Protection: Expressions are evaluated with time limits
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
Built with MCP SDK
Available Tools
6 toolsclear_variablesA
Clear all defined variables
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Mathematical expression to evaluate | |
| validate_only | No | If true, only validate syntax without evaluation |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name | |
| expression | Yes | Mathematical expression to evaluate and store |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Mathematical expression to validate |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.0.0-development- First observed
clear_variables - First observed
evaluate - First observed
get_variable - First observed
list_variables - First observed
set_variable - First observed
validate_syntax
TDQS
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.
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.
Six tools is well-scoped for a math expression server, covering evaluation, validation, and variable management without excess or deficiency.
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
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
Safe scientific calculator MCP for numeric expressions
1This MCP server enables users to perform scientific computations regarding linear algebra and vect…
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.-
- AlicenseCqualityCmaintenanceA 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.1813MIT
- AlicenseAqualityBmaintenanceEducational MCP server with 17 tools for mathematical calculations, matrix operations, statistical analysis, and data visualization. Includes persistent workspace, cloud hosting, and safety features like restricted eval.175Apache 2.0
- AlicenseAqualityAmaintenanceAn MCP server that performs exact arithmetic calculations, avoiding the pitfalls of float64 and unsafe eval, with resource limits for safe execution.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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