Tax residence between two countries: treaty tie-breaker, taxes, legal sources, per-income rules.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Determines the person's tax residence between the version's home state and another country, step by step. Without all answers it returns status "needs_answer" and the next question (id, text, options); ask the user and call again with all answers collected so far. When complete it returns status "done": the conclusion with reliability %, how each law treats the person, the treaty tie-breaker, where and which taxes apply, the legal basis (norms with links) and court practice, optional per-income-type rules, the disclaimer and a link to the same result on doubletaxation.app. Texts are in the language of the version.
ISO code of the other country (where the person lives or stays). Must be one of list_countries for this version.
Version id (home state), see list_versions.
Tax year: the current year or one of the two previous years. Default: current year.
Optional: the person's income, one item per category, to get the treaty's special rules (who may tax it, rate limits, relief method, example calculation if amount is given).
Answers so far: { "<question id>": value }. Choice questions take an option value (e.g. "yes", "no", "unknown"); number questions take a whole number (days) or "unknown" if allowed.
Citizenship option value from list_countries.citizenship_options, e.g. "UA", "UA+OTHER" (dual), "NONUS". Default: the first option (citizen of the home state only).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http doubletaxation https://doubletaxation.app/api/mcp
Determines the person's tax residence between the version's home state and another country, step by step. Without all answers it returns status "needs_answer" and the next question (id, text, options); ask the user and call again with all answers collected so far. When complete it returns status "done": the conclusion with reliability %, how each law treats the person, the treaty tie-breaker, where and which taxes apply, the legal basis (norms with links) and court practice, optional per-income-type rules, the disclaimer and a link to the same result on doubletaxation.app. Texts are in the language of the version.
| Argument | Type | Description |
|---|---|---|
| year | integer | Tax year: the current year or one of the two previous years. Default: current year. |
| income | array | Optional: the person's income, one item per category, to get the treaty's special rules (who may tax it, rate limits, relief method, example calculation if amount is given). |
| answers | object | Answers so far: { "<question id>": value }. Choice questions take an option value (e.g. "yes", "no", "unknown"); number questions take a whole number (days) or "unknown" if allowed. |
| country* | string | ISO code of the other country (where the person lives or stays). Must be one of list_countries for this version. |
| version* | string | Version id (home state), see list_versions. |
| citizenship | string | Citizenship option value from list_countries.citizenship_options, e.g. "UA", "UA+OTHER" (dual), "NONUS". Default: the first option (citizen of the home state only). |
{
"type": "object",
"required": [
"version",
"country"
],
"properties": {
"year": {
"type": "integer",
"description": "Tax year: the current year or one of the two previous years. Default: current year."
},
"income": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"source"
],
"properties": {
"days": {
"type": "integer",
"description": "employment: days in the state of work within the treaty period."
},
"asset": {
"enum": [
"immovable",
"property_rich_shares",
"other"
],
"type": "string",
"description": "capital_gains: what is sold."
},
"amount": {
"type": "number",
"description": "Optional annual gross amount (any currency, used for an illustrative calculation)."
},
"source": {
"type": "string",
"description": "ISO code of the state of source: where the work is done, the property is, the payer or company is resident, the performance takes place. Must be the home state or the other country."
},
"student": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string",
"description": "students: came to the state of study for education, and the payments come from abroad?"
},
"category": {
"enum": [
"employment",
"business",
"technical_fees",
"government",
"pension",
"immovable",
"dividends",
"interest",
"royalties",
"capital_gains",
"directors",
"artistes",
"students",
"other"
],
"type": "string"
},
"borne_by_pe": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string",
"description": "employment: is the salary borne by a permanent establishment of the employer in the state of work?"
},
"fixed_place": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string",
"description": "business / technical_fees: fixed place of business (permanent establishment) in the state of source?"
},
"study_state": {
"type": "string",
"description": "students: state where the person studies (ISO code)."
},
"pension_kind": {
"enum": [
"social",
"government",
"private"
],
"type": "string",
"description": "pension: state social pension, pension for government service, or private/occupational pension."
},
"service_days": {
"type": "integer",
"description": "business / technical_fees: days of providing services in the state of source."
},
"service_state": {
"type": "string",
"description": "government: state where the government service is performed (ISO code)."
},
"employer_resident_of_source": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string",
"description": "employment: is the employer resident in the state of work?"
}
},
"additionalProperties": false
},
"description": "Optional: the person's income, one item per category, to get the treaty's special rules (who may tax it, rate limits, relief method, example calculation if amount is given)."
},
"answers": {
"type": "object",
"description": "Answers so far: { \"<question id>\": value }. Choice questions take an option value (e.g. \"yes\", \"no\", \"unknown\"); number questions take a whole number (days) or \"unknown\" if allowed.",
"additionalProperties": {
"type": [
"string",
"integer"
]
}
},
"country": {
"enum": [
"AT",
"BD",
"CA",
"CH",
"CN",
"CZ",
"DE",
"ES",
"FR",
"GB",
"HU",
"IN",
"IT",
"JP",
"NL",
"PK",
"PL",
"RO",
"TR",
"UA",
"US"
],
"type": "string",
"description": "ISO code of the other country (where the person lives or stays). Must be one of list_countries for this version."
},
"version": {
"enum": [
"uk",
"en",
"pl",
"cs",
"ro",
"hu",
"tr",
"zh",
"in",
"ja",
"bn",
"pk"
],
"type": "string",
"description": "Version id (home state), see list_versions."
},
"citizenship": {
"type": "string",
"description": "Citizenship option value from list_countries.citizenship_options, e.g. \"UA\", \"UA+OTHER\" (dual), \"NONUS\". Default: the first option (citizen of the home state only)."
}
},
"additionalProperties": false
}Lists the countries that can be checked against the home state of a version: whether a tax treaty is in force (title, dates, link), whether per-income treaty rules and tax burden data exist, plus the allowed citizenship options and years for check_residency.
| Argument | Type | Description |
|---|---|---|
| version* | string | Version id from list_versions. |
{
"type": "object",
"required": [
"version"
],
"properties": {
"version": {
"enum": [
"uk",
"en",
"pl",
"cs",
"ro",
"hu",
"tr",
"zh",
"in",
"ja",
"bn",
"pk"
],
"type": "string",
"description": "Version id from list_versions."
}
},
"additionalProperties": false
}Lists the 12 versions of DoubleTaxation. Each version is written for taxpayers of one home state (in its language) and compares it with 20 other countries. Call this first if you are not sure which version fits the user.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Income tax and social contributions on an annual salary in one or more countries (OECD Taxing Wages method: single person, no children, full-year employee). Returns net pay, personal rate, tax wedge and marginal rate, sorted from lowest to highest personal rate. For up to 3 countries also the line-by-line breakdown, special tax regimes for individuals (e.g. for newcomers), assumptions and official sources.
| Argument | Type | Description |
|---|---|---|
| version | string | Language of the texts (version id). Default: en. |
| countries | array | ISO codes; default: all available countries. |
| gross_eur | number | Annual gross salary in EUR. Default 60,000 (reference profiles: 30,000 / 60,000 / 120,000). |
| gross_local | number | Annual gross salary in the country's own currency (only with exactly one country). |
{
"type": "object",
"properties": {
"version": {
"enum": [
"uk",
"en",
"pl",
"cs",
"ro",
"hu",
"tr",
"zh",
"in",
"ja",
"bn",
"pk"
],
"type": "string",
"description": "Language of the texts (version id). Default: en."
},
"countries": {
"type": "array",
"items": {
"enum": [
"AT",
"BD",
"CA",
"CH",
"CN",
"CZ",
"DE",
"ES",
"FR",
"GB",
"HU",
"IN",
"IT",
"JP",
"NL",
"PK",
"PL",
"RO",
"TR",
"UA",
"US"
],
"type": "string"
},
"description": "ISO codes; default: all available countries."
},
"gross_eur": {
"type": "number",
"description": "Annual gross salary in EUR. Default 60,000 (reference profiles: 30,000 / 60,000 / 120,000)."
},
"gross_local": {
"type": "number",
"description": "Annual gross salary in the country's own currency (only with exactly one country)."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 5, 2026.