precisioncalc-mcp
High-precision finance & business calculations for AI agents — exact decimals, never floats.
Should I use this
Quality & Safety
Findings (4)
- LOWin compound_growth
- LOWin internal_rate_of_return
- LOWin loan_amortization
- LOWin health_check
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"precisioncalc-mcp": {
"command": "npx",
"args": [
"precisioncalc-mcp"
]
}
}
}Runnable packages
2.1.1stdioRemote endpoints
https://precisioncalc-mcp.pages.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢calculate_metric(metric, params, currency)
Compute a business/SaaS/finance metric with exact decimal precision. Metrics: ltv, cac, ltv_cac_ratio, payback_period_months, contribution_margin, gross_margin, churn_rate, mrr_growth_rate, arr, break_even_units, nrr, grr, rule_of_40, magic_number. Rates/margins are decimals (0.05=5%). Call list_metrics for schemas.
Input Schema
{
"type": "object",
"properties": {
"metric": {
"type": "string"
},
"params": {
"type": "object"
},
"currency": {
"type": "string",
"default": "USD"
}
},
"required": [
"metric",
"params"
]
}🟢list_metrics
List every supported metric with descriptions and required/optional params.
Input Schema
{
"type": "object",
"properties": {}
}⚪currency_convert(amount, from_currency, to_currency, date, live)
Convert an amount between major currencies (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR) with Decimal precision. Static offline table on the free tier; live/historical ECB rates (date/live=true) require a paid plan.
Input Schema
{
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"from_currency": {
"type": "string"
},
"to_currency": {
"type": "string"
},
"date": {
"type": "string"
},
"live": {
"type": "boolean"
}
},
"required": [
"amount",
"from_currency",
"to_currency"
]
}🟡business_days(operation, start_date, days, end_date, region, ...)
Business-day arithmetic honoring weekends + regional holidays. operation: add_business_days (needs days, negative ok) | count_business_days (needs end_date, inclusive) | next_business_day | previous_business_day. region: US | UK | EU | NONE. custom_holidays: list of YYYY-MM-DD.
Input Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"start_date": {
"type": "string"
},
"days": {
"type": "integer"
},
"end_date": {
"type": "string"
},
"region": {
"type": "string",
"default": "US"
},
"custom_holidays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"operation",
"start_date"
]
}⚪compound_growth(operation, rate, years, present_value, future_value, ...)
Compound-interest/growth math. operation: future_value (rate, years, present_value) | present_value (rate, years, future_value) | cagr (begin_value, end_value, years). rate is annual decimal (0.08=8%). compounding: daily|weekly|monthly|quarterly|semiannually|annually|continuous.
Input Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"rate": {
"type": "number"
},
"years": {
"type": "number"
},
"present_value": {
"type": "number"
},
"future_value": {
"type": "number"
},
"begin_value": {
"type": "number"
},
"end_value": {
"type": "number"
},
"compounding": {
"type": "string",
"default": "annually"
},
"currency": {
"type": "string",
"default": "USD"
}
},
"required": [
"operation"
]
}⚪net_present_value(rate, cashflows, currency)
Net Present Value (discounted cash flow). NPV = sum(CF_t/(1+rate)^t). cashflows[0] = period 0 (usually the negative outlay).
Input Schema
{
"type": "object",
"properties": {
"rate": {
"type": "number"
},
"cashflows": {
"type": "array",
"items": {
"type": "number"
}
},
"currency": {
"type": "string",
"default": "USD"
}
},
"required": [
"rate",
"cashflows"
]
}🟡internal_rate_of_return(cashflows, guess)
Internal Rate of Return: per-period rate where NPV=0 (Newton + bisection). Requires a sign change in cashflows.
Input Schema
{
"type": "object",
"properties": {
"cashflows": {
"type": "array",
"items": {
"type": "number"
}
},
"guess": {
"type": "number",
"default": 0.1
}
},
"required": [
"cashflows"
]
}⚪loan_amortization(principal, annual_rate, term_months, extra_payment, currency, ...)
Level-payment loan: monthly payment, total interest, payoff, and (optional) full schedule. payment = P*r/(1-(1+r)^-n), r=annual_rate/12.
Input Schema
{
"type": "object",
"properties": {
"principal": {
"type": "number"
},
"annual_rate": {
"type": "number"
},
"term_months": {
"type": "integer"
},
"extra_payment": {
"type": "number",
"default": 0
},
"currency": {
"type": "string",
"default": "USD"
},
"include_schedule": {
"type": "boolean",
"default": false
}
},
"required": [
"principal",
"annual_rate",
"term_months"
]
}⚪depreciation(method, cost, salvage_value, useful_life_years, currency)
Asset depreciation schedule. method: straight_line | declining_balance | sum_of_years_digits. Book value converges to salvage_value.
Input Schema
{
"type": "object",
"properties": {
"method": {
"type": "string"
},
"cost": {
"type": "number"
},
"salvage_value": {
"type": "number"
},
"useful_life_years": {
"type": "integer"
},
"currency": {
"type": "string",
"default": "USD"
}
},
"required": [
"method",
"cost",
"salvage_value",
"useful_life_years"
]
}🟢batch_calculate(calls)
PAID FEATURE. Run many calculations in one request. calls: list of {tool, arguments} (max 100). One failure never aborts the batch.
Input Schema
{
"type": "object",
"properties": {
"calls": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"calls"
]
}🟢health_check
Server health/status metadata.
Input Schema
{
"type": "object",
"properties": {}
}Community
Evidence