french-rental-compliance
Server Details
FR/EN tools for French rental, frontalier & home-employment (CCN 3239) — sourced, dated answers.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 8 of 8 tools scored.
Each tool is tied to a specific legal or payroll calculation, and the names clearly indicate their target: salary, rent revision, tenant notice, DPE restrictions, quasi-resident status, zone-tendue lookup, family allowances, and health insurance. Some overlap exists because rent revision and DPE checks both involve F/G rent freezes, and tenant notice relies on zone-tendue data, but descriptions keep boundaries clear.
All tool names follow the same snake_case verb_noun pattern with a concise legal/domain object. The verbs vary by nature of action—calculate_, check_, compare_—but each is consistent and semantically meaningful.
Eight tools is a well-scoped number for a specialist compliance server. Each tool handles a distinct calculation or legal lookup, and none feels redundant or purely decorative.
The set covers the main rental-revision, tenant-notice, DPE-restriction, zone-tendue, and cross-border worker salary/benefit comparisons well. Minor gaps remain around related compliance details such as rental deposits, landlord-side termination, or deeper Swiss tax filing checks, but they are not fatal to the tool set’s stated purpose.
Available Tools
10 toolscalculate_assistant_maternel_end_of_contractAssistant maternel (assmat) end of contract — retrait d'enfant, démission, préavis, indemnité (CCN 3239)ARead-onlyInspect
End of an assistant maternel (assmat) contract with a parent-employer: retrait d'enfant or resignation, notice, indemnity, Pajemploi documents, for the parent or the assistant maternel. · Fin de contrat d'assistant maternel (assmat) avec un parent employeur : retrait d'enfant ou démission, préavis, indemnité de rupture, documents Pajemploi, pour le parent comme pour l'assistant maternel. — Same engine as calculate_home_employment_end_of_contract with regime pre-set to assistant_maternel (socle spécifique): notice by length of care (art. 120: 8 days / 15 days / 1 month, outside the trial period), withdrawal indemnity (art. 121.1: 1/80 of gross salaries excluding entretien/repas/km, from 9 months of care), rupture conventionnelle NOT available (CASF L.423-2), last Pajemploi declaration, 6-month settlement contest window, documents with who produces and who receives each. NOT for a garde d'enfant à domicile (nounou at the family's home) — that is regime garde_domicile on the generic tool. Applies the Convention collective IDCC 3239 (verified on Légifrance 2026). Deterministic formulas — no AI, no assessment of any person or motif.
| Name | Required | Description | Default |
|---|---|---|---|
| party | Yes | Who is asking: 'employer' (particulier employeur) or 'employee' (salarié / assistant maternel). Wording only — the figures are identical for both. | |
| as_of_date | No | Seniority reference date when the letter has not been sent yet (planning). Ignored when notification_date is given. | |
| end_reason | Yes | Closed category matching the letter: 'employer_termination' (licenciement / retrait d'enfant), 'resignation' (démission), 'mutual_termination' (rupture conventionnelle — not available for assistants maternels). | |
| start_date | Yes | Contract start (ISO). | |
| am_monthly_gross | No | Assistant maternel: monthly gross (mensualisation), EXCLUDING indemnités d'entretien, repas, kilométriques. | |
| notification_date | No | ISO date of the FIRST PRESENTATION (or handover) of the letter that ends the contract — the notice runs from it. For a rupture conventionnelle: the signature date. Omit for durations only. | |
| serious_misconduct | No | The letter states faute grave or faute lourde (a category chosen by the user — the tool does not assess it). Removes the notice and the indemnity by rule. | |
| am_total_gross_paid | No | Assistant maternel: optional total gross salaries paid since the start (art. 121.1 base). Defaults to mensualisation × complete months. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, but the description goes well beyond structured data: it states the calculation is deterministic ('no AI, no assessment of any person or motif'), advances the applicable convention (IDCC 3239 verified on Légifrance 2026), and discloses the non-availability of rupture conventionnelle. This prevents misuse of a network tool as a legal judgment or open-ended approximation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and immediately names the sibling tool. The legal version is lengthy, but each segment adds a needed constraint or discloses an exclusion, and the French duplicate serves the bilingual domain. Overall it is longer than the bare minimum but well-structured and not redundant from an informational perspective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a legal calculator with 8 parameters and no output schema, the description is unusually complete: it covers scope, excluding modality, output-like elements (last Pajemploi declaration, docs and who receives/provides, contest window), legal formula, and alternative routing to the generic tool. An agent has all signs needed to choose the tool and understand the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description adds meaningful legal and calculation context: it names the 1/80 rule based on gross salaries excluding entretien/repas/km, the 8/15-day/1-month notice thresholds under article 120, and the 9-month care condition. This helps the agent understand how params like am_total_gross_paid and start_date will drive the computation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: it calculates end-of-contract outcomes for an assistant maternel with a parent-employer (retrait d'enfant, démission, préavis, indemnité, Pajemploi documents). It also differentiates itself from the sibling generic tool by name: 'Same engine as calculate_home_employment_end_of_contract with regime pre-set to assistant_maternel.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is explicit about when to use this tool versus alternatives: it names the generic sibling calculate_home_employment_end_of_contract, and explains that a 'garde d'enfant à domicile' should go to the generic tool with regime garde_domicile. It also excludes 'rupture conventionnelle NOT available', giving clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_home_employment_end_of_contractHome employment end of contract — notice, calendar, indemnity (CCN 3239)ARead-onlyInspect
End of a home-employment contract in France (particulier employeur ↔ salarié: cleaner, carer, garde d'enfant à domicile, assistant maternel): notice, dates, indemnity, documents, for either party. · Fin de contrat d'emploi à domicile (particulier employeur ↔ salarié, assistant maternel) : préavis, calendrier, indemnité, documents, pour l'employeur comme pour le salarié. — Notice duration by seniority (art. 162.4.1 dismissal / 162.6 resignation / 120 assistant maternel), earliest entretien préalable date (art. 161.1.1.1 — 4th jour ouvrable counted from the day after presentation; the Code du travail dismissal procedure does not apply to the particulier employeur), notice end computed from the FIRST PRESENTATION of the letter, dismissal indemnity (art. 163.1: 1/4 month per year up to 10 years then 1/3, from 8 months, best of the 12- or 3-month average) or assistant-maternel withdrawal indemnity (art. 121.1: 1/80 of gross salaries, from 9 months), rupture conventionnelle windows (blocked for assistants maternels, CASF L.423-2), paid-leave reminder, last CESU/Pajemploi declaration date, 6-month settlement contest window, and the end-of-contract documents with who produces and who receives each. Same numbers whichever party calls. Applies the Convention collective IDCC 3239 (verified on Légifrance 2026). Deterministic formulas — no AI, no assessment of any person or motif.
| Name | Required | Description | Default |
|---|---|---|---|
| party | Yes | Who is asking: 'employer' (particulier employeur) or 'employee' (salarié / assistant maternel). Wording only — the figures are identical for both. | |
| regime | Yes | 'home_employee' (salarié du particulier employeur: cleaner, carer, housekeeper…), 'garde_domicile' (child care at the family's home — same rules as home_employee), 'assistant_maternel' (childminder at her own home, agréée — or use calculate_assistant_maternel_end_of_contract). | |
| as_of_date | No | Seniority reference date when the letter has not been sent yet (planning). Ignored when notification_date is given. | |
| end_reason | Yes | Closed category matching the letter: 'employer_termination' (licenciement / retrait d'enfant), 'resignation' (démission), 'mutual_termination' (rupture conventionnelle — not available for assistants maternels). | |
| start_date | Yes | Contract start (ISO). | |
| hourly_gross | No | Gross hourly rate in € (home employee / garde à domicile). | |
| weekly_hours | No | Weekly hours (mensualisation = hourly × hours × 52 / 12). | |
| am_monthly_gross | No | Assistant maternel: monthly gross (mensualisation), EXCLUDING indemnités d'entretien, repas, kilométriques. | |
| convocation_date | No | Employer termination only: first presentation of the convocation à l'entretien préalable → earliest entretien date (CCN art. 161.1.1.1). | |
| notification_date | No | ISO date of the FIRST PRESENTATION (or handover) of the letter that ends the contract — the notice runs from it. For a rupture conventionnelle: the signature date. Omit for durations only. | |
| avg_3_months_gross | No | Optional — average gross monthly pay over the last 3 months (the more favourable average is used). | |
| serious_misconduct | No | The letter states faute grave or faute lourde (a category chosen by the user — the tool does not assess it). Removes the notice and the indemnity by rule. | |
| am_total_gross_paid | No | Assistant maternel: optional total gross salaries paid since the start (art. 121.1 base). Defaults to mensualisation × complete months. | |
| avg_12_months_gross | No | Optional — average gross monthly pay over the last 12 months (art. 163.1 reference). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Though annotations already mark readOnlyHint true, the description adds substantial behavioral context: notice runs from the FIRST PRESENTATION, results are deterministic with no AI and no assessment of persons or motifs, and the same figures are returned whichever party calls. These details set correct expectations about the tool's limits and assumptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well structured: it leads with purpose, then lists all legal topics in one high-information paragraph, and ends with verification and determinism notes. It is longer than average, and the bilingual opening repeats content, but the density is justified for a complex legal calculator and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a highly complex legal computation with 14 parameters and no output schema, the description is unusually complete. It covers notice, indemnity, rupture conventionnelle restrictions, paid leave, CESU/Pajemploi declaration, contest window, beneficiary of documents, applicable law, and verification source. Important exclusions and behavioral constraints are also stated, leaving little ambiguity about what the agent should pose as inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the legal formulas behind the parameters: dismissal indemnity (considered 1/4 month per year, then 1/3, from the 8th month, best of 12/3-month average), assistant-maternel indemnity (1/80 gross from the 9th month), and the earliest entretien préalable date calculation. It does not explicitly walk through all 14 parameter names, but functionally links the formulas to the relevant inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb and resource: it calculates the end of a home-employment contract in France and enumerates the concrete deliverables: notice, dates, indemnity, and documents. It also narrows the scope to CCN 3239 and lists the relevant categories (cleaner, carer, garde d'enfant, assistant maternel), so it is easy to distinguish from salary, rent, and other calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states clear applicable context: both parties, particular employer ↔ salaried employee, home employment under IDCC 3239, with specific mention that the general Code du travail dismissal procedure does not apply. It does not explicitly list alternatives in the prose, but the schema tells the user to use calculate_assistant_maternel_end_of_contract in one embedded paraphrase; the distinction is present in the tool definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_net_swiss_salaryNet Swiss salary calculator (frontalier)ARead-onlyInspect
Net Swiss salary for a cross-border worker. · Salaire suisse net pour un frontalier. — Converts a gross annual Swiss salary (CHF) to net, deducting the employee shares of AVS/AI/APG, AC (chômage), LPP (2nd pillar) and NBU (non-occupational accident) for the given border canton. Deterministic Swiss payroll rules — no AI. Returns annual + monthly net and the deduction breakdown, with the data year of the rates used.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Employee age (affects LPP rate). | |
| canton | Yes | Swiss border canton (GE, VD, JU, NE, BS, VS). | |
| gross_chf_annual | Yes | Gross annual salary in CHF. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, and the description aligns by indicating a calculation ('Converts') with no side effects. It adds value by detailing the output (annual + monthly net, deduction breakdown, data year) and emphasizing deterministic rules (no AI), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient, with a clear lead sentence, a translated version, and a concise explanation of method and outputs. It is slightly verbose due to bilingual text but still well-organized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of Swiss payroll and no output schema, the description adequately explains the return format and the payroll components. It lacks edge-case details (e.g., salary caps) but is sufficient for an agent to understand scope and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, so baseline is 3. The description enriches parameter meaning by listing the specific deductions (AVS/AI/APG, AC, LPP, NBU) and tying them to the canton, which clarifies how canton and age affect the calculation beyond the schema's brief statements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: converting a gross annual Swiss salary to net for cross-border workers, with a specific verb ('converts') and resource ('gross salary to net'). It distinguishes itself from siblings like rent or tenant tools by focusing on salary and cross-border context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for cross-border workers in specific cantons, and mentions deterministic rules, but does not explicitly state when to prefer this over alternatives or exclusions. Context is clear, but no direct when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_rent_revisionFrench rent revision calculator (IRL indexation)ARead-onlyInspect
New rent after the yearly IRL increase; F/G homes are frozen. · Nouveau loyer après la révision IRL annuelle ; les biens F/G sont gelés. — Computes the legally revised rent for a French residential lease using the INSEE IRL (indice de référence des loyers): new rent = current rent × (IRL of the lease's reference quarter ÷ IRL of the SAME quarter one year earlier), loi n° 89-462 art. 17-1. The reference quarter (trimestre de référence IRL) is the one written in the lease — pass it as reference_quarter. Two legal limits are enforced: the revision must be claimed within ONE YEAR of the lease anniversary or it is forfeited for that year, and it is BLOCKED for DPE class F or G (rent freeze since 25 August 2022, loi n° 2022-1158 art. 159) — pass dpe_class to get that check. Deterministic INSEE data + fixed formula — no AI. France métropolitaine.
| Name | Required | Description | Default |
|---|---|---|---|
| dpe_class | No | Dwelling's DPE class, if known — F or G blocks the revision (rent freeze). | |
| current_rent | Yes | Current monthly rent excluding charges (hors charges), in euros. | |
| reference_quarter | Yes | The IRL reference quarter named in the lease (trimestre de référence). Accepts forms like '2026-T2', 'T2 2026', 'Q2 2026'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses deterministic behavior ('Deterministic INSEE data + fixed formula — no AI'), the legal basis (loi n° 89-462 art. 17-1), and specific enforced limits (one-year forfeiture, DPE F/G freeze since 25 August 2022). This provides substantial operational transparency that annotations alone would not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a concise bilingual summary, then delivers the formula, legal limits, parameter guidance, and determinism note in a structured sequence. Every sentence carries necessary information with no filler — it is long but dense and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (legal formula, multiple constraints, data source), the description covers all essential aspects: inputs, formula, legal limits, DPE freeze, geographic scope, and deterministic nature. No output schema exists, but the output is clearly implied as the new rent amount in euros. This is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaningful context: it explains that reference_quarter comes from the lease, that dpe_class triggers the freeze check, and clarifies that current_rent is 'hors charges'. These clarifications reinforce the schema's descriptions and add legal purpose, but they don't add new syntax or format details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Computes the legally revised rent for a French residential lease using the INSEE IRL' with the exact formula. It distinguishes itself from sibling tools (e.g., Swiss salary calculator, DPE restriction checker) by specifying the French rent revision context and the specific legal calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: for computing legally revised rent under French law, with special handling for the one-year claim limit and DPE F/G freeze. It explains when to pass dpe_class for the freeze check. However, it doesn't explicitly name alternative tools or state when not to use it, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_tenant_notice_periodTenant notice period (préavis) calculator — French residential leaseARead-onlyInspect
Tenant's notice period to end a French lease (préavis). · Délai de préavis du locataire pour résilier un bail. — Computes the tenant's notice period for terminating a French residential lease (loi n° 89-462 art. 15): furnished = always 1 month; unfurnished = 3 months, reduced to 1 month in a zone tendue commune (first-list perimeter, resolved automatically from insee_code/commune) or on a statutory ground (art. 15 I, 1° à 5° incl. 3° bis). Returns the end date computed de quantième à quantième from the RECEPTION date, plus which justificatifs must accompany the letter. Deterministic legal formula — no AI involved. France métropolitaine rules.
| Name | Required | Description | Default |
|---|---|---|---|
| commune | No | Commune name, e.g. 'Lyon'. Used when insee_code is not provided. | |
| ground_id | No | Statutory ground for the reduced 1-month notice on an unfurnished lease (art. 15 I). | |
| insee_code | No | INSEE commune code (5 chars, e.g. 75056 for Paris, 2A004 for Ajaccio). Preferred when known — skips name resolution. | |
| lease_type | Yes | 'vide' = unfurnished, 'meuble' = furnished | |
| code_postal | No | 5-digit postal code — disambiguates homonym communes. | |
| zone_tendue | No | Explicit zone-tendue (first list) flag if already known — otherwise resolved from insee_code/commune. | |
| reception_date | No | ISO date the LANDLORD RECEIVES the notice (LRAR reception, remise en main propre, or acte de commissaire) — never the sending date. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this by labeling the computation 'Deterministic legal formula — no AI involved.' It adds valuable behavioral context beyond annotations: the reception-date emphasis (never the sending date), the automatic zone-tendue resolution, and the return of justificatifs. This exceeds the baseline for tools with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, using a semicolon-separated enumeration and clear cause-effect statements. It front-loads the purpose and then provides necessary legal details. The bilingual intro is slightly redundant, but every sentence conveys essential information, keeping it appropriately concise for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what the function returns, and it does: 'the end date computed ... plus which justificatifs must accompany the letter.' It also covers the legal grounding, the zone-tendue resolution, and the scope (France métropolitaine). It lacks explicit error-handling notes (e.g., what happens with invalid dates), but for a deterministic calculator the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters, so the baseline is 3. The description adds significant semantic value: it explains how lease_type dictates the base period, how ground_id and zone_tendue interact to reduce it, and clarifies the crucial nuance of reception_date (landlord receives, not sent). This goes well beyond the schema's raw field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes the tenant's notice period for terminating a French residential lease, with specific rules (furnished = 1 month, unfurnished = 3 months with reductions). It names the legal reference (loi n° 89-462 art. 15) and distinguishes itself from sibling tools (e.g., calculate_rent_revision, check_zone_tendue) by its explicit scope and outputs (end date and justificatifs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool: for calculating tenant notice periods in France métropolitaine, and even notes it automatically resolves zone tendue, avoiding the need for separate calls. However, it does not explicitly name alternative tools or state when NOT to use it (e.g., for other legal jurisdictions or other lease types), which would push it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dpe_rental_restrictionsDPE rental restrictions — letting ban, rent freeze, DPE validityARead-onlyInspect
French rental limits by DPE class: letting ban, rent freeze, DPE validity. · Restrictions locatives selon la classe DPE : interdiction de louer, gel des loyers, validité du DPE. — Given a dwelling's DPE class (A–G), returns the French rental restrictions in force: letting ban status and date (loi n° 2021-1104 Climat et Résilience — G banned since 2025, F from 2028, E from 2034, France métropolitaine), the F/G rent freeze (in force since 25 Aug 2022), and — when dpe_issue_date is provided — whether the DPE itself is still valid (10-year rule + the 2013–2021 transitional expiries). Deterministic rules from official thresholds — no AI involved.
| Name | Required | Description | Default |
|---|---|---|---|
| dpe_class | Yes | Energy class from the dwelling's DPE. | |
| dpe_issue_date | No | ISO issue date of the DPE — enables the validity check. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint annotation by detailing the exact rules and thresholds: 'G banned since 2025, F from 2028, E from 2034', the rent freeze since 25 Aug 2022, and the 10-year validity rule with transitional expiries. It also assures 'Deterministic rules from official thresholds — no AI involved,' which sets expectations. This thoroughly aligns with the readOnlyHint and adds significant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence carries specific information: the summary line, the detailed breakdown of each restriction, and the legal references. It front-loads the main purpose and then expands. It could be slightly trimmed, but given the complexity of the rules, the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description must explain what is returned, and it does: letting ban status and date, rent freeze, and DPE validity. It covers all three main aspects with precise dates and conditions, and notes the deterministic nature. For a tool with two parameters and clear rules, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema already explains them. The description adds meaning by linking dpe_issue_date to the validity check ('when dpe_issue_date is provided — whether the DPE itself is still valid') and implicitly defines the DPE class range 'A–G'. It enriches the semantics without restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns French rental restrictions (letting ban, rent freeze, DPE validity) based on a DPE class. The verb 'returns' and resource 'French rental restrictions' are specific, and it distinguishes itself from sibling tools that focus on Swiss salary, rent revision, etc., which are unrelated domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when a dwelling's DPE class is known and French rental restrictions are needed. It mentions France métropolitaine for the letting ban, and the optional dpe_issue_date for validity. It doesn't explicitly state alternatives, but siblings are obviously different topics, so no confusion arises. Could be improved by explicitly stating not to use for non-French properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_geneva_quasi_residentGeneva quasi-resident status check (frontalier)ARead-onlyInspect
Geneva quasi-resident status (≥90% income taxed in CH). · Statut de quasi-résident genevois (≥90% des revenus imposés en CH). — Tells a Geneva cross-border worker whether they qualify as a quasi-résident — i.e. at least ~90% of the household's worldwide income is taxable in Switzerland — which unlocks itemised deductions on the Geneva tax return. Deterministic threshold rule — no AI. Returns eligibility, the share, the threshold, and the data year.
| Name | Required | Description | Default |
|---|---|---|---|
| swiss_income | Yes | Income taxable in Switzerland (same currency as total_income). | |
| total_income | Yes | Total worldwide household income (same currency). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=false. The description adds valuable behavioral context: it is a deterministic threshold rule, explicitly states 'no AI', and lists the exact return values (eligibility, share, threshold, data year). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the key threshold, followed by user applicability and return values. It includes a redundant French duplicate of the opening phrase, which costs a little conciseness, but overall every major point is stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter deterministic calculator with no output schema, the description is complete: it states the rule, the eligibility criterion, the benefit, and the exact outputs. No additional context is needed to invoke or interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so swiss_income and total_income are already fully documented in the schema. The description adds conceptual framing (household worldwide income, taxable in Switzerland) but does not provide additional parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it tells a Geneva cross-border worker whether they qualify as a quasi-resident. It names the specific verb/resource/scope and distinguishes itself from sibling tools like calculate_net_swiss_salary and check_zone_tendue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies the target user and context: Geneva cross-border workers considering itemised deductions. It does not explicitly name alternatives or state when not to use it, but the context is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_zone_tendueZone tendue status of a French communeARead-onlyInspect
Is a commune in zone tendue, and which list (reduced tenant notice, or tax only)? · Une commune est-elle en zone tendue, et sur quelle liste (préavis réduit, ou fiscal seulement) ? — Checks whether a French commune is in the 'zone tendue' perimeter and — crucially — WHICH one: the first list (décret n° 2013-392 annex, 1,434 communes, agglomérations >50k) where the tenant's reduced 1-month notice applies, or the wider TLV tax perimeter added in 2023 where ONLY fiscal measures apply (widely mislabelled 'zone tendue' — the reduced notice does NOT apply there). Deterministic dataset lookup on DILA reference data (service-public.fr simulator dataset) — no AI involved. Provide insee_code, or commune (+ code_postal to disambiguate).
| Name | Required | Description | Default |
|---|---|---|---|
| commune | No | Commune name, e.g. 'Lyon'. Used when insee_code is not provided. | |
| insee_code | No | INSEE commune code (5 chars, e.g. 75056 for Paris, 2A004 for Ajaccio). Preferred when known — skips name resolution. | |
| code_postal | No | 5-digit postal code — disambiguates homonym communes. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true and openWorldHint=false annotations, the description adds valuable behavioral context: it is a 'deterministic dataset lookup on DILA reference data (service-public.fr simulator dataset) — no AI involved.' It also discloses the real-world consequences of each list, making the tool's behavior and semantic boundary much clearer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense and front-loaded with the core question, then the critical caveat about the two lists. There is minor redundancy from the bilingual repetition of the opening question, but overall every substantive piece of the explanation earns its place given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately conveys what the caller should expect conceptually: membership in the zone tendue perimeter and which list applies. It also covers the data source, determinism, and input disambiguation needs. It does not specify the exact output shape, but for a boolean/list lookup the semantic outcome is clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already explains the commune name, INSEE code preference, and postal-code disambiguation. The description essentially restates this guidance ('Provide insee_code, or commune (+ code_postal to disambiguate)') without adding new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Checks whether a French commune is in the zone tendue perimeter' and immediately distinguishes the two lists (reduced notice vs. tax-only). This clearly separates the tool from sibling tools and makes its exact scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context by explaining the critical distinction between the two 'zone tendue' lists and warns that the wider TLV perimeter is often mislabelled. It also tells the caller how to provide input ('Provide insee_code, or commune (+ code_postal to disambiguate)'), though it does not explicitly compare against sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_family_allowancesFamily allowances — Swiss vs French (frontalier)ARead-onlyInspect
Family allowances: Swiss vs French for a frontalier. · Allocations familiales : Suisse ou France pour un frontalier. — Compares the monthly/annual family allowances a cross-border worker's household is due under the Swiss canton's rules vs French CAF, and the EU 883/2004 differential top-up when the spouse works in France. Deterministic official allowance tables — no AI. Returns Swiss annual + monthly base (CHF), CAF monthly (EUR), the differential, and the data year.
| Name | Required | Description | Default |
|---|---|---|---|
| canton | Yes | Swiss border canton (GE, VD, JU, NE, BS, VS). | |
| children | Yes | The children (at least one). | |
| spouse_works_in_france | No | Does the spouse work in France? (triggers the EU differential). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true inferring a safe read operation. The description adds that it's 'Deterministic official allowance tables — no AI', which explains the computation nature. It also describes the return values (Swiss annual/monthly in CHF, CAF monthly in EUR, differential, year). It doesn't mention any side effects, but for a read-only deterministic calculator, this is adequate. It adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the purpose and outputs, second adds deterministic nature and return specifics. Every word serves a purpose, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters (all described in schema), no output schema, but the description explicitly lists the returned values (Swiss annual/monthly in CHF, CAF monthly in EUR, differential, data year). It also mentions the deterministic nature and the EU regulation. For a calculation tool with clear inputs, this is complete enough. Could have mentioned edge cases (e.g., max children, age limits) but schema covers those. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are well-documented in the schema. The description adds context about the differential top-up and spouse working in France, which matches the parameter. But it doesn't add significant meaning beyond the schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares Swiss vs French family allowances for a frontalier, specifies the differential top-up, and lists the exact outputs. It uses a specific verb ('compares') and resource ('family allowances for a frontalier'), and it's distinct from siblings which deal with other legal/financial calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for frontaliers with children comparing Swiss vs French allowances concrete. It doesn't explicitly mention when not to use it or alternatives, but the purpose is specific enough that it's clear this is for cross-border workers. Given the sibling tools are unrelated (net salary, rent revision, etc.), the context is sufficient. It could have explicitly stated 'use this if you are a frontalier with children' but it's implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_lamal_cmuFrontalier health cover — LAMal vs CMUARead-onlyInspect
Frontalier health cover: LAMal (CH) vs CMU/PUMa (FR). · Couverture santé frontalier : LAMal (CH) ou CMU (FR). — Estimates the monthly cost of the two health-insurance options a France–Switzerland cross-border worker chooses between (droit d'option): Swiss LAMal (in CHF) vs French CMU/PUMa (in EUR, a % of income). Dependants are priced by age band (0-18 child, 19-25 young adult, 26+ adult). Deterministic official premium/rate tables — no AI. Returns both monthly figures + the data year.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Worker's age. | |
| canton | Yes | Swiss border canton (GE, VD, JU, NE, BS, VS). | |
| salary_chf | Yes | Annual Swiss salary in CHF. | |
| children_ages | No | Ages of dependants (optional) — priced by band (≤18 / 19-25 / 26+). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that the tool is deterministic (official premium/rate tables, no AI) and states the return value includes both monthly figures and the data year. This adds valuable behavioral context not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with clear structure (front-loaded with purpose, then details). The French repetition is redundant but not harmful. No filler words; every clause contributes to understanding the tool's function and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description explains that returns monthly CAF figures for both options plus data year, and mentions age bands for dependants. It also notes deterministic tables, covering all key aspects. It does not explain the exact calculation, but that is not required for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining dependant pricing bands (0-18 child, 19-25 young adult, 26+ adult), which is not explicit in the schema. It also clarifies that the annual salary is in CHF and canton is a border canton, enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates monthly costs for two health-insurance options (LAMal vs CMU) for cross-border workers, with specific verbs and resource scope. It is distinct from all sibling tools which cover salary, rent, tenure, DPE, quasi-residence, zone tendue, and family allowances, so no confusion arises.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the exact context: France–Switzerland cross-border workers with droit d'option, choosing between Swiss LAMal and French CMU/PUMa. It does not explicitly mention alternatives or when not to use, but the context is clear enough for an agent to select this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, bound to the signed-in Glama account, and expire after seven days. They contain no email address or other personal information. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExact French real-estate legal calculations for AI agents: IRL rent revision, service-charge reconciliation, compliant rent receipts — legal basis included in every answer.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access French residential rental tools including lease creation and e-signing, rent control checks, rent revision, and document generation.MIT
- AlicenseAqualityAmaintenanceAccounting MCP server for the French LMNP tax status (furnished rentals, e.g. Airbnb hosts). 44 tools to manage properties, income and expenses, compute component-based depreciation and fiscal results, and generate the official French tax return (2031/2033) and FEC accounting export.443AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceProvides 62 French tax calculation tools via MCP, running on Cloudflare Workers with Rust/Wasm and versioned official rules.MIT