NL Tax Calculator

Dutch tax calculators: net salary, 30% ruling, Box 3, visa salary norms, job loss, US-Dutch tax.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
99%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'us_tax_for_americans_in_netherlands' description lacks action verbin us_tax_for_americans_in_netherlands
  • LOWTool 'us_tax_for_americans_in_netherlands' name length outside 3-30 rangein us_tax_for_americans_in_netherlands

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,987Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.55% of 128k context)

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": {
    "dutch-tax": {
      "url": "https://nltaxcalculator.nl/dutch-tax/api/mcp"
    }
  }
}

Remote endpoints

https://nltaxcalculator.nl/dutch-tax/api/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢net_salary_netherlands(gross_annual, holiday_allowance_on_top, thirty_percent_ruling, pension_percent)

Gross-to-net salary in the Netherlands for 2026: income tax with the general and labour tax credits, optional 8% holiday allowance on top, the 30% ruling (with its salary norm and cap) and a pension contribution. Returns net per month and per year and the effective tax rate. Single employee below state pension age.

Input Schema

{
  "type": "object",
  "properties": {
    "gross_annual": {
      "type": "number",
      "description": "Gross annual salary in euros, without holiday allowance (e.g. 60000)"
    },
    "holiday_allowance_on_top": {
      "type": "boolean",
      "description": "Add the 8% holiday allowance (vakantiegeld) on top of the gross salary. Default false."
    },
    "thirty_percent_ruling": {
      "type": "boolean",
      "description": "The employee has the 30% ruling. Default false."
    },
    "pension_percent": {
      "type": "number",
      "description": "Employee pension contribution as % of salary, 0-30. Default 0."
    }
  },
  "required": [
    "gross_annual"
  ],
  "additionalProperties": false
}
🟢box3_wealth_tax(savings, investments, debts, fiscal_partner)

Box 3 tax on savings and investments in the Netherlands for 2026 (the notional-return system): the tax-free allowance, the notional return on savings, investments and debts, and the 36% tax. Optionally for fiscal partners (double allowance).

Input Schema

{
  "type": "object",
  "properties": {
    "savings": {
      "type": "number",
      "description": "Bank and savings balances on 1 January, euros"
    },
    "investments": {
      "type": "number",
      "description": "Investments and other assets (shares, crypto, a second home) on 1 January, euros"
    },
    "debts": {
      "type": "number",
      "description": "Debts in Box 3 on 1 January (not the mortgage on your own home), euros"
    },
    "fiscal_partner": {
      "type": "boolean",
      "description": "Filing together with a fiscal partner (amounts are the couple's total). Default false."
    }
  },
  "additionalProperties": false
}
🟢visa_salary_check(salary, per, includes_holiday_pay, permit, under_30, ...)

Checks whether a salary meets the 2026 IND salary requirement for a Dutch highly skilled migrant (kennismigrant) permit or an EU Blue Card. Holiday allowance does not count; a 13th month counts only when paid monthly. Also checks the 30% ruling salary norm.

Input Schema

{
  "type": "object",
  "properties": {
    "salary": {
      "type": "number",
      "description": "Gross salary in euros, as in the offer"
    },
    "per": {
      "type": "string",
      "enum": [
        "year",
        "month"
      ],
      "description": "Whether salary is per year or per month. Default year."
    },
    "includes_holiday_pay": {
      "type": "boolean",
      "description": "The salary amount includes the 8% holiday allowance. Default false."
    },
    "permit": {
      "type": "string",
      "enum": [
        "hsm",
        "bluecard"
      ],
      "description": "hsm = highly skilled migrant, bluecard = EU Blue Card. Default hsm."
    },
    "under_30": {
      "type": "boolean",
      "description": "Applicant is under 30 on the day the application is filed. Default false."
    },
    "recent_graduate": {
      "type": "boolean",
      "description": "Graduated within the last 3 years or on an orientation-year permit (reduced norm). Default false."
    },
    "thirteenth_month": {
      "type": "string",
      "enum": [
        "none",
        "lump",
        "monthly"
      ],
      "description": "A 13th month: none, paid as a lump sum (does not count), or paid in 12 monthly parts (counts). Default none."
    }
  },
  "required": [
    "salary"
  ],
  "additionalProperties": false
}
🟢job_loss_planner(gross_monthly, holiday_pay, employment_start, employment_end, work_history_start_year, ...)

For an employee whose Dutch contract ends: the statutory transition payment (transitievergoeding), unemployment benefit (WW) amount and duration under UWV rules, and for expats the highly skilled migrant / Blue Card search period end date and the last start date for a new job to keep the 30% ruling.

Input Schema

{
  "type": "object",
  "properties": {
    "gross_monthly": {
      "type": "number",
      "description": "Gross base salary per month in euros, without holiday allowance"
    },
    "holiday_pay": {
      "type": "boolean",
      "description": "Receives 8% holiday allowance. Default true."
    },
    "employment_start": {
      "type": "string",
      "description": "Start date at this employer, YYYY-MM-DD"
    },
    "employment_end": {
      "type": "string",
      "description": "Last day of the contract, YYYY-MM-DD"
    },
    "work_history_start_year": {
      "type": "number",
      "description": "First calendar year with 208+ paid hours in NL or the EU. Default: the employment start year."
    },
    "four_of_five_years": {
      "type": "boolean",
      "description": "Worked in at least 4 of the last 5 calendar years. Default true."
    },
    "thirty_percent_ruling": {
      "type": "boolean",
      "description": "Has the 30% ruling. Default false."
    },
    "permit": {
      "type": "string",
      "enum": [
        "none",
        "hsm",
        "bluecard"
      ],
      "description": "none (EU citizen), hsm (highly skilled migrant) or bluecard. Default none."
    },
    "permit_two_years": {
      "type": "boolean",
      "description": "Has held the permit for 2 years or more when the job ends. Default false."
    }
  },
  "required": [
    "gross_monthly",
    "employment_start",
    "employment_end"
  ],
  "additionalProperties": false
}
🟢dutch_tax_changes_2027(gross_annual, thirty_percent_ruling, ruling_started_before_2024)

Compares income tax on a gross salary in 2026 with the Belastingplan 2027 proposal (presented on Prinsjesdag 2026, a proposal until Parliament votes): brackets and tax credits, and the 30% ruling dropping to 27% unless it started before 2024.

Input Schema

{
  "type": "object",
  "properties": {
    "gross_annual": {
      "type": "number",
      "description": "Gross annual salary in euros, without holiday allowance"
    },
    "thirty_percent_ruling": {
      "type": "boolean",
      "description": "Has the 30% ruling. Default false."
    },
    "ruling_started_before_2024": {
      "type": "boolean",
      "description": "The ruling started before 2024 (keeps 30% in 2027). Default false."
    }
  },
  "required": [
    "gross_annual"
  ],
  "additionalProperties": false
}
🟢transfer_tax_netherlands(price, own_home, buyer_age, first_time_starter_exemption)

Overdrachtsbelasting in 2026 when buying a home in the Netherlands: 2% for a home you live in, 0% for first-time buyers aged 18-34 up to a €555,000 price, 8% for other homes.

Input Schema

{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "description": "Purchase price / value in euros"
    },
    "own_home": {
      "type": "boolean",
      "description": "The buyer will live in it as their main home. Default true."
    },
    "buyer_age": {
      "type": "number",
      "description": "Age of the buyer. Default 40."
    },
    "first_time_starter_exemption": {
      "type": "boolean",
      "description": "The buyer has never used the starters exemption. Default true."
    }
  },
  "required": [
    "price"
  ],
  "additionalProperties": false
}
🟢us_tax_for_americans_in_netherlands(gross_annual_eur, filing_status, thirty_percent_ruling, children, other_us_income_usd, ...)

For a US citizen or green-card holder with a Dutch salary: Dutch tax, the creditable part (AOW/Anw premiums are not creditable under the US-Dutch totalization agreement), and the US tax for 2026 under the Foreign Earned Income Exclusion and under the Foreign Tax Credit, incl. the child tax credit and its refundable part.

Input Schema

{
  "type": "object",
  "properties": {
    "gross_annual_eur": {
      "type": "number",
      "description": "Dutch gross annual salary in euros, without holiday allowance"
    },
    "filing_status": {
      "type": "string",
      "enum": [
        "single",
        "joint"
      ],
      "description": "US filing status. Default single."
    },
    "thirty_percent_ruling": {
      "type": "boolean",
      "description": "Has the Dutch 30% ruling. Default false."
    },
    "children": {
      "type": "number",
      "description": "Qualifying children under 17 with an SSN. Default 0."
    },
    "other_us_income_usd": {
      "type": "number",
      "description": "Other US-taxed income, e.g. US dividends, in dollars. Default 0."
    },
    "usd_per_eur": {
      "type": "number",
      "description": "Exchange rate, dollars per euro. Default 1.13."
    }
  },
  "required": [
    "gross_annual_eur"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools