Skip to main content
Glama
FellowTraveler

finance-calc-mcp

finance-calc-mcp

Business, financial, and tax calculator — MCP server + CLI.

Single command install. No cloning required.


Install

# Run directly (no install needed)
uvx finance-calc-mcp calc "185000 * 0.21"

# Or install permanently
uv tool install finance-calc-mcp
# or: pip install finance-calc-mcp

Related MCP server: Arc & Ledger Tax Tools MCP server

Use as an MCP Server

Prerequisites

Install uv if you don't have it:

curl -LsSf https://astral.sh/uv/install.sh | sh

Restart your terminal after installing, then confirm uvx works:

uvx --version

Claude Desktop

Edit your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

macOS:

{
  "mcpServers": {
    "finance-calculator": {
      "command": "/bin/bash",
      "args": ["-lc", "uvx finance-calc-mcp"]
    }
  }
}

Claude Desktop on macOS is a GUI app that doesn't inherit your shell PATH. The /bin/bash -lc wrapper runs a login shell so uvx is found regardless of where uv was installed.

Windows:

{
  "mcpServers": {
    "finance-calculator": {
      "command": "uvx",
      "args": ["finance-calc-mcp"]
    }
  }
}

Restart Claude Desktop. The finance tools will appear automatically.

Claude Code (terminal)

claude mcp add finance-calculator -- uvx finance-calc-mcp

Other MCP Clients

Any MCP-compatible client can launch the server:

uvx finance-calc-mcp

With no arguments, it starts in MCP server mode (stdio transport).


MCP Tools

When connected as an MCP server, Claude gets these tools:

calculate

Evaluate a financial/business math expression. Supports +, -, *, /, **, %, parentheses, and functions: round(), abs(), max(), min(), sum(), sqrt(), log(), floor(), ceil(), pow().

Parameter

Type

Required

Description

expression

string

yes

Math expression to evaluate

gross_margin

Calculate gross margin, gross profit, and markup from revenue and COGS.

Parameter

Type

Required

Description

revenue

number

yes

Total revenue

cogs

number

yes

Cost of goods sold

us_income_tax_estimate

Estimate 2024 US federal income tax for individuals, with bracket-by-bracket detail.

Parameter

Type

Required

Description

taxable_income

number

yes

Taxable income in USD

filing_status

string

yes

single, married_jointly, married_separately, or head_of_household

self_employment_tax

Calculate self-employment (SE) tax and deductible half for Schedule SE. Covers Social Security, Medicare, and the additional Medicare surtax above $200k.

Parameter

Type

Required

Description

net_self_employment_income

number

yes

Net profit from self-employment

depreciation

Calculate a depreciation schedule (straight-line or double-declining balance).

Parameter

Type

Required

Description

asset_cost

number

yes

Asset purchase price

useful_life

number

yes

Useful life in years

salvage_value

number

no

Salvage/residual value (default 0)

method

string

no

straight_line (default) or double_declining

payroll_summary

Estimate employer payroll costs and employee net pay for a given gross salary. Covers FICA (Social Security + Medicare), FUTA, and SUTA.

Parameter

Type

Required

Description

gross_annual_salary

number

yes

Annual gross salary

state_suta_rate

number

no

State unemployment rate % (default 2.7)

loan_amortization

Generate a loan amortization summary: monthly payment, total interest paid, and optionally a full month-by-month schedule.

Parameter

Type

Required

Description

principal

number

yes

Loan principal

annual_rate_pct

number

yes

Annual interest rate as percent (e.g. 6.5)

term_years

number

yes

Loan term in years

show_schedule

boolean

no

Return full amortization table (default false)

percent_change

Calculate percent change between two values.

Parameter

Type

Required

Description

old_value

number

yes

Starting/original value

new_value

number

yes

Ending/new value

break_even

Calculate break-even units and revenue given fixed costs, price per unit, and variable cost per unit.

Parameter

Type

Required

Description

fixed_costs

number

yes

Total fixed costs

price_per_unit

number

yes

Selling price per unit

variable_cost_per_unit

number

yes

Variable cost per unit

currency_format

Format a number as a USD currency string.

Parameter

Type

Required

Description

amount

number

yes

Amount to format

decimals

integer

no

Decimal places (default 2)


CLI Usage

Every MCP tool is also available as a CLI command.

# Evaluate any expression
finance-calc-mcp calc "185000 * 0.21"
finance-calc-mcp calc "(850000 - 612000) / 850000 * 100"

# Gross margin
finance-calc-mcp margin 850000 612000

# 2024 US federal income tax estimate
finance-calc-mcp tax 185000 single
finance-calc-mcp tax 320000 married_jointly

# Self-employment tax
finance-calc-mcp se-tax 95000

# Loan amortization (add --schedule for full table)
finance-calc-mcp amortize 400000 6.5 30
finance-calc-mcp amortize 400000 6.5 30 --schedule

# Payroll (optional: state SUTA rate %)
finance-calc-mcp payroll 95000
finance-calc-mcp payroll 95000 3.4

# Depreciation (straight-line default, or double_declining)
finance-calc-mcp depreciation 50000 5
finance-calc-mcp depreciation 50000 5 5000 --method double_declining

# Break-even analysis
finance-calc-mcp break-even 120000 49.99 18.50

# Percent change
finance-calc-mcp pct-change 1200000 1485000

# Format as currency
finance-calc-mcp format 1234567.89

Example Output

$ finance-calc-mcp tax 185000 single

2024 Federal Income Tax Estimate (single)
Taxable Income:   $185,000.00
Federal Tax:      $37,442.50
Effective Rate:   20.24%

Bracket Detail:
  10%  $0.00 – $11,600.00:  $11,600.00 taxed → $1,160.00
  12%  $11,600.00 – $47,150.00:  $35,550.00 taxed → $4,266.00
  22%  $47,150.00 – $100,525.00:  $53,375.00 taxed → $11,742.50
  24%  $100,525.00 – $191,950.00:  $84,475.00 taxed → $20,274.00
$ finance-calc-mcp amortize 400000 6.5 30

Loan Amortization Summary
Principal:       $400,000.00
Rate:            6.500% APR
Term:            30 years (360 months)
Monthly Payment: $2,528.27
Total Paid:      $910,177.52
Total Interest:  $510,177.52
Interest/Dollar: 127.54%

License

MIT

Available Tools

10 tools
break_evenA
Read-onlyIdempotent

Calculate break-even units and revenue given fixed costs, price per unit, and variable cost per unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixed_costsYesTotal fixed costs
price_per_unitYesSelling price per unit
variable_cost_per_unitYesVariable cost per unit

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no additional behavioral context beyond stating it calculates, which is consistent with the annotations. It does not mention edge cases or output details, but the safety profile is already covered by 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 clear sentence that front-loads the primary action and lists inputs efficiently. Every word earns its place with no fluff.

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

Completeness5/5

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

For a simple calculation tool with no output schema, the description sufficiently explains what the tool computes and the required inputs. The output (break-even units and revenue) is implied by the description, making it complete for typical use.

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%, so each parameter is already documented. The description restates the parameters without adding new semantics like units or constraints. It meets the baseline for high schema coverage.

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 function: calculate break-even units and revenue, with specific inputs (fixed costs, price per unit, variable cost per unit). This distinguishes it from sibling tools like gross_margin or percent_change.

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

Usage Guidelines4/5

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

The description clearly indicates the context for use: break-even analysis given cost and price inputs. It does not explicitly exclude alternatives, but the input requirements make the usage scenario unambiguous.

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

calculateA
Read-onlyIdempotent

Evaluate a financial/business math expression. Supports +, -, *, /, **, %, parentheses, and common functions: round(), abs(), max(), min(), sum(), sqrt(). Examples: '125000 * 0.21', '(85000 - 12000) / 12', 'round(1234567.89, -3)'

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesMath expression to evaluate

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe, non-mutating profile. The description adds valuable behavioral context by specifying the supported operators, functions, and example expressions, which goes beyond what annotations convey.

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 two sentences, front-loaded with the primary purpose. The first sentence states the action and scope; the second compactly lists supported syntax and gives three illustrative examples. No unnecessary words or repetition.

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 simple single-parameter tool with no output schema, the description covers the input format thoroughly. It implicitly communicates that the result is numeric through examples. It does not explicitly state the return type or error behavior, but given the tool's simplicity and annotations, this is a minor gap.

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

Parameters5/5

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

Schema description coverage is 100%, but the description significantly enriches the single parameter by detailing the expression grammar, listing functions and operators, and providing concrete examples. This turns the vague 'Math expression to evaluate' into a well-specified input format.

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 opens with a specific verb+resource: 'Evaluate a financial/business math expression.' It clearly states the tool's function and distinguishes it from sibling specialized calculators by positioning it as the generic math evaluator. Supported operators and functions further clarify intended use.

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 use for general financial/business math but does not explicitly state when to use this tool versus alternatives like gross_margin or us_income_tax_estimate. No exclusions or alternative references are provided, leaving the decision to the agent's inference.

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

currency_formatA
Read-onlyIdempotent

Format a number as USD currency string (or other locale).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to format
decimalsNoDecimal places (default 2)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the 'or other locale' claim but provides no mechanism to select a locale, which is slightly ambiguous. No contradiction with annotations, but the behavioral disclosure beyond annotations is minimal.

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 conveys the core purpose without any extraneous words. It is appropriately concise.

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?

The tool is simple, but the description lacks detail on output format specifics (e.g., rounding, grouping) and does not clarify how the 'other locale' is specified, especially since there is no locale parameter. Without an output schema, more behavioral detail would be beneficial, though the basic function is clear.

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 coverage is 100%: both 'amount' and 'decimals' have descriptions. The description does not add any information beyond the schema, 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 'Format a number as USD currency string (or other locale)' clearly states a specific verb (format) and resource (number to currency string). It differentiates from sibling financial calculation tools like gross_margin and loan_amortization, making its purpose unmistakable.

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

Usage Guidelines4/5

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

The description implies the tool is used when a number needs to be formatted as currency, which is clear context. However, it does not explicitly state when not to use it or name alternatives, though the sibling tools are all calculations, so the distinction is implicit.

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

depreciationA
Read-onlyIdempotent

Calculate straight-line or MACRS-style depreciation schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNostraight_line | double_declining (default: straight_line)
asset_costYesAsset purchase price
useful_lifeYesUseful life in years
salvage_valueNoSalvage/residual value (default 0)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds that it supports straight-line or MACRS-style methods, but does not disclose return format, schedule granularity, or edge cases like partial-year handling. This is acceptable given the annotations, but no extra behavioral context is provided beyond method selection.

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 states exactly what the tool does. Every word contributes to understanding the tool's purpose, with no redundant phrases or filler.

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?

The tool has no output schema, so the description should at least hint at the return format. It says 'schedule' which implies a series of values, but does not clarify whether it returns annual amounts, cumulative amounts, or a table. Given the small parameter set and annotations, the description is adequate but leaves some ambiguity about the output shape.

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%, so all parameters are already documented. The description adds no new parameter semantics, though it does echo the method choices ('straight-line or MACRS-style') which align with the schema's method values. The term 'MACRS-style' is not an exact match for 'double_declining', but it does hint at the intended method semantics.

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 tool calculates a depreciation schedule, naming two methods (straight-line and MACRS-style). This distinguishes it from sibling financial tools like tax estimators and loan amortization, which serve different purposes.

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 usage for depreciation calculations but does not explicitly state when to choose this tool over alternatives such as loan_amortization or break_even. There is no mention of exclusions or conditions, leaving usage guidance to inference from the tool name.

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

gross_marginA
Read-onlyIdempotent

Calculate gross margin, gross profit, and markup from revenue and COGS.

ParametersJSON Schema
NameRequiredDescriptionDefault
cogsYesCost of goods sold
revenueYesTotal revenue

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the output set (gross margin, profit, markup), but this overlaps with purpose and provides no additional behavioral details like edge-case handling or return format.

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?

A single sentence that is front-loaded with the action and lists the key outputs and inputs. No filler or redundant information.

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

Completeness5/5

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

For a simple two-parameter calculation with full schema coverage and safety annotations, the description is complete. It names all three outputs upfront and requires no additional detail to understand what the tool does.

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% (both revenue and cogs have descriptions). The description only restates the source parameters without adding clarity on units, valid ranges, or relationships, so it adds no meaningful value 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 uses the specific verb 'Calculate' and names the exact resources (gross margin, gross profit, markup) and inputs (revenue, COGS). It clearly distinguishes from sibling financial calculators like percent_change or break_even by stating its unique outputs.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool when you need gross margin, gross profit, or markup from revenue and COGS. It does not explicitly mention alternatives or exclusions, but the specificity makes the intended use obvious without ambiguity.

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

loan_amortizationA
Read-onlyIdempotent

Generate a loan amortization summary (monthly payment, total interest, full schedule).

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesLoan principal
term_yearsYesLoan term in years
show_scheduleNoReturn full amortization table (default false)
annual_rate_pctYesAnnual interest rate as percent (e.g. 6.5)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it produces a summary with specific outputs, but does not disclose additional behavioral traits beyond what annotations cover. No contradictions with 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 efficient sentence that front-loads the purpose and the outputs. Every word earns its place, and there is no 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?

The description lists the key return values (monthly payment, total interest, full schedule), which is sufficient given the absence of an output schema. It is reasonably complete for a simple calculator, though it does not explicitly mention the optional schedule toggle, but the schema covers that.

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%, so the schema fully documents all four parameters. The description adds no additional parameter semantics beyond the schema, such as units or formatting; it only lists the outputs that the tool will generate.

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

Purpose4/5

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

The description clearly states that the tool generates a loan amortization summary, listing specific outputs (monthly payment, total interest, full schedule). This is a specific verb+resource and distinguishes it from sibling financial calculation tools, though it does not explicitly contrast with alternatives.

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 tool is used for loan amortization calculations by listing the expected outputs, but it gives no explicit guidance on when to choose this over sibling tools or mention prerequisites. Usage is implied rather than explicitly stated.

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

payroll_summaryA
Read-onlyIdempotent

Estimate employer payroll costs and employee net pay for a given gross salary. Covers FICA (SS + Medicare), FUTA, and SUTA estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault
state_suta_rateNoState unemployment rate % (default 2.7)
gross_annual_salaryYesAnnual gross salary

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds valuable context about which tax components are included, which is beyond the annotations. It also states it provides estimates, setting expectations about precision. No contradiction.

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?

Two concise sentences, front-loaded with the core purpose, followed by a scoped list of covered taxes. Every word earns its place with no redundancy or filler.

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?

The description adequately conveys what the tool computes for a simple calculator. It lists the covered tax components and implies the output (employer costs and net pay). Since there is no output schema, a bit more detail about the exact return fields could help, but it is sufficient given the simplicity.

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 coverage is 100%: both parameters have descriptions. The description adds minimal meaning beyond the schema, just identifying gross salary as the basis. It does not elaborate on state_suta_rate beyond what's in the schema, so baseline 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 clearly states the tool estimates employer payroll costs and employee net pay from gross salary, and enumerates the specific taxes covered (FICA, FUTA, SUTA). This distinguishes it from sibling tools like us_income_tax_estimate and self_employment_tax.

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

Usage Guidelines4/5

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

The scope is clear: it's for employer-side payroll cost estimation and employee net pay. It implies usage for payroll-related calculations, and by listing covered taxes it suggests when it applies. However, it does not explicitly mention alternatives or exclusions (e.g., 'not for income tax').

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

percent_changeB
Read-onlyIdempotent

Calculate percent change, markup, or margin between two values.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_valueYesEnding/new value
old_valueYesStarting/original value

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnly and idempotent behavior, so the description does not need to restate those. However, it introduces ambiguity by listing three possible calculations (percent change, markup, margin) without explaining how the tool decides which to compute or what output format to expect. This is a significant behavioral gap not covered by 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, well-structured sentence that immediately states the tool's purpose without any filler. It is front-loaded and concise, earning a perfect score for this dimension.

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?

While the tool is simple and parameters are well-documented, the lack of output schema and the ambiguous listing of three separate metrics make the description incomplete. It would be more helpful to specify what the function returns (e.g., the percentage value) and any conventions like sign handling. Given the annotations and schema, a score of 3 reflects a minimally viable but not enriched description.

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%, with 'old_value' and 'new_value' clearly described as starting/original and ending/new values. The description adds no additional meaning beyond the schema, 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.

Purpose4/5

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

The description clearly specifies a calculation verb ('calculate') and the resource ('percent change, markup, or margin') between two values. It conveys a distinct purpose, though it could more strongly distinguish itself from sibling tools like 'gross_margin' by noting that all three metrics are returned or selectable.

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 offers no guidance on when to use this tool versus alternatives such as 'gross_margin' or 'calculate'. It does not state any exclusions, prerequisites, or typical use cases, leaving the agent without context for tool selection.

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

self_employment_taxA
Read-onlyIdempotent

Calculate self-employment (SE) tax and deductible half for Schedule SE.

ParametersJSON Schema
NameRequiredDescriptionDefault
net_self_employment_incomeYesNet profit from self-employment

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful information that the tool calculates both the SE tax and the deductible half, which clarifies output semantics. No contradictions found.

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 with no redundant words. It fully defines the tool's purpose in under 10 words.

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?

The tool is simple with one input and no output schema, but the description only partially reveals the return structure (tax and deductible half). It does not specify exact field names or any limitations, such as tax year or wage base assumptions, which could be important for an agent.

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 has 100% coverage with one parameter 'net_self_employment_income' described as 'Net profit from self-employment'. The description does not add additional detail 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 clearly states a specific verb ('Calculate') and resource ('self-employment tax and deductible half for Schedule SE'). It distinguishes itself from sibling tools like us_income_tax_estimate by explicitly targeting SE tax and Schedule SE.

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?

Usage context is implied: use when you need SE tax calculation. However, there is no explicit mention of when not to use it or alternative tools, such as us_income_tax_estimate, so guidance is not fully explicit.

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

us_income_tax_estimateB
Read-onlyIdempotent

Estimate 2024 US federal income tax (individuals). Filing statuses: single, married_jointly, married_separately, head_of_household.

ParametersJSON Schema
NameRequiredDescriptionDefault
filing_statusYessingle | married_jointly | married_separately | head_of_household
taxable_incomeYesTaxable income in USD

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not expected to re-state safety. It adds useful context by specifying the tax year (2024) and that it applies to individuals, but it does not describe the output format or calculation assumptions.

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 two short sentences, front-loaded with the core action. Every word contributes to understanding the tool's scope.

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?

With no output schema, the description should mention what the tool returns, but it does not. It also lacks details on whether the estimate includes standard deductions or credits. However, the tool is simple and the purpose is clear, so it's not completely inadequate.

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?

Both parameters are fully described in the input schema (taxable_income and filing_status with allowed values). The description adds no additional parameter semantics; it merely lists filing statuses in the prose, which duplicates 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 'Estimate 2024 US federal income tax (individuals)' with a specific verb ('estimate') and resource ('2024 US federal income tax'), and lists filing statuses. It distinguishes from sibling self_employment_tax by specifying 'individuals' and the type of tax.

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 like self_employment_tax or other financial calculations. The description only mentions filing statuses, which are parameters, not usage scenarios.

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.

  1. 10 tool updatesv0.2.0
    • First observedbreak_even
    • First observedcalculate
    • First observedcurrency_format
    • First observeddepreciation
    • First observedgross_margin
    • First observedloan_amortization
    • First observedpayroll_summary
    • First observedpercent_change
    • First observedself_employment_tax
    • First observedus_income_tax_estimate

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation3/5

Most tools target distinct financial calculations, but gross_margin and percent_change both compute margin/markup, creating ambiguity. The general calculate tool also overlaps with simple computations, though it's clearly a catch-all.

Naming Consistency2/5

Tool names follow no consistent verb_noun pattern; some are nouns (depreciation, loan_amortization), some are verb phrases (calculate), and some are compound terms (us_income_tax_estimate). While all use snake_case, the structural inconsistency makes it harder to predict tool names.

Tool Count5/5

10 tools is well-scoped for a finance calculator, covering a broad range of common financial calculations without excessive redundancy. Each tool has a clear domain purpose.

Completeness4/5

The toolset covers profitability, tax, depreciation, payroll, loans, break-even, percentage changes, and formatting. Minor gaps like NPV/IRR or compound interest exist, but core financial analysis needs are well covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    A public, no-auth remote MCP server that exposes Arc & Ledger's free tax calculators and intake funnel as tools inside AI assistants. Provides tools for IRS notice explanation, FBAR/FATCA, LLC vs S-Corp comparison, quarterly tax estimates, and more.
    -
  • A
    license
    A
    quality
    C
    maintenance
    A personal finance and business economics MCP server that provides math-backed answers to financial questions, including investment growth, loan amortization, debt payoff strategies, and tax estimation, all computed locally without API keys or network calls.
    11
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server exposing UK financial adviser calculations (tax, IHT, pensions, portfolios) to any MCP-capable client.
    6
    MIT