EOR Scope
REMOTE · MCP.EORSCOPE.COM · 2 COMPONENTS
Statutory employer cost by country, before any Employer of Record (EOR) fee.
Available components
Last scanned (49 minutes ago)
Scores higher than 84% of remote servers
Reachable. Last reached 25 Oct 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4958 tokens (~309/item across 16 items; 14 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
- Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 0
- Tool “compare_offers” rewrote its description, which is the text the model reads security
- Tool “compare_countries” rewrote its description, which is the text the model reads security
- Tool “compare_structures” rewrote its description, which is the text the model reads security
- Tool “show_ledger” rewrote its description, which is the text the model reads security
- Tool “show_compare” rewrote its description, which is the text the model reads security
- Tool “scheduled_changes” rewrote its description, which is the text the model reads security
- Tool “reconcile_quote” rewrote its description, which is the text the model reads security
- Tool “max_salary_for_budget” rewrote its description, which is the text the model reads security
- Tool “list_countries” rewrote its description, which is the text the model reads security
- Tool “fx_stress” rewrote its description, which is the text the model reads security
- Tool “employment_terms” rewrote its description, which is the text the model reads security
- Tool “employer_cost” rewrote its description, which is the text the model reads security
- Tool “cost_next_year” rewrote its description, which is the text the model reads security
- Tool “contractor_rate_equivalent” rewrote its description, which is the text the model reads security
- 22 Oct 26 +1
- Tool “list_countries” rewrote its description, which is the text the model reads security
- Tool “compare_countries” rewrote its description, which is the text the model reads security
- Tool “compare_offers” rewrote its description, which is the text the model reads security
- Tool “compare_structures” rewrote its description, which is the text the model reads security
- Tool “contractor_rate_equivalent” rewrote its description, which is the text the model reads security
- Tool “cost_next_year” rewrote its description, which is the text the model reads security
- Tool “employer_cost” rewrote its description, which is the text the model reads security
- Tool “employment_terms” rewrote its description, which is the text the model reads security
- Tool “fx_stress” rewrote its description, which is the text the model reads security
- Tool “max_salary_for_budget” rewrote its description, which is the text the model reads security
- Tool “reconcile_quote” rewrote its description, which is the text the model reads security
- Tool “scheduled_changes” rewrote its description, which is the text the model reads security
- Tool “show_compare” rewrote its description, which is the text the model reads security
- Tool “show_ledger” rewrote its description, which is the text the model reads security
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +1
- Tool “show_ledger” rewrote its description, which is the text the model reads security
- Tool “compare_countries” rewrote its description, which is the text the model reads security
- Tool “compare_offers” rewrote its description, which is the text the model reads security
- Tool “compare_structures” rewrote its description, which is the text the model reads security
- Tool “contractor_rate_equivalent” rewrote its description, which is the text the model reads security
- Tool “cost_next_year” rewrote its description, which is the text the model reads security
- Tool “employer_cost” rewrote its description, which is the text the model reads security
- Tool “employment_terms” rewrote its description, which is the text the model reads security
- Tool “fx_stress” rewrote its description, which is the text the model reads security
- Tool “list_countries” rewrote its description, which is the text the model reads security
- Tool “max_salary_for_budget” rewrote its description, which is the text the model reads security
- Tool “reconcile_quote” rewrote its description, which is the text the model reads security
- Tool “scheduled_changes” rewrote its description, which is the text the model reads security
- Tool “show_compare” rewrote its description, which is the text the model reads security
- 13 Oct 26 0
- Tool “employment_terms” rewrote its description, which is the text the model reads security
- Tool “compare_countries” rewrote its description, which is the text the model reads security
- Tool “compare_offers” rewrote its description, which is the text the model reads security
- Tool “compare_structures” rewrote its description, which is the text the model reads security
- Tool “fx_stress” rewrote its description, which is the text the model reads security
- Tool “contractor_rate_equivalent” rewrote its description, which is the text the model reads security
- Tool “cost_next_year” rewrote its description, which is the text the model reads security
- Tool “employer_cost” rewrote its description, which is the text the model reads security
- Tool “show_ledger” rewrote its description, which is the text the model reads security
- Tool “show_compare” rewrote its description, which is the text the model reads security
- Tool “scheduled_changes” rewrote its description, which is the text the model reads security
- Tool “reconcile_quote” rewrote its description, which is the text the model reads security
- Tool “max_salary_for_budget” rewrote its description, which is the text the model reads security
- Tool “list_countries” rewrote its description, which is the text the model reads security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Oct 2026 · Probed https://mcp.eorscope.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.eorscope.com | CN=YR2,O=Let's Encrypt,C=US | 19 Sept 2026 | 18 Dec 2026 | RSA 2048 | SHA256-RSA | 5eb6fd8de39daff06e9f3bafe913cbba643 |
| SANs: *.eorscope.com, eorscope.com | ||||||
| CN=YR2,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | 4ebd24947e24d394802d84a52fd5b319 |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.eorscope.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| eorscope.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.eorscope.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.eorscope.com/mcp | HTTPS enforced | 308 | https://mcp.eorscope.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compare_countries Employer cost of one salary in several countries ~269
Use this when the user wants the statutory employer cost of the same gross salary in 2 to 10 countries (e.g. "employer cost of 70k in Poland, Portugal and Spain", "combien coûte un salaire de 60 000 en Irlande et aux Pays-Bas"). Before any Employer of Record fee; rows come back in the order requested, not ranked. Do not use when each country has its own salary (use compare_offers). Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | yes | – |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| salary_usd | number | yes | Gross salary in USD, a year unless salary_period is "month", applied to every country |
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | yes | – |
| meta | object | yes | – |
| reading | – | yes | – |
| salary_annual_usd | number | – | – |
| salary_monthly_usd | – | – | – |
| summary | string | yes | – |
| widget | object | – | – |
No examples provided.
compare_offers Employer cost of job offers in several countries ~238
Use this when the user has job offers or candidates in 2 to 6 countries, each with its own gross salary (in USD or the local currency), and wants the total employer cost of each (e.g. "candidate A in Poland at 240,000 PLN, candidate B in Portugal at 45k: what does each cost the company?"). A monthly offer is passed with salary_period "month", which applies each country's statutory 13th or 14th month (e.g. "un candidat à 3 000 par mois à Madrid et un autre à 60 000 par an à Dublin"). Returns salary plus statutory employer charges, before any Employer of Record fee, the difference and ratio of each total to the smallest one, and the contribution ceilings each salary reaches. Rows come back in the order given. Do not use when the salary is the same in every country (use compare_countries). Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| offers | array | yes | One offer per country, 2 to 6 countries, each with its own salary |
| Name | Type | Req | Description |
|---|---|---|---|
| meta | object | yes | – |
| offers | array | yes | – |
| reading | – | yes | – |
| smallest_total | object | yes | – |
| summary | string | yes | – |
| widget | object | – | – |
No examples provided.
compare_structures EOR, own entity or contractor cost ~503
Use this when the user is deciding between hiring through an Employer of Record, setting up their own entity, or engaging contractors in a country and wants the cost of each over 1 to 5 years (e.g. "from how many employees should we open an entity in Poland instead of using an EOR?"). Uses the fees and entity costs the user enters plus the statutory employer charges, and gives the headcount at which entity costs and EOR fees cross. Costs only: it does not say whether a contractor arrangement is lawful. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| contractor_fee_usd_month | number | – | A contractor platform fee, if the user has one, in USD per employee per month, as the user gives it |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| entity_annual_usd | number | – | Yearly entity running cost in USD (payroll, accounting, filings), from the user |
| entity_setup_usd | number | – | One-off entity set-up cost in USD, from the user |
| eor_fee_usd_month | number | yes | The EOR fee the user has been quoted, in USD per employee per month, as the user gives it |
| headcount | integer | – | Number of employees |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary | number | – | Gross salary, a year unless salary_period is "month". Omit to use the country's example salary. |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| years | integer | – | Horizon in years |
| Name | Type | Req | Description |
|---|---|---|---|
| break_even | object | yes | – |
| caveats | array | yes | – |
| country | object | yes | – |
| cumulative_usd | array | yes | – |
| employer_cost | object | yes | – |
| meta | object | yes | – |
| over_horizon_usd | object | yes | – |
| per_month_usd | object | yes | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| summary | string | yes | – |
| your_inputs | object | yes | – |
No examples provided.
contractor_rate_equivalent Contractor rate equivalent to an employee ~495
Use this when the user asks what day or hour rate a contractor would need to cost the same as an employee in a country, or wants to set a contractor rate against the full cost of employment (e.g. "what daily rate equals an 80k employee in Germany?"). The employee's annual cost (gross salary plus statutory employer charges, plus an Employer of Record fee if the user gives one) is divided by working days, by default 260 weekdays minus the country's statutory paid leave and public holidays, both adjustable. Costs only: it does not say whether a contractor arrangement is lawful or how to classify a worker. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| eor_fee_usd_month | number | – | An EOR fee to add to the employee cost, in USD per employee per month, as the user gives it |
| hours_per_day | number | – | Hours per working day |
| paid_leave_days | number | – | Paid leave days a year. Omit to use the country's statutory minimum. |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| public_holidays | number | – | Public holidays falling on weekdays. Omit to use the number recorded for the country. |
| salary | number | – | Gross salary, a year unless salary_period is "month". Omit to use the country's example salary. |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| working_days | number | – | Working days a year, replacing the default calculation |
| Name | Type | Req | Description |
|---|---|---|---|
| annual_cost | object | yes | – |
| caveats | array | yes | – |
| country | object | yes | – |
| employer_cost | object | yes | – |
| equivalent_rate | object | yes | – |
| hours_per_day | – | yes | – |
| meta | object | yes | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| summary | string | yes | – |
| working_days | object | yes | – |
No examples provided.
cost_next_year Employer cost at a future date ~430
Use this when the user budgets an employee for next year or a future date and asks how the statutory employer cost will move (e.g. "what will this hire in Brazil cost the employer in January 2027?"). Returns the cost today and at that date (by default 1 January of next year), at the same gross salary and exchange rate, applying only the enacted dated changes recorded for the country; changes announced in a budget come in a separate, flagged variant, and dates deduced from a source are flagged. A country whose changes are not tracked yet gets today's cost and "not yet tracked", never a projection. Amounts given in the local currency come back in it, with the USD in brackets. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| on_date | string | – | Date of the projection, YYYY-MM-DD. Omit for 1 January of the year after the data snapshot. |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary | number | – | Gross salary, a year unless salary_period is "month". Omit to use the country's example salary. |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| Name | Type | Req | Description |
|---|---|---|---|
| country | object | yes | – |
| coverage | string | – | – |
| current | object | yes | – |
| flags | array | – | – |
| meta | object | yes | – |
| on_date | – | yes | – |
| projected | – | yes | – |
| reading | – | yes | – |
| researched_on | – | – | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| summary | string | yes | – |
| tracking | string | yes | – |
| with_budget_announced | object | – | – |
No examples provided.
employer_cost Employer cost of an employee in a country ~525
Use this when the user asks what an employee costs the employer in a country beyond the gross salary: employer social security contributions, payroll taxes, pension, health or accident insurance, mandatory levies, or the total cost of employment (e.g. "how much does it cost to employ a developer in Germany at 80k", "employer charges in Spain", "coût employeur d'un salarié en Pologne"). Returns each statutory employer contribution with its rate, base, ceiling, source (official wherever one exists) and check date, then the monthly and annual total and its percent of gross, before any Employer of Record fee. A total the country declares as a floor or a ceiling is written "at least" or "at most". A monthly salary is passed as the user gives it, with salary_period "month": the country's statutory 13th or 14th month is then applied (e.g. "a hire at 4,000 a month in Madrid", "un salarié payé 2 500 par mois à Lisbonne"). Do not use for an employee's net pay or income tax, for legal advice, or for the fees of a provider. Amounts given in the local currency come back in it, with the USD in brackets. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| include_notes | boolean | – | Include the long legal note behind each line |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary | number | – | Gross salary, a year unless salary_period is "month". Omit to use the country's example salary. |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| country | object | yes | – |
| employer_cost | object | yes | – |
| included_in_gross_salary | object | – | – |
| lines | array | yes | – |
| meta | object | yes | – |
| not_in_total | array | yes | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| summary | string | yes | – |
| widget | object | – | – |
No examples provided.
employment_terms Statutory employment terms ~141
Use this when the user, hiring in a country, asks about statutory minimums: paid leave days, public holidays, maximum probation, notice period, 13th-month payment or other mandatory payments (e.g. "how many days of leave in Brazil", "is there a 13th month in Mexico"). Each term comes with its source and check date. Do not use for legal advice on a specific dismissal, contract dispute or visa. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| Name | Type | Req | Description |
|---|---|---|---|
| country | object | yes | – |
| extra_month_payments | array | – | – |
| meta | object | yes | – |
| reading | – | yes | – |
| salary_payments | object | yes | – |
| statutory_extras | array | yes | – |
| summary | string | yes | – |
| terms | object | yes | – |
No examples provided.
fx_stress Exchange-rate stress test ~390
Use this when the user pays, or plans to pay, an employee in local currency and asks about exchange-rate risk or a USD budget (e.g. "what if the real moves 10%", "risque de change sur un salaire en pesos"). Returns the USD cost (gross salary plus statutory employer charges, before any Employer of Record fee) at the official exchange rate of the data snapshot, with its date and source, and if the local currency moves by 5, 10 or 20 percent either way; with a USD budget, the headroom in each case and the move at which the budget is reached. Do not use for currency conversion alone. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| budget_usd | number | – | Annual budget in USD for salary plus employer charges, if the user has one |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary_local | number | yes | Gross salary in the local currency of the country, a year unless salary_period is "month" |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| Name | Type | Req | Description |
|---|---|---|---|
| budget | object | – | – |
| country | object | yes | – |
| employer_cost | object | yes | – |
| exchange_rate | object | yes | – |
| meta | object | yes | – |
| reading | – | yes | – |
| salary_annual_local | – | yes | – |
| salary_basis | object | – | – |
| scenarios | array | yes | – |
| summary | string | yes | – |
| total_annual_local | – | yes | – |
| total_at_official_rate | object | yes | – |
No examples provided.
list_countries Countries covered ~112
Use this when the user asks which countries EOR Scope covers, or wants the countries of a region (Europe, Asia, Latin America...) with ISO code, currency, an example salary and the statutory employer cost at that salary. Do not use for the detailed cost of one country (use employer_cost). Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| region | string | – | Filter by region, e.g. "Europe", "Asia", "Latin America" |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| countries | array | yes | – |
| meta | object | yes | – |
| reading | – | yes | – |
| summary | string | yes | – |
No examples provided.
max_salary_for_budget Gross salary that fits a hiring budget ~352
Use this when the user has an all-in budget for a hire in a country and asks what gross salary it allows (e.g. "I have 100k a year for a hire in Germany, what salary can I offer?", "quel salaire brut pour un budget de 8 000 par mois en Espagne"). Returns the largest gross salary whose statutory employer cost (salary plus employer charges, plus an Employer of Record fee if the user gives one) stays within the budget, solved on the same ledger as employer_cost, so ceilings, floors, bands and fixed amounts are taken into account, and the monthly salary it stands for, paid the country's statutory number of times (13th, 14th month). Amounts given in the local currency come back in it, with the USD in brackets. Do not use for net pay. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| budget | number | yes | Total employer budget for one employee |
| budget_currency | string | – | Currency of `budget`: USD, or the local currency of the country |
| budget_period | string | – | Whether `budget` is per year or per month |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| eor_fee_usd_month | number | – | An EOR fee to take out of the budget first, in USD per employee per month, as the user gives it |
| Name | Type | Req | Description |
|---|---|---|---|
| budget | object | yes | – |
| country | object | yes | – |
| employer_cost | object | yes | – |
| max_monthly_salary | object | yes | – |
| max_salary | object | yes | – |
| meta | object | yes | – |
| reading | – | yes | – |
| summary | string | yes | – |
| total | object | yes | – |
No examples provided.
reconcile_quote Check an EOR or payroll quote ~558
Use this when the user shares a quote, offer, invoice or cost breakdown from an Employer of Record, PEO or payroll provider and asks whether it is fair, correct, overpriced or what it includes (e.g. "here is my EOR quote for Germany: salary 5,900, employer contributions 1,350, fee 560 a month, is it honest?", "voici le devis de mon EOR, est-il correct ?"). Checks the quote lines against the statutory ledger of the country at the same salary: expected and quoted amount per statutory line, statutory lines missing from a detailed quote, charges with no statutory counterpart, and the gap split into fee lines, charges above the statutory ledger and the salary-line difference (often an exchange-rate margin). When the quote gives employer charges as one total, that total is compared with the statutory total and the expected line-by-line breakdown is returned. A monthly quote in a country paying more than 12 monthly salaries a year (e.g. 14 in Spain) is read against one monthly payment, the extra payments being owed outside its lines. Amounts given in the local currency come back in it, with the USD in brackets. Pass the amounts as written on the quote; the provider's name is never needed. Do not use without figures from the user. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| amounts_currency | string | – | Currency of the quote line amounts |
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| lines | array | yes | – |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| period | string | – | Whether the quote line amounts are per month or per year (one employee) |
| salary | number | yes | Gross salary the quote is for, a year unless salary_period is "month" |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate_lines | array | – | – |
| country | object | yes | – |
| expected_breakdown | array | – | – |
| gap_breakdown | object | yes | – |
| lines | array | yes | – |
| meta | object | yes | – |
| missing_from_quote | array | yes | – |
| missing_note | – | – | – |
| not_in_statutory_ledger | array | yes | – |
| per_month_local | object | – | – |
| per_month_usd | object | yes | – |
| quote_detail | string | yes | – |
| reading | – | yes | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| salary_line | object | – | – |
| summary | string | yes | – |
No examples provided.
scheduled_changes Scheduled employer contribution changes ~189
Use this when the user asks what is changing in a country's statutory employer contributions: new rates, ceilings, floors or thresholds, their effective dates, or measures announced in a budget (e.g. "employer contribution changes in Ireland in 2027", "hausse des cotisations patronales en Allemagne l'an prochain"). Each change comes with its status (enacted, or announced in a budget and not yet enacted), whether the date is stated in the source or deduced from it, and the source with a word-for-word quote and its reading date. A country whose changes are not tracked yet is answered "not yet tracked", which does not mean that nothing is scheduled. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| Name | Type | Req | Description |
|---|---|---|---|
| changes | array | yes | – |
| country | object | yes | – |
| coverage | string | – | – |
| meta | object | yes | – |
| pending | array | yes | – |
| reading | – | yes | – |
| researched_on | – | – | – |
| summary | string | yes | – |
| tracking | string | yes | – |
No examples provided.
show_compare Show the job offer comparison ~168
Use this when the user wants the employer cost of job offers or salaries in 2 to 6 countries shown or displayed as a table they can read at a glance: for each country, the gross salary, statutory employer charges, total employer cost, difference and ratio to the smallest total, and contribution ceilings reached. It computes the figures itself: call it directly, with no data tool first, or after compare_offers or compare_countries with the arguments they return in `widget`. Inline up to 3 countries, full screen above. Takes the same offers as compare_offers. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| offers | array | yes | One offer per country, 2 to 6 countries, each with its own salary |
| Name | Type | Req | Description |
|---|---|---|---|
| display | string | yes | – |
| meta | object | yes | – |
| offers | array | yes | – |
| reading | – | yes | – |
| smallest_total | object | yes | – |
| summary | string | yes | – |
No examples provided.
show_ledger Show the employer cost ledger ~411
Use this when the user wants to see, display, keep, copy or export the line-by-line employer cost of one employee in a country as a table or card (e.g. "show me the breakdown", "display it as a table", "affiche le détail des cotisations patronales"). It computes the figures itself: call it directly, with no data tool first, or after employer_cost with the arguments employer_cost returns in `widget`. Displays the salary basis (a monthly salary times the statutory number of payments), one row per statutory line with its rate, base, floor or ceiling, source and check date, a monthly or annual view, a salary field to recalculate, and a CSV copy. Takes the same country, salary and assumptions as employer_cost. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | object | – | Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer. |
| country | string | yes | ISO 3166-1 alpha-2 code ("DE") or country name ("Germany") |
| payments_per_year | number | – | With salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country. |
| salary | number | – | Gross salary, a year unless salary_period is "month". Omit to use the country's example salary. |
| salary_currency | string | – | Currency of `salary`: USD, or the local currency of the country |
| salary_period | string | – | Whether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see… |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| country | object | yes | – |
| employer_cost | object | yes | – |
| included_in_gross_salary | object | – | – |
| lines | array | yes | – |
| meta | object | yes | – |
| not_in_total | array | yes | – |
| salary | object | yes | – |
| salary_basis | object | – | – |
| salary_input | object | yes | – |
| scenario_url | – | yes | – |
| summary | string | yes | – |
No examples provided.
How do I install the EOR Scope MCP server?
EOR Scope is a hosted endpoint at https://mcp.eorscope.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.eorscope.com
claude mcp add --transport http eorscope-eorscope-mcp 'https://mcp.eorscope.com/mcp'
What is the EOR Scope MCP server?
EOR Scope is an MCP server listed in the public MCP registry as io.github.eorscope/eorscope-mcp. Statutory employer cost by country, before any Employer of Record (EOR) fee. This page covers its hosted endpoint (https://mcp.eorscope.com/mcp).
Is the EOR Scope MCP server safe to use?
EOR Scope scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the EOR Scope MCP server expose?
EOR Scope exposes 14 tools: list_countries, employer_cost, compare_countries, max_salary_for_budget, employment_terms, and 9 more. Their descriptions and schemas cost roughly 4,781 tokens of context every time the server is loaded.
Does the EOR Scope MCP server require authentication?
No. We connected to EOR Scope without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the EOR Scope MCP server still maintained?
EOR Scope is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.