estv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ESTV_MCP_NO_CACHE | No | Disable caching when set to 1 | |
| ESTV_MCP_CACHE_DIR | No | Override the cache directory (default ~/.cache/estv-mcp) | |
| ESTV_MCP_CACHE_TTL | No | Override cache TTL in seconds (default 604800 for one week) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_locationA | Resolve a place name or postal code to an ESTV tax location id. Municipal tax multipliers differ inside a canton and sometimes inside a
postal code, so every calculation is anchored on a |
| list_deductionsA | Show the deduction/budget sheet ESTV derives for a household. Returns every line item with the value ESTV assumes by default. Lines
marked |
| calculate_taxA | Compute federal, cantonal, municipal and church tax for a household. Uses ESTV's detailed model: it derives social-insurance contributions and
standard deductions from the gross figures, so you only need income,
wealth and family situation. Call |
| calculate_tax_from_taxable_amountsA | Apply the tax scales to amounts already known to be taxable. Use this when the user reads figures off a tax assessment or return
( |
| compare_locationsA | Rank municipalities by total tax burden for one and the same household. Answers "where would I pay the least?". Scanning all of Switzerland covers
~2100 municipalities, so only the extremes plus summary statistics are
returned; narrow with |
| calculate_capital_payment_taxB | Tax on a lump-sum payout from pillar 2 or pillar 3a. Capital withdrawals are taxed separately from ordinary income at a reduced
rate, and the rate varies a lot between cantons. Pass a canton code,
'capitals' or 'switzerland' as |
| get_tax_yearsA | Report which tax years each ESTV calculator currently covers. |
| find_cheapest_nearbyB | Rank municipalities within a radius of a point by tax burden. The relocation question people actually ask: given that I have to stay within commuting distance of somewhere, where is the cheapest place to live? Pass the coordinates of the office or station and a radius. |
| plan_capital_withdrawalsA | Find the cheapest way to split a lump-sum withdrawal across tax years. Capital payouts are taxed on a steeply progressive separate scale, so
spreading a pension pot over several calendar years can save a large
amount. Splitting within one year saves nothing: all payouts received in
the same calendar year are added together before the rate is applied, and
this tool models that. Read the |
| deduction_valueA | Measure what a deduction is actually worth to this household. Sweeps a budget line (pillar 3a by default) and reports the tax saved at each level, plus the saving on each additional franc. Because rates are progressive the last franc of a deduction is worth more than the first, and the return flattens once a bracket boundary is crossed. |
| calculate_inheritance_taxA | Inheritance and gift tax, which is cantonal and varies enormously. Spouses and direct descendants are exempt in most cantons while unrelated
beneficiaries and unmarried partners can pay a quarter of the estate, so
the beneficiary relationship matters more than the amount. Omit
|
| calculate_company_taxA | Profit and capital tax for a company (GmbH, AG or similar). Pass a canton code, 'capitals' or 'switzerland' as |
| explain_tax_bracketsA | Show the statutory rate ladder and where an income sits in it. Explains the number rather than just producing it: which bracket the household is in, the marginal rate there, and how far the next threshold is. The cantonal figure is the simple tax (einfache Staatssteuer), which the canton and municipality then multiply by their own rates. The tax amount always comes from ESTV itself. The ladder is rebuilt from
the published scale, which a few cantons express as a formula rather than
a table; there the amount is still exact and |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/noaahh/estv-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server