Skip to main content
Glama

Fiscalité française ouverte, par BENSAID Avocats

Server Details

Official French tax texts, dated and sourced: 237 treaty instruments by article, BOFiP, CGI, LPF.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct source+granularity: BOFiP (get/search), treaties (search instruments / get full instrument / get single article), Légifrance code articles, and OpenFisca parameters. The get-vs-search and full-instrument-vs-article boundaries are explicitly clarified in the descriptions, so an agent can select confidently.

Naming Consistency5/5

Every tool follows a predictable source_operation pattern (bofip_get, bofip_search, conventions_get, conventions_search, conventions_article, legifrance_article, openfisca_parameter). The convention is applied uniformly with clear source prefixes, making the set easy to parse.

Tool Count5/5

Seven tools is well-scoped for a tax-law research server. Each tool earns its place by covering either a distinct source or a distinct granularity (search vs. full text vs. single article/parameter) with no redundant entries.

Completeness4/5

Core retrieval is well covered across BOFiP, treaties, code articles, and parameters, and search+get pairs exist where needed. However, there is no search over Légifrance code articles and no coverage of case law (jurisprudence), which are notable gaps for full tax-research workflows.

Available Tools

7 tools
bofip_getLire un document BOFiPA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
boiYesIdentifiant BOI. / BOI identifier.
debutNoPosition de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut). / Start offset for paging.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

conventions_articleLire un article exact d'une convention fiscaleA
Read-onlyIdempotent
Inspect

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-05, 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-05, Etalab 2.0 open licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
acteNoIdentifiant d'acte (prioritaire sur pays). / Instrument id (overrides country).
paysNoPays 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.
objetNorevenu (défaut) ou successions, donations... / Subject (default: income).
partieNoprotocole, echange... (par défaut le corps de l'acte). / Part of the instrument.
articleYesNuméro d'article : 18, 1er, 28 bis. / Article number.
paragrapheNoNuméro de paragraphe (optionnel). / Paragraph number.

TDQS

A4/5.0
Behavior4/5

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 genuinely useful context beyond the annotations: possible warnings (denounced instrument, not in force, OCR text, amendments to verify), the authoritative source (official PDFs on impots.gouv.fr), corpus date and licence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the opening clause, and the remaining sentences each carry content (return payload, parameters, source/date/licence). The bilingual duplication of the source/licence sentence adds length without new information, keeping it short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 burden of describing the response, and it does so (exact text, instrument title, official PDF, amendment notes, warnings). Source, corpus date and licence round out the context; only the ambiguity of `acte` vs `pays` precedence and pagination/availability limits go unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so a 3 is the baseline. The description does add meaning beyond the schema by clarifying that `objet: successions` selects the succession convention specifically and by giving article-format examples (18, 1er, 28 bis), which slightly exceeds the structured field text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: returning the 'Texte EXACT' of one article of a French tax treaty, with the instrument title, official PDF, amendment notes and warnings. An agent can distinguish it from the search-oriented siblings, but no sibling tool is named explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent how to drive the lookup (give `pays` or `acte` plus `article`), and when to use `objet: successions` for the succession convention, plus the optional `paragraphe` narrowing. There is no explicit when-not-to-use guidance or named alternative (e.g. use conventions_search to find an article), so it stops short of full routing advice.

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 conventionnelA
Read-onlyIdempotent
Inspect

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-05, 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-05, Etalab 2.0 open licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
acteYesIdentifiant de l'acte, ex. conv-214. / Instrument id.
debutNoPosition de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut). / Start offset for paging.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe read-only, idempotent, closed-world profile, so the description earns credit for adding behavioural detail beyond them: fixed 40000-character paging, the suite.debut resume token, and the official PDF link returned with the text. It does not explain error behaviour for an unresolvable id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the tool's purpose and paging scope before the provenance/licence boilerplate. The bilingual duplication is a deliberate corpus convention rather than padding, though the source/licence sentence is less essential to invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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: full text, PDF link, paging chunks and the suite.debut continuation field. What is missing is failure behaviour (invalid id, out-of-range debut), so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both acte and debut are already documented in the schema; baseline 3 applies. The description adds only the resume hint (reprendre suite.debut) on top of the schema's pagination note, and no additional meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('Texte intégral d'un acte … par son identifiant acte'), names the accepted id format (conv-N) and its producer (conventions_search), and distinguishes itself from the sibling conventions_article. An agent can tell exactly what this returns versus the other conventions_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes single-article lookups to conventions_article and explains where the required id comes from (conventions_search). It lacks broader exclusion guidance (e.g. cost/size caveats for very large acts), but the primary sibling choice is unambiguous.

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYescgi ou lpf.
articleYesNuméro d'article : 150-0 B ter, 757 B, L. 64. / Article number.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate de valeur AAAA-MM-JJ (défaut : aujourd'hui). / Value date.
nameYesChemin du paramètre (points ou barres obliques). / Parameter path.
historiqueNoNombre de valeurs datées rendues (défaut 5). / Number of dated values.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 7 tool updates
    • First observedbofip_get
    • First observedbofip_search
    • First observedconventions_article
    • First observedconventions_get
    • First observedconventions_search
    • First observedlegifrance_article
    • First observedopenfisca_parameter

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Sourced, 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.
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    11
    14
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Point-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.
    10
    9
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources