Fiscalité française ouverte, par BENSAID Avocats
Server Details
Official French tax texts, dated and sourced: 237 treaty instruments by article, BOFiP, CGI, LPF.
- Status
- Healthy
- Uptime
- 100.0% over 28 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct source and action: BOFiP (search/get), tax treaties (search/get/article), Légifrance articles, and OpenFisca parameters. The only potential overlap (conventions_get vs conventions_article) is explicitly disambiguated in the descriptions ('pour un seul article, préférer conventions_article'). The sources are mutually exclusive, so misselection risk is low.
All seven tools follow a strict {source}_{action} snake_case pattern: bofip_get/bofip_search, conventions_get/conventions_search/conventions_article, legifrance_article, openfisca_parameter. Verb style and casing are uniform throughout.
Seven tools is well-scoped for a legal-research server, with search+retrieval pairs for each major source rather than redundant operations. Each tool earns its place.
The surface covers the main open French tax sources (BOFiP doctrine, treaties, CGI/LPF articles, OpenFisca parameters) with paired search/get access for most. Minor gaps remain: legifrance_article has no search counterpart (you must know the article number), and there is no case-law/jurisprudence source, but agents can work around these.
Available Tools
7 toolsbofip_getLire un document BOFiPARead-onlyIdempotentInspect
Texte d'un document BOFiP par identifiant BOI (ex. BOI-RPPM-PVBMI-50-10-10, avec ou sans date), par tranches de 40000 caractères (paramètre debut), avec titre, date de publication et permalien officiel bofip.impots.gouv.fr. Source : BOFiP-Impôts, données ouvertes DGFiP, stock et flux appliqués jusqu'au 30/09/2026, licence ouverte Etalab 2.0. / Text of a BOFiP document by BOI id, paged, with publication date and official permalink. DGFiP open data, Etalab 2.0.
| Name | Required | Description | Default |
|---|---|---|---|
| boi | Yes | Identifiant BOI. / BOI identifier. | |
| debut | No | Position de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut). / Start offset for paging. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely new operational context: 40000-character paging, the returned fields (title, publication date, permalink), and the data-freshness cutoff of 30/09/2026.
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?
Core purpose and pagination are front-loaded, and every clause carries information. The bilingual duplication and source/licence boilerplate add length without adding much, but nothing is truly wasted.
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 carries the return-value burden and does so by naming title, publication date and permalink, plus the paging contract. Only the absence of an explicit route to bofip_search keeps it short of 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?
Schema coverage is 100% so the baseline is 3, but the description goes further: it notes the BOI id may be given 'avec ou sans date', and it explains that `debut` pages in 40000-character tranches and should be resumed from suite.debut, which the schema does not say.
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?
States a specific verb+resource (read the text of a BOFiP document) and the exact keying mechanism (by BOI id). This cleanly distinguishes it from the sibling bofip_search, which is the tool you would use to obtain such an id.
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 the prerequisite (you must already hold a BOI identifier) but never names bofip_search as the way to find one, nor states when to prefer this tool over it. Usage is inferable from 'by BOI id' rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bofip_searchRechercher dans la doctrine fiscale (BOFiP)ARead-onlyIdempotentInspect
Recherche sémantique dans le Bulletin officiel des finances publiques (BOFiP-Impôts, doctrine administrative de la DGFiP), versions en vigueur seulement. Rend les BOI classés par pertinence avec extrait, date de publication et permalien officiel ; lire le texte avec bofip_get. Source : BOFiP-Impôts, données ouvertes DGFiP (data.gouv.fr), stock et flux appliqués jusqu'au 30/09/2026, licence ouverte Etalab 2.0. / Semantic search in BOFiP-Impôts (French tax administration guidance), current versions only; returns BOI ids, excerpts and official permalinks. Source: DGFiP open data, Etalab 2.0 open licence.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Nombre de résultats (1 à 8, défaut 6). | |
| query | Yes | Question ou sujet. / Question or topic. | |
| serie | No | Série BOFiP (IR, IS, TVA, RPPM, ENR, PAT, BIC, INT, CF...). / BOFiP series. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior: currency limited to in-force versions, result shape (ranked BOI ids, excerpt, publication date, official permalink), data freshness cutoff (30/09/2026) and licence provenance.
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?
Front-loaded with the core purpose and return contract in the first sentence; bilingual duplication is justified for a French-language corpus but the source/licence line is repeated in both languages, which is mild 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?
With no output schema, the description correctly compensates by describing the return fields and the permalink. Combined with disclosed coverage window and source, an agent has enough to invoke and interpret results, though freshness of the underlying stock versus the cutoff date could be stated more precisely.
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 query/limit/serie are already documented in the schema, including the series examples. The description adds nothing about parameter behavior, so the baseline 3 applies.
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?
States a specific verb ('Recherche sémantique') plus resource ('Bulletin officiel des finances publiques / BOFiP-Impôts'), and explicitly scopes it to 'versions en vigueur seulement'. It is immediately distinguishable from the sibling bofip_get, which it names as the follow-up for reading full text.
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?
Clear context: use this to find BOI references, then use bofip_get to read the text, and only current versions are covered. It names the alternative tool and the handoff, but gives no explicit exclusions (e.g. when to prefer conventions_search or legifrance_article for non-BOFiP tax material).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
conventions_articleLire un article exact d'une convention fiscaleARead-onlyIdempotentInspect
Texte EXACT d'un article d'une convention fiscale conclue par la France, avec l'intitulé de l'acte, le PDF officiel, les notes d'avenant et les avertissements (acte dénoncé, non en vigueur, texte OCR, avenants à vérifier). Donner pays (ou acte) et article (ex. 18, 1er, 28 bis) ; objet: successions pour la convention successorale ; paragraphe isole un paragraphe numéroté. Aucune reformulation. Source : conventions publiées sur impots.gouv.fr (PDF officiels), corpus au 2026-10-13, licence ouverte Etalab 2.0. / Exact text of one treaty article (by country or instrument id), with amendment notes and warnings. Source: treaties published on impots.gouv.fr (official PDFs), corpus as of 2026-10-13, Etalab 2.0 open licence.
| Name | Required | Description | Default |
|---|---|---|---|
| acte | No | Identifiant d'acte (prioritaire sur pays). / Instrument id (overrides country). | |
| pays | No | Pays en français ou en anglais, ou code ISO à 3 lettres (Suisse, Royaume-Uni, United States, ITA). / Country name in French or English, or ISO alpha-3 code. | |
| objet | No | revenu (défaut) ou successions, donations... / Subject (default: income). | |
| partie | No | protocole, echange... (par défaut le corps de l'acte). / Part of the instrument. | |
| article | Yes | Numéro d'article : 18, 1er, 28 bis. / Article number. | |
| paragraphe | No | Numéro de paragraphe (optionnel). / Paragraph number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed world). The description goes beyond them by disclosing content caveats: warnings for denounced or non-in-force acts, OCR-derived text, amendments to verify, and the explicit 'Aucune reformulation' guarantee plus corpus snapshot date. This is meaningful disclosure the annotations cannot carry.
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?
Front-loaded with the core purpose and content caveats. It is somewhat long because the French and English halves largely duplicate each other, but each sentence carries substantive information rather than filler.
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 read-only lookup with 6 fully documented parameters and no output schema, the description explains what comes back (act title, official PDF, amendment notes, warnings), the data provenance and version, and the licence. Nothing an agent needs in order to call it correctly is missing.
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 baseline is 3. The description nevertheless adds value: concrete article formats (18, 1er, 28 bis), the `objet: successions` special case, and the semantics of `paragraphe` as isolating a numbered paragraph, which the schema text only states tersely.
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?
States a specific verb and resource: 'Texte EXACT d'un article d'une convention fiscale conclue par la France'. It is clearly distinct from the sibling search/get tools, which retrieve treaties or lists rather than a single verbatim article.
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 tells the agent how to invoke it ('Donner `pays` (ou `acte`) et `article`', `objet: successions`, `paragraphe`) but never says when to prefer it over conventions_get, conventions_search or legifrance_article. Usage is implied by the 'one exact article' scope rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
conventions_getLire le texte intégral d'un acte conventionnelARead-onlyIdempotentInspect
Texte intégral d'un acte (convention, avenant, protocole) par son identifiant acte (conv-N, rendu par conventions_search), avec le lien du PDF officiel. Texte long : rendu par tranches de 40000 caractères (paramètre debut). Pour un seul article, préférer conventions_article. Source : conventions publiées sur impots.gouv.fr (PDF officiels), corpus au 2026-10-13, licence ouverte Etalab 2.0. / Full text of a treaty instrument by id (conv-N), paged, with the official PDF link. Source: treaties published on impots.gouv.fr (official PDFs), corpus as of 2026-10-13, Etalab 2.0 open licence.
| Name | Required | Description | Default |
|---|---|---|---|
| acte | Yes | Identifiant de l'acte, ex. conv-214. / Instrument id. | |
| debut | No | Position de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut). / Start offset for paging. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioural context beyond that: the 40000-character paging model, the resume offset, the returned PDF link, and data provenance/licence. It does not state what happens at the end of the corpus or how to detect completion, which keeps it off a 5.
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?
Purpose, alternative routing and provenance are front-loaded in the first two sentences. The bilingual duplication doubles the byte count, though each language block is internally tight and no sentence is filler within its language.
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 carries the return-value burden and does so adequately: full text, PDF link, and slice-based paging. Minor gap: it never says how the agent knows it has reached the last slice, only that paging exists.
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 both parameters are already documented in the schema, including the 40000-character chunking and the 'suite.debut' resume hint. The description largely restates that chunk size rather than adding new semantics, so the baseline 3 applies.
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?
States a specific verb+resource ('Texte intégral d'un acte ... par son identifiant acte'), enumerates what counts as an acte (convention, avenant, protocole), and explicitly separates itself from conventions_article (single article) and conventions_search (id source). An agent can route correctly without opening any schema.
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?
Gives explicit when-to-use (full text by id), names the alternative for the adjacent case ('Pour un seul article, préférer conventions_article'), and tells the agent where the required id comes from ('rendu par conventions_search'). That is when/when-not/alternatives all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
conventions_searchRechercher dans les conventions fiscales de la FranceARead-onlyIdempotentInspect
Recherche sémantique, article par article, dans les 237 actes des conventions fiscales conclues par la France (126 pays : conventions, avenants, protocoles, accords). Rend les articles pertinents avec numéro, intitulé de l'acte, extrait du texte officiel, lien du PDF et score (seuil 0,40) ; une référence explicite (« article 18 Suisse ») est résolue directement. Préciser pays quand il est connu. Lire ensuite l'article avec conventions_article. Source : conventions publiées sur impots.gouv.fr (PDF officiels), corpus au 2026-10-13, licence ouverte Etalab 2.0. / Semantic article-level search across France's 237 tax treaty instruments (126 countries). Returns article number, instrument title, official text excerpt, PDF link and score; no generated answer. Source: treaties published on impots.gouv.fr (official PDFs), corpus as of 2026-10-13, Etalab 2.0 open licence.
| Name | Required | Description | Default |
|---|---|---|---|
| pays | No | Pays en français ou en anglais, ou code ISO à 3 lettres (Suisse, Royaume-Uni, United States, ITA). / Country name in French or English, or ISO alpha-3 code. | |
| limit | No | Nombre de résultats (1 à 8, défaut 6). | |
| objet | No | Nature de l'acte (revenu par défaut pour la recherche : tous). / Instrument subject. | |
| query | Yes | Question ou sujet, en français de préférence. / Question or topic. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, read-only, idempotent operation, so the safety bar is covered. The description adds genuine behavioral context beyond them: a similarity threshold of 0.40, that no generated answer is produced, that explicit references bypass normal matching, and provenance (official PDFs, corpus date, Etalab licence).
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 purpose and scope are front-loaded, and every sentence carries information (threshold, return fields, follow-up tool, provenance). The cost is the full bilingual duplication, which doubles length and repeats content, but it is deliberate for a French/English audience rather than filler.
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 compensates by enumerating the returned fields (article number, instrument title, official excerpt, PDF link, score). It also covers corpus scope, threshold, query phrasing, and the downstream read step, so an agent has everything needed to invoke it 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 the schema already documents all four parameters including the `objet` enum and limit bounds. The description only reinforces the `pays` recommendation, adding little syntax or semantic detail beyond what the schema provides, so the baseline 3 applies.
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 states a specific verb (semantic, article-by-article search) and a precisely scoped resource: 237 French tax treaty instruments across 126 countries. It distinguishes itself from siblings by naming the corpus (treaties vs. BOFiP/Legifrance) and by routing the agent to conventions_article for the follow-up read.
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 actionable routing: specify `pays` when the country is known, and read the returned article next with conventions_article. It also notes that explicit references like "article 18 Suisse" are resolved directly, which tells the agent how to phrase a query. It does not, however, contrast itself with conventions_get or explain when the sibling search tools are preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legifrance_articleLire un article du CGI ou du LPF (Légifrance)ARead-onlyIdempotentInspect
Texte en vigueur d'un article du Code général des impôts (cgi) ou du Livre des procédures fiscales (lpf), par son numéro (ex. 150-0 B ter, 757 B, L. 64), avec l'identifiant LEGIARTI, la date d'entrée en vigueur et le lien Légifrance. Source : Légifrance (DILA) via l'API PISTE, licence ouverte Etalab 2.0, consulté à la date de l'appel ; mis en cache 24 h. / In-force text of a French General Tax Code (cgi) or Tax Procedure Book (lpf) article by number, from Légifrance (DILA) through the PISTE API, Etalab 2.0 open licence; cached 24 h.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | cgi ou lpf. | |
| article | Yes | Numéro d'article : 150-0 B ter, 757 B, L. 64. / Article number. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantive context beyond them: 24-hour caching, provenance (Légifrance/DILA via API PISTE), Etalab 2.0 licence, and that content is current as of the call date. The only gap is no note on failure behavior for invalid article numbers.
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?
Front-loaded with the core purpose and lookup key before provenance details. The French/English duplication is slightly redundant, but the bilingual phrasing is deliberate for a French-source tool and each clause carries information.
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 helpfully enumerates what is returned (in-force text, LEGIARTI identifier, entry-into-force date, Légifrance link) plus caching and source provenance. An agent has everything needed to invoke it and 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% and both parameters are documented in the schema, including the enum for code and article-number examples. The description restates the same examples (150-0 B ter, 757 B, L. 64) without adding format rules or constraints beyond the schema, so the baseline of 3 applies.
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?
States a specific verb and resource — 'Texte en vigueur d'un article' — scoped to CGI/LPF codes, with the lookup key (article number) and examples. This clearly distinguishes it from siblings like bofip_get or conventions_article, which cover different corpora.
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?
Usage is implied by the resource scope (get an article when you know the code and article number), and examples of valid article numbers are given. However, there is no explicit when-to-use guidance nor any routing against sibling tools that also retrieve tax texts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfisca_parameterLire un barème ou un taux de la législation (OpenFisca)ARead-onlyIdempotentInspect
Valeur d'un paramètre de la législation socio-fiscale française (barèmes, taux, plafonds) tel que codé dans OpenFisca France, à une date donnée (aujourd'hui par défaut), avec les dernières valeurs datées et leurs références légales. Ex. impot_revenu.bareme_ir_depuis_1945.bareme, taxation_capital.pfu.taux. Un chemin partiel rend la liste des paramètres correspondants. Source : API publique OpenFisca France (api.fr.openfisca.org), mise en cache 24 h ; vérifier sur le texte officiel. / Value of a French tax-benefit legislation parameter (scales, rates, ceilings) from the public OpenFisca France API, at a given date, with dated history and legal references; cached 24 h.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date de valeur AAAA-MM-JJ (défaut : aujourd'hui). / Value date. | |
| name | Yes | Chemin du paramètre (points ou barres obliques). / Parameter path. | |
| historique | No | Nombre de valeurs datées rendues (défaut 5). / Number of dated values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the bar is low; the description still adds real context beyond them: data source (api.fr.openfisca.org), a 24-hour cache, dated historical values, legal references, and a caveat to check the official text. It stops short of describing error behavior for invalid paths or pagination/truncation of the partial-path listing.
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?
Front-loaded with the core purpose, followed by examples, the partial-path rule, and the source/cache caveat; every sentence carries information. The FR/EN duplication doubles the length, which is the main efficiency cost.
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 correctly explains what comes back (value at date, dated history, legal references). Combined with annotations covering the safety profile and full schema coverage, an agent has enough to call it correctly; only edge-case behavior (invalid path, result limits) is missing.
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, but the description adds meaning beyond the schema: the date defaults to today and a partial name path returns a list rather than a single value, which directly explains the name parameter's behavior. It does not elaborate on the historique semantics beyond what the schema already says.
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?
States a specific resource (French socio-fiscal legislation parameter from OpenFisca France) and what it returns (value, dated history, legal references). The two concrete path examples (impot_revenu.bareme_ir_depuis_1945.bareme, taxation_capital.pfu.taux) make the domain unambiguous versus siblings like bofip_get or legifrance_article.
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?
Gives clear operating context: default date is today, a partial path returns the list of matching parameters, and results should be verified against the official text. It does not explicitly name when to prefer a sibling (e.g. legifrance_article for the authoritative text), so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
bofip_get - First observed
bofip_search - First observed
conventions_article - First observed
conventions_get - First observed
conventions_search - First observed
legifrance_article - First observed
openfisca_parameter
Related MCP Connectors
Official tax law at the date of the facts, with official links: 9 European countries, EU, OECD.
Doctrine fiscale française (BOFiP) : recherche, veille et graphe doctrinal. Etalab 2.0.
France LEGI — the official consolidated French codes (Code civil, Code pénal, Code du travail…
French public services: tax, property, admin, education, healthcare, security, risks, legal texts
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceSourced, dated calculations for French income tax and pensions across 32 retirement schemes — every result carries its confidence level, its legal sources and the fiscal year, and returns non_calculable rather than a guess. Hosted remote MCP + REST, paid per call via x402 (USDC on Base); two discovery tools are free.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables read-only querying of official French law — laws, codes, case law, CNIL deliberations and collective agreements — through the Légifrance PISTE API, returning source text with citations and links. It also resolves and verifies legal citations, compares article versions, and searches across multiple legal collections.Apache 2.0
- AlicenseBqualityFmaintenanceEnables AI assistants to calculate French individual income tax and retrieve current tax brackets using official government data. Supports household composition calculations and provides up-to-date tax information for French residents.1114Apache 2.0
- AlicenseAqualityBmaintenancePoint-in-time access to Luxembourg law and ten EU acts: what any law said on a given date, not just the current text. 1,409 consolidated works and 4,705 dated versions from the official Legilux and EUR-Lex sources. Ten read-only tools: as-of text, timelines, per-article history, diffs between dates, and hash-verifiable provenance. No key.109Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.