accueil / serveurs / Dev & Code / io.github.eorscope/eorscope-mcp
io.github.eorscope/eorscope-mcp
serveur MCP (Model Context Protocol) · eorscope-mcp 0.2.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.eorscope/eorscope-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.eorscope/eorscope-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 14 outils
- compare_countries≈ 968 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (4)
Paramètrescountries· array · requissalary_usd· number · requis
Gross salary in USD, a year unless salary_period is "month", applied to every countrysalary_period· string · optionnel · year | month
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_basis in the answer.payments_per_year· number · optionnel
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.
Exemple d'appel{"name": "compare_countries", "arguments": {"countries": [], "salary_usd": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "widget": {}, "reading": "texte", "summary": "texte", "countries": [], "salary_annual_usd": 1, "salary_monthly_usd": "texte"}} - compare_offers≈ 1607 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (1)
Paramètresoffers· array · requis
One offer per country, 2 to 6 countries, each with its own salary
Exemple d'appel{"name": "compare_offers", "arguments": {"offers": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "offers": [], "widget": {}, "reading": "texte", "summary": "texte", "smallest_total": {}}} - compare_structures≈ 1899 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (12)
Paramètresyears· integer · optionnel
Horizon in yearssalary· number · optionnel
Gross salary, a year unless salary_period is "month". Omit to use the country's example salary.country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")headcount· integer · optionnel
Number of employeesassumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.salary_period· string · optionnel · year | month
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_basis in the answer.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countryentity_setup_usd· number · optionnel
One-off entity set-up cost in USD, from the userentity_annual_usd· number · optionnel
Yearly entity running cost in USD (payroll, accounting, filings), from the usereor_fee_usd_month· number · requis
The EOR fee the user has been quoted, in USD per employee per month, as the user gives itpayments_per_year· number · optionnel
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.contractor_fee_usd_month· number · optionnel
A contractor platform fee, if the user has one, in USD per employee per month, as the user gives it
Exemple d'appel{"name": "compare_structures", "arguments": {"country": "texte", "eor_fee_usd_month": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "salary": {}, "caveats": [], "country": {}, "summary": "texte", "break_even": {}, "your_inputs": {}, "salary_basis": {}, "employer_cost": {}, "per_month_usd": {}, "cumulative_usd": [], "over_horizon_usd": {}}} - contractor_rate_equivalent≈ 1759 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (11)
Paramètressalary· number · optionnel
Gross salary, a year unless salary_period is "month". Omit to use the country's example salary.country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.working_days· number · optionnel
Working days a year, replacing the default calculationhours_per_day· number · optionnel
Hours per working daysalary_period· string · optionnel · year | month
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_basis in the answer.paid_leave_days· number · optionnel
Paid leave days a year. Omit to use the country's statutory minimum.public_holidays· number · optionnel
Public holidays falling on weekdays. Omit to use the number recorded for the country.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countryeor_fee_usd_month· number · optionnel
An EOR fee to add to the employee cost, in USD per employee per month, as the user gives itpayments_per_year· number · optionnel
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.
Exemple d'appel{"name": "contractor_rate_equivalent", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "salary": {}, "caveats": [], "country": {}, "summary": "texte", "annual_cost": {}, "salary_basis": {}, "working_days": {}, "employer_cost": {}, "hours_per_day": "texte", "equivalent_rate": {}}} - cost_next_year≈ 2429 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (7)
Paramètressalary· number · optionnel
Gross salary, a year unless salary_period is "month". Omit to use the country's example salary.country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")on_date· string · optionnel
Date of the projection, YYYY-MM-DD. Omit for 1 January of the year after the data snapshot.assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.salary_period· string · optionnel · year | month
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_basis in the answer.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countrypayments_per_year· number · optionnel
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.
Exemple d'appel{"name": "cost_next_year", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "flags": [], "salary": {}, "country": {}, "current": {}, "on_date": "texte", "reading": "texte", "summary": "texte", "coverage": "complete", "tracking": "tracked", "projected": "texte", "salary_basis": {}}} - employer_cost≈ 1994 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (7)
Paramètressalary· number · optionnel
Gross salary, a year unless salary_period is "month". Omit to use the country's example salary.country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.include_notes· boolean · optionnel
Include the long legal note behind each linesalary_period· string · optionnel · year | month
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_basis in the answer.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countrypayments_per_year· number · optionnel
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.
Exemple d'appel{"name": "employer_cost", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "lines": [], "salary": {}, "widget": {}, "country": {}, "summary": "texte", "assumptions": [], "not_in_total": [], "salary_basis": {}, "employer_cost": {}, "included_in_gross_salary": {}}} - employment_terms≈ 777 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (1)
Paramètrescountry· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")
Exemple d'appel{"name": "employment_terms", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "terms": {}, "country": {}, "reading": "texte", "summary": "texte", "salary_payments": {}, "statutory_extras": [], "extra_month_payments": []}} - fx_stress≈ 1715 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (6)
Paramètrescountry· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")budget_usd· number · optionnel
Annual budget in USD for salary plus employer charges, if the user has oneassumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.salary_local· number · requis
Gross salary in the local currency of the country, a year unless salary_period is "month"salary_period· string · optionnel · year | month
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_basis in the answer.payments_per_year· number · optionnel
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.
Exemple d'appel{"name": "fx_stress", "arguments": {"country": "texte", "salary_local": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "budget": {}, "country": {}, "reading": "texte", "summary": "texte", "scenarios": [], "salary_basis": {}, "employer_cost": {}, "exchange_rate": {}, "total_annual_local": "texte", "salary_annual_local": "texte", "total_at_official_rate": {}}} - list_countries≈ 507 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (1)
Paramètresregion· string · optionnel
Filter by region, e.g. "Europe", "Asia", "Latin America"
Exemple d'appel{"name": "list_countries", "arguments": {"region": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "count": 1, "reading": "texte", "summary": "texte", "countries": []}} - max_salary_for_budget≈ 1378 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (6)
Paramètresbudget· number · requis
Total employer budget for one employeecountry· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.budget_period· string · optionnel · year | month
Whether `budget` is per year or per monthbudget_currency· string · optionnel · USD | local
Currency of `budget`: USD, or the local currency of the countryeor_fee_usd_month· number · optionnel
An EOR fee to take out of the budget first, in USD per employee per month, as the user gives it
Exemple d'appel{"name": "max_salary_for_budget", "arguments": {"budget": 1, "country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "total": {}, "budget": {}, "country": {}, "reading": "texte", "summary": "texte", "max_salary": {}, "employer_cost": {}, "max_monthly_salary": {}}} - reconcile_quote≈ 2601 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (9)
Paramètreslines· array · requisperiod· string · optionnel · month | year
Whether the quote line amounts are per month or per year (one employee)salary· number · requis
Gross salary the quote is for, a year unless salary_period is "month"country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.salary_period· string · optionnel · year | month
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_basis in the answer.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countryamounts_currency· string · optionnel · USD | local
Currency of the quote line amountspayments_per_year· number · optionnel
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.
Exemple d'appel{"name": "reconcile_quote", "arguments": {"lines": [], "salary": 1, "country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "lines": [], "salary": {}, "country": {}, "reading": "texte", "summary": "texte", "salary_line": {}, "missing_note": "texte", "quote_detail": "detailed", "salary_basis": {}, "gap_breakdown": {}, "per_month_usd": {}}} - scheduled_changes≈ 1076 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (1)
Paramètrescountry· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")
Exemple d'appel{"name": "scheduled_changes", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "changes": [], "country": {}, "pending": [], "reading": "texte", "summary": "texte", "coverage": "complete", "tracking": "tracked", "researched_on": "texte"}} - show_compare≈ 1492 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (1)
Paramètresoffers· array · requis
One offer per country, 2 to 6 countries, each with its own salary
Exemple d'appel{"name": "show_compare", "arguments": {"offers": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "offers": [], "display": "inline", "reading": "texte", "summary": "texte", "smallest_total": {}}} - show_ledger≈ 1913 tokens
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-13. Cost comparison, not legal or tax advice.
Paramètres, retour & exemple (6)
Paramètressalary· number · optionnel
Gross salary, a year unless salary_period is "month". Omit to use the country's example salary.country· string · requis
ISO 3166-1 alpha-2 code ("DE") or country name ("Germany")assumptions· object · optionnel
Override an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.salary_period· string · optionnel · year | month
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_basis in the answer.salary_currency· string · optionnel · USD | local
Currency of `salary`: USD, or the local currency of the countrypayments_per_year· number · optionnel
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.
Exemple d'appel{"name": "show_ledger", "arguments": {"country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"meta": {}, "lines": [], "salary": {}, "country": {}, "summary": "texte", "assumptions": [], "not_in_total": [], "salary_basis": {}, "salary_input": {}, "scenario_url": "texte", "employer_cost": {}, "included_in_gross_salary": {}}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».