mcp-fns-calc
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_FNS_CALC_TOKEN | No | API key for live checks and fresh rates (Pro tier). Optional, calculators work without it. | |
| MCP_FNS_CALC_TIMEOUT | No | HTTP timeout in seconds. | 30 |
| MCP_FNS_CALC_API_BASE | No | Base URL of the hosted backend. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| calc_vatA | Compute Russian VAT (НДС): add on top of net or extract from gross (NK RF art. 164, 168). When to use
When NOT to use
Parameters
Returns: {net, vat, gross, rate, mode, formula, article, disclaimer, snapshot_date}. Limitations: read-only, offline, single-rate line; no side effects. Example: amount=100000, rate=20, mode=add → vat=20000, gross=120000. |
| calc_usnA | Calculate simplified tax (USN/УСН): 6% on income or 15% income-minus-expense with minimum tax (NK RF ch. 26.2). When to use
When NOT to use
Parameters: income, obj, expenses, rate (regional override), contributions_paid, has_employees, advances_paid. Returns: {tax, base, rate, min_tax, contributions_deduction, advances, formula, article, disclaimer}. Limitations: read-only, offline; regional rates optional; subtracts advances_paid from result. |
| calc_insurance_ipA | IP fixed insurance contributions + 1% on income above 300k RUB (NK RF art. 430). When to use: annual IP self-contribution estimate; set months<12 for partial year. When NOT to use: employee payroll — use payroll tools; amounts for closed years without snapshot check. Side effects: read-only, deterministic, offline; rates from bundled snapshot. Returns: {fixed, extra_1pct, total, income, year, months, formula, article, disclaimer}. |
| calc_ndflA | Progressive personal income tax (NDFL/НДФЛ) 2025+ with per-bracket breakdown (NK RF art. 224). When to use: estimate annual NDFL on salary or IP income after deductions. When NOT to use: monthly withholding by employer — use payroll; non-resident rates not modeled. Side effects: read-only, deterministic, offline; no auth or network. Returns: {tax_total, taxable_base, brackets[], formula, article, disclaimer, snapshot_date}. |
| calc_patentA | Patent taxation (PSN/ПСН) cost: potential income × 6% × months/12 minus contributions (NK RF ch. 26.5). When to use: compare patent cost vs USN for an activity; potential_income from regional law. When NOT to use: eligibility/OKVED limits — verify with FNS; employee-heavy cases need manual review. Side effects: read-only, deterministic, offline; no auth or network. Returns: {patent_cost, before_deduction, contributions_deduction, months, formula, article, disclaimer}. |
| calc_penaltyA | Estimate late-payment tax penalty (пени) per NK RF art. 75 using the CBR key rate. When to use
When NOT to use
Parameters
Returns (dict)
Limitations
Examples
|
| get_ratesA | Tax rates and limits: offline snapshot (default) or live hosted pull (fresh=true, Pro key). When to use
When NOT to use
Parameters
Returns: rate tables, snapshot_date (offline) or live payload + disclaimer. Limitations: fresh=true requires Pro token; snapshot date fixed at package build time. |
| check_selfemployedA | Check self-employed (NPD/НПД) status by taxpayer INN via FNS open data. Requires Pro API key. When to use: before paying a sole proprietor as individual — mandatory NPD verification. When NOT to use: offline what-if math — use calculators; without token returns missing_token error. Side effects: read-only HTTPS to hosted backend; no local data mutation. Needs MCP_FNS_CALC_TOKEN. Returns: {is_selfemployed, inn, checked_at, source, disclaimer} or error/missing_token. |
| check_ip_statusA | IP registration status, OKVED and EGRIP dates by 12-digit INN. Requires Pro API key. When to use: confirm counterparty is active IP before contract/payment. When NOT to use: full EGRUL extract — use mcp-egrul; offline mode unavailable. Side effects: read-only HTTPS; needs MCP_FNS_CALC_TOKEN. Returns: {status, inn, okved, registration_date, ... disclaimer} or error. |
| check_disqualifiedA | Match against FNS disqualified persons register by INN or FIO. Requires Pro API key. When to use: compliance screen before appointing director/signatory; provide inn or fio. When NOT to use: sole evidence for legal decisions — result is indicative, verify manually. Side effects: read-only HTTPS; needs MCP_FNS_CALC_TOKEN. At least one of inn/fio required. Returns: {matches[], query, disclaimer} or validation/error. |
| check_account_blockA | Bank account operation suspension info from FNS (10–12 digit INN). Requires Pro API key. When to use: treasury/compliance check before large outbound payment. When NOT to use: real-time bank balance — different service; offline unavailable. Side effects: read-only HTTPS; needs MCP_FNS_CALC_TOKEN. Returns: {suspended, inn, details, disclaimer} or error. |
| check_tax_arrearsA | Tax arrears / debt flags from FNS Transparent Business open data. Requires Pro API key. When to use: counterparty due diligence alongside mcp-fns-check; 10–12 digit INN. When NOT to use: official debt certificate — request from FNS; offline unavailable. Side effects: read-only HTTPS; needs MCP_FNS_CALC_TOKEN. Returns: {has_arrears, inn, amounts[], disclaimer} or error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct tax or compliance function, with calculators (calc_*) clearly separated from checks (check_*) and rates (get_rates). There is no overlap in purpose.
All tools follow a consistent verb_noun pattern using underscores: calc_* for calculations, check_* for verifications, and get_rates for rates. No mixing of styles.
With 12 tools covering tax calculations, compliance checks, and rate retrieval, the count is well-scoped for the server's stated purpose—neither too few nor too many.
The tool set covers key Russian tax calculations (IP, NDFL, patent, penalty, USN, VAT) and essential checks (account block, disqualified persons, IP status, self-employed, tax arrears). Obvious gaps like corporate income tax or full EGRUL are implied to be handled by other servers, keeping this surface focused and complete.