Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Beschreibung vom Entwickler (englisches Original)
High-precision finance & business calculations for AI agents — exact decimals, never floats.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://precisioncalc-mcp.pages.dev/mcpÖffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"precisioncalc": {
"command": "npx",
"args": [
"-y",
"precisioncalc-mcp"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http precisioncalc https://precisioncalc-mcp.pages.dev/mcpclaude mcp add precisioncalc -- npx -y precisioncalc-mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"precisioncalc": {
"url": "https://precisioncalc-mcp.pages.dev/mcp"
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"precisioncalc": {
"command": "npx",
"args": [
"-y",
"precisioncalc-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"precisioncalc": {
"type": "http",
"url": "https://precisioncalc-mcp.pages.dev/mcp"
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"precisioncalc": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"precisioncalc-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://precisioncalc-mcp.pages.dev/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto inity13 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (2.1.1) kam vor 3 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A deterministic Model Context Protocol (MCP) server that gives LLM agents reliable, high-precision business, finance, and operational calculations.
LLMs routinely lose precision or hallucinate on multi-step financial formulas, currency conversions, business-day logic, and growth math. PrecisionCalc offloads that work to exact, transparent tools. Every monetary/financial value is computed with Python's decimal module (never floats), and every result is returned in a consistent, agent-parseable JSON envelope that includes the exact value, a human-readable value, the formula applied, the inputs used, the unit, and any assumptions/warnings.
v2 highlights: live + historical FX (ECB), 14 SaaS metrics, NPV/IRR,
loan amortization, depreciation, a
batch_calculatetool, per-country holidays,
API-key auth + rate limiting + usage metering on the HTTP transport, structured
JSON logging, optional OpenTelemetry tracing, and property-based tests.
A public remote MCP server runs on Cloudflare's edge — point any Streamable-HTTP MCP client at it:
https://precisioncalc-mcp.pages.dev/mcp
Run the server locally over stdio with a single command — nothing to deploy:
npx -y precisioncalc-mcp
Claude Desktop / any stdio MCP client (claude_desktop_config.json):
{ "mcpServers": { "precisioncalc": { "command": "npx", "args": ["-y", "precisioncalc-mcp"] } } }
This is the same deterministic engine as the hosted server, running on your machine.
{ "mcpServers": { "precisioncalc": {
"type": "http", "url": "https://precisioncalc-mcp.pages.dev/mcp" } } }
The edge build (worker-src/) is a Cloudflare Pages Function that mirrors the Python engine using decimal.js — verified 17/17 exact output parity. Landing page + docs: https://precisioncalc-mcp.pages.dev.
| Plan | Price | Daily calls | Live/historical FX | batch_calculate |
|---|---|---|---|---|
| Free (no key) | $0 | 15 / day (per IP) | ❌ static only | ❌ |
| Starter | $12/mo | 5,000 / day | ✅ | ✅ |
| Pro | $39/mo | 50,000 / day | ✅ | ✅ |
Checkout is Stripe (subscription). On success you get an API key instantly; send it as X-API-Key: (or Authorization: Bearer ). Manage/cancel at /portal. When a limit is hit, tools return a structured status:"error" envelope with type, usage, and an upgrade block containing checkout URLs — so an agent can surface the paywall to the user and act on it. Self-host (below) for unlimited calls with your own keys.
Billing internals live in worker-src/billing.mjs (Stripe REST + Cloudflare KV for keys and daily counters). Server env: STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, PRICE_STARTER, PRICE_PRO, FREE_DAILY, STARTER_DAILY, PRO_DAILY, and a PRECISIONCALC_KV namespace binding (see wrangler.toml).
Rebuild/redeploy the edge server:
npm install # decimal.js + esbuild
npm run deploy # bundles worker-src -> site/_worker.js and deploys to Pages
11 tools, all returning a uniform structured response:
| Tool | Purpose |
|---|---|
calculate_metric | 14 SaaS/business metrics (LTV, CAC, churn, MRR growth, NRR, GRR, Rule of 40, magic number, break-even, ...) |
currency_convert | Convert 9 major currencies; static (offline) or live/historical ECB rates |
business_days | Add/count business days, next/previous; US/UK/EU + any ISO country + custom holidays |
compound_growth | Future value, present value, CAGR; 7 compounding frequencies incl. continuous |
net_present_value | NPV / discounted cash flow of a cashflow series |
internal_rate_of_return | IRR (Newton + bisection fallback) |
loan_amortization | Level-payment loan: payment, totals, full schedule, extra-payment payoff |
depreciation | straight-line / declining-balance / sum-of-years-digits schedules |
batch_calculate | Run many calculations in one request |
list_metrics | Discovery: every metric with descriptions + required params |
health_check | Server status, version, capabilities |
Success:
{
"status": "success", "value": "1600", // exact, full-precision (string for money/rates) "formatted_value": "$1,600.00", // human-readable "formula": "LTV = (ARPU * gross_margin) / churn_rate", "inputs_used": { "arpu": "100", "gross_margin": "0.8", "churn_rate": "0.05" }, "unit": "USD", "notes": ["LTV = (ARPU x gross_margin) / churn_rate.", "..."] }
Error (never raised across the tool boundary):
{
"status": "error", "error": { "type": "missing_parameter", "message": "Missing required parameter 'churn_rate'.", "hint": "Include 'churn_rate' in params. See list_metrics for the full schema." } }
precisioncalc-mcp/
├── server.py # MCP server: tool definitions + transports ├── security.py # API-key auth + token-bucket rate limit + metering (ASGI) ├── observability.py # Structured JSON logging + optional OpenTelemetry ├── requirements.txt / pyproject.toml ├── Dockerfile / .dockerignore ├── fly.toml / render.yaml # One-click hosting configs ├── .env.example ├── calculations/ │ ├── _util.py # Decimal coercion, validation, formatting │ ├── metrics.py # 14 business/SaaS metrics + catalog │ ├── currency.py # FX: static + Frankfurter (live/historical) providers │ ├── business_days.py # Region-aware holidays (built-in + holidays lib) │ ├── growth.py # FV / PV / CAGR │ └── finance.py # NPV / IRR / loan amortization / depreciation ├── schemas/responses.py # Response envelope helpers ├── examples/agent_example.py # End-to-end MCP client demo ├── site/ # Static landing/docs page (Cloudflare Pages) └── tests/ # 49 unit tests + Hypothesis property tests
mcp, python-dateutiluvicorn + starlette (HTTP transport), holidays (per-country calendars)opentelemetry-sdk (tracing), pytest + hypothesis (tests)The server auto-detects the SDK layout and works with mcp >= 2.0 (MCPServer), mcp 1.x (FastMCP), or the standalone fastmcp package.
cd precisioncalc-mcp
python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt # or: pip install -e ".[all]"
python server.py # or: precisioncalc-mcp (console entrypoint)
python server.py http PRECISIONCALC_API_KEYS=key1,key2 PRECISIONCALC_FX_PROVIDER=frankfurter python server.py http
Demo + tests:
python examples/agent_example.py # live end-to-end over stdio
python tests/test_calculations.py # 28 core tests (no pytest needed) python tests/test_v2.py # 17 v2 tests python tests/test_properties.py # Hypothesis property tests
{ "mcpServers": { "precisioncalc": {
"command": "python", "args": ["/absolute/path/to/precisioncalc-mcp/server.py"] } } }
docker build -t precisioncalc-mcp .
docker run --rm -p 8000:8000 -e PRECISIONCALC_API_KEYS=your-key precisioncalc-mcp docker run --rm -i precisioncalc-mcp python server.py stdio
fly launch --no-deploy
fly secrets set PRECISIONCALC_API_KEYS=key1,key2 fly deploy
Push to GitHub, then New + → Blueprint and point at the repo (render.yaml). Set PRECISIONCALC_API_KEYS as a secret in the dashboard.
| Var | Default | Purpose |
|---|---|---|
PRECISIONCALC_HOST / PRECISIONCALC_PORT | 127.0.0.1 / 8000 | HTTP bind |
PRECISIONCALC_API_KEYS | *(empty)* | Comma-separated keys. Empty = open mode (still metered/limited by IP) |
PRECISIONCALC_RATE_LIMIT_PER_MIN / _BURST | 120 / 40 | Token-bucket limits |
PRECISIONCALC_METRICS_PATH | /metrics | Usage-metrics endpoint |
PRECISIONCALC_FX_PROVIDER | static | static or frankfurter (live/historical ECB) |
PRECISIONCALC_FX_TTL / _TIMEOUT | 3600 / 4 | FX cache TTL / HTTP timeout (s) |
PRECISIONCALC_LOG_LEVEL / _LOG_JSON | INFO / 1 | Logging |
PRECISIONCALC_OTEL | 0 | 1 enables OpenTelemetry tracing if SDK present |
calculate_metric(metric, params, currency="USD")Rates/margins are decimals (0.05 = 5%).
| metric | params | unit |
|---|---|---|
ltv | arpu, churn_rate, gross_margin(=1) | currency |
cac | total_spend, new_customers | currency |
ltv_cac_ratio | ltv, cac | ratio |
payback_period_months | cac, monthly_revenue_per_customer, gross_margin(=1) | months |
contribution_margin | revenue, variable_costs | currency |
gross_margin | revenue, cogs | percent |
churn_rate | customers_lost, customers_at_start | percent |
mrr_growth_rate | beginning_mrr, ending_mrr | percent |
arr | mrr | currency |
break_even_units | fixed_costs, price_per_unit, variable_cost_per_unit | units |
nrr | starting_mrr, expansion_mrr, contraction_mrr, churned_mrr | percent |
grr | starting_mrr, contraction_mrr, churned_mrr | percent |
rule_of_40 | growth_rate, profit_margin | percent |
magic_number | current_quarter_revenue, prior_quarter_revenue, prior_quarter_sm_spend | ratio |
currency_convert(amount, from_currency, to_currency, date=None, live=None)USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR. date (YYYY-MM-DD) or live=true uses live/historical ECB rates (frankfurter.app), with automatic static fallback on any network failure. Returns rate, provider, is_live, and timestamps.
business_days(operation, start_date, days=None, end_date=None, region="US", custom_holidays=None)operation: add_business_days | count_business_days (inclusive) | next_business_day | previous_business_day. region: US | UK | EU | NONE, or any ISO country code when the holidays package is installed (DE, FR, CA, AU, JP, IN, ...).
compound_growth(operation, rate, years, present_value, future_value, begin_value, end_value, compounding="annually", currency="USD")operation: future_value | present_value | cagr. compounding: daily | weekly | monthly | quarterly | semiannually | annually | continuous.
net_present_value(rate, cashflows, currency="USD")NPV = Σ CFₜ/(1+rate)ᵗ. cashflows[0] = period 0 (usually the negative outlay).
internal_rate_of_return(cashflows, guess=0.1)Per-period rate where NPV = 0. Requires a sign change in the cashflows.
loan_amortization(principal, annual_rate, term_months, extra_payment=0, currency="USD", include_schedule=false)Returns monthly payment, months-to-payoff, total interest, total paid, and (optionally) the full month-by-month schedule.
depreciation(method, cost, salvage_value, useful_life_years, currency="USD")method: straight_line | declining_balance | sum_of_years_digits. Returns the full yearly schedule; book value converges to salvage_value.
batch_calculate(calls)calls: list of {"tool": , "arguments": {...}} (max 100). One item failing never aborts the batch.
list_metrics() / health_check()Discovery + status. No parameters.
{ "name": "calculate_metric",
"arguments": { "me
Nur der Anfang wird gezeigt; den Rest findest du im Repo