MCP Calculator
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., "@MCP Calculatorconvert 100 miles to kilometers"
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.

MCP Calculator
A modern Model Context Protocol server for mathematical calculations. Exposes 13 tools (6 core + 7 specialized) with high-precision arithmetic, a safe expression evaluator, statistics, unit conversion, and financial math.
Requirements
Python 3.10+
uv (or Docker, for the containerized setup)
Related MCP server: Symath-MCP
Installation
uv venv
uv pip install -e ".[dev]"Running
The server supports two transports, selected via the MCP_TRANSPORT environment variable (see Configuration).
STDIO
The server speaks MCP over stdio by default (the transport used by most MCP clients such as Claude Desktop and Claude Code):
source .venv/bin/activate
mcp-calculatorStreamable HTTP
To serve over streamable HTTP instead:
source .venv/bin/activate
MCP_TRANSPORT=http mcp-calculatorThe HTTP endpoint is then available at http://0.0.0.0:8080/mcp/.
Docker
Build the image and run it in HTTP mode (the image defaults to HTTP on port 8080):
docker build -t mcp-calculator .
docker run --rm -p 8080:8080 mcp-calculatorOverride any setting at runtime with -e, e.g. a different port:
docker run --rm -p 9000:9000 -e MCP_PORT=9000 mcp-calculatorConfiguration
Variable | Default | Description |
|
| Transport to use: |
|
| Host/interface to bind when using HTTP. Use |
|
| Port to listen on when using HTTP. |
Available Tools
Core
Tool | Description |
| add / subtract / multiply / divide with decimal precision (0-15) |
| trig, inverse trig, log/ln, sqrt, abs, factorial, exp, pow |
| evaluate expressions with variables, constants, and functions |
| mean, median, mode, std_dev, variance, percentile, range, skewness, kurtosis, summary |
| length, weight, temperature, volume, area |
| simple/compound interest, loan payment, ROI, present/future value |
Specialized
Tool | Description |
| full statistical overview of a dataset |
| a specific percentile (0-100) of a dataset |
| convert many values between units at once |
| Net Present Value of cash flows |
| Internal Rate of Return (Newton-Raphson) |
| compare loans, return the lowest monthly payment |
| compare investments, return the highest return |
Development
Testing
Run the test suite with:
pytestLicense
Available Tools
13 toolsadvanced_mathA
Perform advanced mathematical functions (trigonometry, logarithms, etc.).
Trig functions accept unit='degrees' to convert the input; inverse trig
functions return degrees when unit='degrees'. pow uses exponent.
Domain rules: log/ln require positive input, sqrt non-negative, factorial a
non-negative integer <= 170, exp argument <= 700.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| value | Yes | ||
| exponent | No | Exponent, used only by 'pow'. | |
| function | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses important behavioral details: trig functions accept unit='degrees' for conversion, inverse trig return degrees with that unit, pow uses exponent, and domain rules for log/ln, sqrt, factorial, and exp. It does not detail error handling or return formatting, but the output schema likely covers that.
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 compact and front-loaded with the purpose, then provides necessary behavioral specifics in a structured way. Every sentence adds value, with no redundant or filler content.
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 complexity of 14 functions and 4 parameters, the description covers key aspects: unit behavior, exponent usage, and domain constraints for the most error-prone functions. It does not explicitly mention trivial functions like 'abs' or error output, but the output schema exists and the core constraints are well covered.
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 coverage is only 25%, but the description adds significant meaning: it clarifies the 'unit' parameter for trig/inverse trig functions, explains that 'exponent' is used by 'pow', and provides domain rules for specific functions. This compensates well for the sparse schema descriptions.
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 it performs advanced mathematical functions (trigonometry, logarithms, etc.), with a specific verb and resource. It is distinct from sibling tools like basic_math by explicitly positioning itself as advanced.
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 name and description imply it is for advanced math operations, distinguishing from basic_math, but it does not explicitly state when to use this tool over alternatives or provide exclusions. The usage context is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
basic_mathA
Perform basic mathematical operations (add, subtract, multiply, divide).
Uses high-precision decimal arithmetic and rounds the result to precision
decimal places (0-15). Supports two or more operands applied left to right.
| Name | Required | Description | Default |
|---|---|---|---|
| operands | Yes | At least two numbers. | |
| operation | Yes | ||
| precision | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 reveals important details: high-precision decimal arithmetic, rounding to a configurable precision, and left-to-right evaluation of multiple operands. This goes beyond the basic operation names, though it does not address error handling (e.g., division by zero).
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 two concise sentences, front-loaded with the core purpose, and every sentence adds value. There is no redundancy or fluff.
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 arithmetic tool, the description covers operations, precision behavior, operand count, and evaluation order. The output schema exists, so return values need not be described. It lacks explicit usage guidance and error semantics, but is otherwise adequate for a tool of this complexity.
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 description adds meaning beyond the schema by explaining that precision controls decimal places (0-15) and that operands are applied left to right. The schema itself only describes operands as 'At least two numbers,' so the description compensates for the missing descriptions of operation and precision parameters.
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 tool's function ('Perform basic mathematical operations') and lists the specific operations (add, subtract, multiply, divide), giving a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like advanced_math or expression_eval, so it stops short of full sibling differentiation.
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 such as advanced_math or expression_eval. It implies usage through the word 'basic' but does not state exclusions, prerequisites, or alternative recommendations, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_conversionB
Convert multiple values between units in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | ||
| to_unit | Yes | ||
| category | Yes | ||
| from_unit | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only mentions 'in a single call' (a minor optimization hint) but does not reveal error behavior, precision, unit validation, or whether the operation is read-only. This is a significant gap for a conversion 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 description is a single, front-loaded sentence with no wasted words. It is sufficiently concise and easy to parse.
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?
Despite having four required parameters and an output schema, the description is minimal. It does not mention how the output is structured (though output schema exists), nor does it address batch limits or error cases. Overall, it is insufficient for an agent to confidently use this tool without further inference.
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 0% description coverage, and the description does not compensate. It does not explain the relationship between values, from_unit, to_unit, and category, nor does it clarify valid unit strings. The enum for category is in the schema, but the description adds no meaning beyond what the schema already provides.
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 (convert) and the resource (multiple values between units), and the phrase 'in a single call' distinguishes this batch operation from the sibling unit_conversion tool. While it doesn't name the sibling, the scope is specific and unambiguous.
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 batch_conversion versus unit_conversion. The description does not state that this should be used for multiple values or that single conversions should go to unit_conversion, leaving the agent to infer without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expression_evalA
Evaluate mathematical expressions with variable substitution.
Supports +, -, *, /, %, ^ (power), parentheses, comparison/logical operators, the constants pi/e (and PI/E), and the functions sin, cos, tan, asin, acos, atan, log (base 10), ln, sqrt, pow, abs, exp, factorial. Variable names must start with a letter and may not collide with reserved names.
| Name | Required | Description | Default |
|---|---|---|---|
| variables | No | ||
| expression | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It goes beyond the schema by listing supported operators, functions, constants, and variable naming constraints (must start with a letter, no reserved names). However, it does not mention error handling or edge cases, though the output schema may cover return formatting.
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 three sentences, front-loaded with the core purpose, followed by a dense but relevant list of supported features and variable rules. Every sentence provides distinct information and there is no filler.
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 moderately complex expression evaluator, the description covers expression syntax, operators, functions, constants, and variable constraints. The presence of an output schema likely covers the return structure, so the missing error-handling details are a minor gap. Overall, it is sufficiently complete for an agent to invoke 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 coverage is 0%, so the description must compensate. It does by explaining the expression syntax and variable substitution rules, including the constraint that variable names must start with a letter and avoid reserved names. This adds meaningful context to the otherwise bare 'expression' and 'variables' parameters.
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 'Evaluate mathematical expressions with variable substitution,' naming a specific verb and resource. The mention of variable substitution and the extensive list of supported operators/functions distinguishes it from sibling tools like basic_math or advanced_math.
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 usage for evaluating expressions with variables, but it does not explicitly state when to use this tool over alternatives or when not to use it. There is no comparison with sibling tools or exclusion criteria, making the guidance only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
financial_calcA
Perform financial calculations (interest, loans, ROI).
Rates are percentages. compound_interest/present_value/future_value
default to annual compounding (periods=1); loan_payment defaults to monthly
(periods=12). roi uses principal (initial) and future_value (final).
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | Annual rate as a percentage, e.g. 5 for 5%. | |
| time | No | Time in years. | |
| periods | No | Compounds/payments per year. | |
| operation | Yes | ||
| principal | No | ||
| future_value | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It meaningfully explains that rates are percentages, that compounding defaults vary by operation (annual for compound_interest/present_value/future_value, monthly for loan_payment), and that roi uses principal and future_value. This adds valuable context beyond the schema, though it omits edge-case behavior like error handling.
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 three sentences, front-loaded with the main purpose, and uses structured formatting for operation names. Every sentence provides useful information without redundancy, making it concise and scannable.
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 that an output schema exists, the description need not explain return values. It covers key behavioral defaults and parameter semantics, making it fairly complete for a calculator tool. Minor gaps remain regarding invalid inputs or boundary behaviors, but these are 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?
Schema coverage is 50%, and the description helps fill gaps by clarifying the semantics of principal and future_value for roi, and by explaining how rate and periods are interpreted per operation. This compensates for the undocumented parameters and adds meaning beyond the raw 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 tool performs financial calculations for interest, loans, and ROI, using a specific verb and resource. This distinguishes it from general math or statistics sibling tools, and the parenthetical enumerates the covered domains.
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 does not explicitly mention when to use this tool versus siblings like npv or irr. It provides operational context (rates are percentages, operation-specific compounding defaults) that implies usage scenarios, but it lacks explicit exclusions or alternatives, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
investment_scenariosA
Compare multiple investment scenarios and identify the highest return.
Each scenario defaults to compound_interest but may set operation to
any supported financial operation. Invalid scenarios are reported per-index.
| Name | Required | Description | Default |
|---|---|---|---|
| scenarios | Yes | Each scenario: principal, rate, time, optional periods/operation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It adds useful context: scenarios default to compound_interest, operation can be overridden, and invalid scenarios are reported per-index. However, it does not specify what 'supported financial operation' means, nor how invalid scenarios affect overall execution, leaving some ambiguity.
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 three sentences long, with the main purpose front-loaded in the first sentence. The second sentence adds crucial operational details (defaults, operation override, error reporting) with no redundant or filler content. Every sentence 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?
The description covers the tool's purpose, scenario construction, defaults, operation override, and error handling, which is sufficient for a tool with one array parameter and an output schema. It does not enumerate supported operations, which is a minor gap, but overall it gives the agent enough context to invoke 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?
The schema already provides 100% coverage for the single parameter 'scenarios', including its nested object fields. The description adds semantic value by stating the default operation (compound_interest) and the per-index error reporting, which the schema does not include. This raises it above the baseline of 3.
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+resource+outcome: 'Compare multiple investment scenarios and identify the highest return.' This clearly distinguishes it from sibling financial tools like npv, irr, or loan_comparison, which focus on single calculations or specific comparisons.
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 usage when comparing multiple investment scenarios and finding the best return, but it does not explicitly mention alternatives or when not to use this tool. There is clear context, but no exclusions or named alternative tools, so it falls short of a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
irrB
Calculate Internal Rate of Return of cash flows (Newton-Raphson).
| Name | Required | Description | Default |
|---|---|---|---|
| cash_flows | Yes | Cash flows; index 0 is the initial outlay (usually negative). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. 'Newton-Raphson' hints at an iterative numerical method and possible convergence limitations, but the description does not address issues like multiple IRRs for non-conventional cash flows, the rate convention (e.g., per period or annualized), or what happens if the method fails to converge.
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 efficiently states the tool's calculation target and method. There is no redundant or filler content.
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?
The description combined with the schema covers the essential mechanics of a simple one-parameter function, especially since an output schema exists. However, it lacks usage context and numerical caveats that would help an agent decide when to call this tool versus sibling financial calculations, and it does not clarify periodicity or edge-case behavior.
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 already provides 100% coverage for the single parameter, including the convention that index 0 is the initial outlay and that a minimum of 2 cash flows is required. The description adds no parameter-specific meaning, so the baseline 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 ('Calculate') and resource ('Internal Rate of Return of cash flows'), clearly identifying the tool's purpose. Mentioning 'Newton-Raphson' also helps distinguish it from more generic sibling tools like financial_calc or npv.
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?
There is no explicit guidance on when to use this tool versus alternatives like npv or loan_comparison. The description only implies usage when an IRR calculation is needed, but does not state exclusions, prerequisites, or when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_comparisonA
Compare multiple loan options and identify the lowest monthly payment.
Each loan object accepts the same fields as financial_calc loan_payment
(principal, rate, time, periods). Invalid loans are reported per-index rather
than aborting the whole comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| loans | Yes | Each loan: principal, rate, time, optional periods. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It does this by stating that invalid loans are reported per-index instead of failing the whole comparison, and it clarifies input compatibility across loan objects. It doesn't discuss side effects, but this is a calculation tool where mutation is unlikely.
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?
Two sentences, each purposeful: the first states the action and result, the second covers input compatibility and error behavior. No filler.
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?
An output schema is present, so return-value details need not be in the description. The description adequately covers the input contract, cross-tool compatibility, and error handling for a moderately complex comparison 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 only gives a generic description for the loans array, but the description specifies the exact fields (principal, rate, time, periods) inherited from financial_calc loan_payment. It also explains error granularity per-index, which adds semantic context to the parameter.
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 opens with a specific verb ('Compare') and resource ('multiple loan options') plus a clear outcome ('identify the lowest monthly payment'). This also differentiates it from sibling financial_calc, which would handle a single loan.
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 clearly frames the tool for multi-loan comparisons, and references financial_calc for field compatibility. However, it doesn't explicitly instruct when not to use it or name financial_calc as the single-loan alternative, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npvB
Calculate Net Present Value of a series of cash flows.
| Name | Required | Description | Default |
|---|---|---|---|
| cash_flows | Yes | Cash flow per period; index 0 is t=0. | |
| discount_rate | Yes | Discount rate as a percentage. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It only states the basic function and does not disclose conventions such as sign handling (e.g., negative cash flows as outflows), period alignment, or how the output is presented. The description adds no behavioral details beyond what the schema already specifies.
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 10 words, front-loaded with the action and object. Every word contributes to the core function, with no redundancy or extraneous 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?
Given the tool's simplicity, two fully described parameters, and the presence of an output schema, the description is minimally sufficient. The schema covers parameter semantics and the output schema handles return value description, so this is not critically incomplete—though it lacks usage context and behavioral caveats that would be expected for an unannotated 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 provides comprehensive descriptions for both parameters: cash_flows includes 'index 0 is t=0' and discount_rate includes 'as a percentage', yielding 100% schema_description_coverage. The description does not add any parameter-specific meaning beyond restating 'series of cash flows', 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 uses the specific verb 'Calculate' and identifies the resource 'Net Present Value of a series of cash flows', clearly distinguishing it from sibling financial tools like irr or loan_comparison. The scope is explicit and unambiguous, making the tool's primary function immediately apparent.
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 such as irr, financial_calc, or investment_scenarios. It simply states the calculation without any context, exclusions, or reference to related tools, leaving the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentileC
Calculate a specific percentile (0-100) of a dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| percentile | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only mentions 'calculate' without disclosing return type, edge-case handling (e.g., empty data, interpolation method), or side-effect profile. This significant gap leaves the agent without critical behavioral context.
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, focused sentence beginning with the action verb. It contains no redundant information and is well-structured for quick parsing.
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?
Although the tool is simple and an output schema exists, the description lacks essential context: no usage guidance, no differentiation from sibling statistical tools, and no behavioral disclosure. This minimal description is insufficient for an agent to correctly select and invoke the tool within the suite.
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 coverage is 0%, and the description adds minimal semantic value by mapping 'dataset' to data and 'percentile' to the percentile parameter, but it does not explain data format, percentile interpretation, or constraints beyond the schema. It fails to compensate for the lack of schema descriptions.
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 tool calculates a specific percentile of a dataset, using a specific verb and resource. It even specifies the 0-100 range, but does not explicitly differentiate it from sibling tools like stats_summary or statistics_analysis, so it lacks sibling differentiation.
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 only defines what the tool does, with no context about overlapping sibling tools or when a percentile calculation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statistics_analysisA
Perform statistical analysis on data sets.
Standard deviation and variance use the sample estimator (n-1). The
percentile operation returns the 25/50/75/90/95/99th percentiles.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 adds meaningful details: standard deviation and variance use the sample estimator (n-1), and the percentile operation returns a specific set of percentiles. This goes beyond the schema's enum values and is highly useful.
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 two sentences with zero wasted words. It front-loads the main purpose, then provides two specific, high-value behavioral details. Every sentence 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?
Given the tool has an output schema and moderate complexity (10 operations, 2 params), the description is near-complete. It covers the main purpose and key behavioral nuances but lacks explicit sibling differentiation and leaves some operations (e.g., 'summary') unspecified. Overall, it is adequately 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 0%, so the description must compensate. It does so for two key parameters by clarifying the estimator for std_dev/variance and specifying the percentile set. While not every operation is explained (e.g., skewness, summary), the enum names are mostly self-explanatory and the added details cover the most ambiguous cases.
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 tool performs statistical analysis on data sets, which is a specific verb+resource. However, it doesn't explicitly distinguish this from the sibling tools 'stats_summary' and 'percentile', which likely overlap.
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?
Usage is implied by the list of operations (mean, median, std_dev, etc.) and the note about sample estimators. There is no explicit guidance on when to use this tool versus alternatives like stats_summary or percentile, but the intended use case is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stats_summaryA
Get comprehensive statistical summary of a dataset.
Returns count, mean, median, standard deviation, variance, range, min, max and the 25/50/75th percentiles in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the specific statistics returned and emphasizes the single-call convenience, which is useful behavioral context. However, with no annotations, it does not address edge cases, error handling, or processing assumptions, leaving gaps in transparency for a pure computation 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?
Two concise sentences: the first establishes the purpose, the second lists the output metrics. There is no redundancy, and the key information is front-loaded.
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 simple one-parameter schema and the presence of an output schema, the description sufficiently covers the core functionality and return values. However, it lacks sibling differentiation and any notes on when to use this over related tools, so it is not fully complete in context.
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 description mentions 'dataset' but provides no additional meaning about the data parameter beyond the schema's array-of-numbers definition. With 0% schema description coverage and a single parameter, the description should have compensated by explaining format expectations or constraints, but it does not.
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 it computes a comprehensive statistical summary, listing specific metrics such as count, mean, median, and percentiles. This distinguishes it from siblings like 'percentile' which focuses on individual percentiles, and 'statistics_analysis' which may be broader.
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 explicit guidance on when to use this tool versus alternatives like 'statistics_analysis' or 'percentile'. The phrase 'in a single call' implies a convenience benefit, but there is no direct comparison or exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unit_conversionC
Convert between different units of measurement.
Categories and units — length: mm, cm, m, km, in, ft, yd, mi, mil, μm, nm; weight: mg, g, kg, t, oz, lb, st, ton; temperature: C, F, K, R; volume: ml, cl, dl, l, kl, fl_oz, cup, pt, qt, gal, tsp, tbsp, bbl; area: mm2, cm2, m2, km2, in2, ft2, yd2, mi2, acre, ha.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| to_unit | Yes | Target unit symbol. | |
| category | Yes | ||
| from_unit | Yes | Source unit symbol. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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, but it only lists supported units. It does not mention output format, rounding behavior, unit normalization, temperature conversion specifics, or error handling, leaving important behavioral traits undisclosed.
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 front-loaded with a clear single-sentence purpose followed by a well-organized, categorized list of units. The list is long but necessary for specifying supported values; there is no redundant filler.
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?
The output schema exists and the description provides the category enum and unit lists, so parameter coverage is decent. However, missing usage guidelines and behavioral details (e.g., output structure, temperature conversion behavior) leave the description only minimally complete for a 4-parameter 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 schema only describes from_unit and to_unit as 'unit symbol', leaving value and category underdocumented. The description compensates by enumerating valid units per category, which clarifies the allowed parameter values, but it does not explain the value parameter or how category relates to the chosen units.
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 tool converts between units of measurement and lists supported categories and units. It is a specific verb+resource statement, but it does not distinguish this tool from the sibling batch_conversion or explain when to use single vs batch conversion.
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 explicit guidance is given on when to use this tool versus alternatives such as batch_conversion. The description only says what the tool does, not the intended use case or exclusions.
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.
13 tool updates
v1.0.0- First observed
advanced_math - First observed
basic_math - First observed
batch_conversion - First observed
expression_eval - First observed
financial_calc - First observed
investment_scenarios - First observed
irr - First observed
loan_comparison - First observed
npv - First observed
percentile - First observed
statistics_analysis - First observed
stats_summary - First observed
unit_conversion
TDQS
Statistics has three overlapping tools (statistics_analysis, stats_summary, percentile) which could confuse an agent. Financial_calc overlaps with loan_comparison and investment_scenarios, though the comparative tools are distinct. Other tools are clearly separated.
Most tools use noun_noun or adjective_noun patterns, but npv and irr are acronyms that break the pattern. expression_eval is verb-last while others are noun-first. Still readable but not fully consistent.
With 13 tools, the server covers math, statistics, conversions, and finance without exceeding a manageable count. Each tool has a clear domain, though some redundancy exists in stats.
The server covers basic and advanced math, expression evaluation, statistics, unit conversions, and financial calculations, including comparative tools. Missing features like complex numbers or regression analysis are minor for a calculator.
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
This 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
MCP server for live currency exchange rates and conversion, ISO codes and Chinese currency names.
11MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
Related MCP Servers
- AlicenseAqualityDmaintenanceFree MCP server for Claude with math and financial calculation tools — unit conversion, currency math, compound interest, statistics.81MIT
- AlicenseAqualityDmaintenanceA symbolic mathematics MCP server supporting calculus, linear algebra, number theory, statistics, and unit conversion via natural language.8MIT
- FlicenseNot gradedqualityDmaintenanceA comprehensive MCP server providing basic and advanced math operations (addition, subtraction, statistics, etc.) as well as smart prompts for multiplication tables, equation solving, financial calculations, geometry, unit conversion, loan amortization, probability, and fitness analytics.1-
- -licenseNot gradedqualityNot gradedmaintenanceMCP server providing Claude with advanced mathematical capabilities including symbolic math, statistics, and matrix operations.-
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/devantage/mcp-calculator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server