Ranks 197 countries for remote workers: tax, cost of living, climate, safety, visas, internet
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.
Side-by-side comparison of two countries for someone deciding where to move: tax for their income, cost of living, climate, safety, healthcare, internet, time zone, language, digital nomad visa. With home_country it also gives each one's match score from the MyNomadWorld engine.
Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required.
Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results.
Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country.
Side-by-side comparison of two countries for someone deciding where to move: tax for their income, cost of living, climate, safety, healthcare, internet, time zone, language, digital nomad visa. With home_country it also gives each one's match score from the MyNomadWorld engine.
| Argument | Type | Description |
|---|---|---|
| country_a* | string | |
| country_b* | string | |
| home_country | string | Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required. |
| current_country | string | Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results. |
| monthly_income_eur | number | Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country. |
{
"type": "object",
"required": [
"country_a",
"country_b"
],
"properties": {
"country_a": {
"type": "string"
},
"country_b": {
"type": "string"
},
"home_country": {
"type": "string",
"description": "Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required."
},
"current_country": {
"type": "string",
"description": "Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results."
},
"monthly_income_eur": {
"type": "number",
"description": "Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country."
}
}
}Key facts for living in one country as a remote worker or expat: income tax the user would pay (if income given), special newcomer tax regime, cost of living, climate by month, safety, healthcare, internet speed, languages and English level, time zone, digital nomad visa and residency minimum. Links to the full MyNomadWorld country page.
| Argument | Type | Description |
|---|---|---|
| country* | string | Country name or ISO code. |
| home_country | string | Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required. |
| current_country | string | Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results. |
| monthly_income_eur | number | Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country. |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"description": "Country name or ISO code."
},
"home_country": {
"type": "string",
"description": "Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required."
},
"current_country": {
"type": "string",
"description": "Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results."
},
"monthly_income_eur": {
"type": "number",
"description": "Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country."
}
}
}Lists countries that offer a digital nomad or remote-work visa in the MyNomadWorld dataset, with the monthly income requirement, length and family option. Optionally only those the user qualifies for on income.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| region | string | Optional continent filter: Europe, Asia, Americas, Africa, Oceania. |
| monthly_income_eur | number | If given, only visas whose income requirement is at or below this. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"region": {
"type": "string",
"description": "Optional continent filter: Europe, Asia, Americas, Africa, Oceania."
},
"monthly_income_eur": {
"type": "number",
"description": "If given, only visas whose income requirement is at or below this."
}
}
}Ranks the countries that best fit a person who wants to move abroad ("where should I live?", "where should I move next?", "best country for me as a remote worker"). Same algorithm and data as the MyNomadWorld quiz: tax the user would actually pay, cost of living versus where they live, safety, climate, sea, flight time to family, language, healthcare, ease of residency. Extra filters: digital nomad visa, minimum internet speed, time zone overlap. Returns the top matches with reasons, watch-outs and links.
| Argument | Type | Description |
|---|---|---|
| sea | string | coast = only countries with a coastline; near = sea is a plus; any = does not matter. |
| limit | integer | How many countries to return (default 5). |
| climate | array | Wanted climates (any of them). warm = average 17 C or more, mild = 9 to 24 C, cold = 15 C or less. Empty = climate does not matter. |
| age_band | string | |
| household | string | Who is moving: alone, with a partner, or with children. |
| priorities | array | Ordered list, most important first. Values: tax (low taxes), cost (low cost of living), safety, near (close to home and family), lang (they speak my language), life (healthcare and long life expectancy). |
| home_country |
| string |
| Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required. |
| current_country | string | Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results. |
| min_internet_mbps | number | Minimum fixed broadband speed in Mbps (approximate national median). |
| monthly_income_eur | number | Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country. |
| max_hours_difference | number | Maximum hours of difference from work_timezone_utc_offset (default 3 when an offset is given). |
| residency_budget_eur | number | Money available for a residency deposit or investment. Hides countries whose minimum is higher. |
| needs_digital_nomad_visa | boolean | Only countries with a digital nomad or remote-work visa in our data (and, if income is given, whose income requirement the user meets). |
| work_timezone_utc_offset | number | UTC offset of the team or clients the user works with, for example -5 for New York in winter or 1 for Berlin. |
{
"type": "object",
"required": [
"home_country"
],
"properties": {
"sea": {
"enum": [
"coast",
"near",
"any"
],
"type": "string",
"description": "coast = only countries with a coastline; near = sea is a plus; any = does not matter."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many countries to return (default 5)."
},
"climate": {
"type": "array",
"items": {
"enum": [
"warm",
"mild",
"cold"
],
"type": "string"
},
"description": "Wanted climates (any of them). warm = average 17 C or more, mild = 9 to 24 C, cold = 15 C or less. Empty = climate does not matter."
},
"age_band": {
"enum": [
"u30",
"30-45",
"45-60",
"60+"
],
"type": "string"
},
"household": {
"enum": [
"solo",
"couple",
"kids"
],
"type": "string",
"description": "Who is moving: alone, with a partner, or with children."
},
"priorities": {
"type": "array",
"items": {
"enum": [
"tax",
"cost",
"safety",
"near",
"lang",
"life"
],
"type": "string"
},
"description": "Ordered list, most important first. Values: tax (low taxes), cost (low cost of living), safety, near (close to home and family), lang (they speak my language), life (healthcare and long life expectancy)."
},
"home_country": {
"type": "string",
"description": "Country the user is from (English name or ISO code). Distance to family and language are measured from here. Required."
},
"current_country": {
"type": "string",
"description": "Country the user lives in now, if different. Cost and current tax are compared with this one, and it is left out of the results."
},
"min_internet_mbps": {
"type": "number",
"description": "Minimum fixed broadband speed in Mbps (approximate national median)."
},
"monthly_income_eur": {
"type": "number",
"description": "Monthly income in euros before tax. Used to estimate the income tax the user would pay in each country."
},
"max_hours_difference": {
"type": "number",
"description": "Maximum hours of difference from work_timezone_utc_offset (default 3 when an offset is given)."
},
"residency_budget_eur": {
"type": "number",
"description": "Money available for a residency deposit or investment. Hides countries whose minimum is higher."
},
"needs_digital_nomad_visa": {
"type": "boolean",
"description": "Only countries with a digital nomad or remote-work visa in our data (and, if income is given, whose income requirement the user meets)."
},
"work_timezone_utc_offset": {
"type": "number",
"description": "UTC offset of the team or clients the user works with, for example -5 for New York in winter or 1 for Berlin."
}
}
}