Skip to main content
Glama

search_doctrine

Read-onlyIdempotent

Opinions of the CADA (access to administrative documents), decisions of the Défenseur des droits, conclusions of the CE's rapporteurs publics, BOFiP (tax guidance), Code du travail numérique, CNIL deliberations. These are NOT court decisions: an opinion does not bind the judge. Keywords in French. Read a document: get_decision(id=…). For conclusions (ariane_crp), the case number is numero; doc_id is an internal identifier.

Example: search_doctrine(query="communication dossier médical", source="cada")

Input Schema

NameRequiredDescriptionDefault
limitNomax 100
queryYeskeywords in French (all required); "exact phrase" in double quotes; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words; symbols (* ( ) …) are ignored.
offsetNopagination (max 5000)
sourceNooptional filter among cada, ddd, ariane_crp, bofip, ctn, cnil (CNIL deliberations)

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / offset / description
      Previous value: -"pagination"New value: +"pagination (max 5000)"
    • changedInput schema / properties / query / description
      Previous value: -"mots-clés (FTS5 : AND/OR/NOT, \"phrase exacte\", mot*)"New value: +"keywords in French (all required); \"exact phrase\" in double quotes; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words; symbols (* ( ) …) are ignored."
    • changedInput schema / properties / source / description
      Previous value: -"filtre optionnel parmi cada, ddd, ariane_crp, bofip, ctn, cnil (délibérations de la CNIL)"New value: +"optional filter among cada, ddd, ariane_crp, bofip, ctn, cnil (CNIL deliberations)"
  2. Changed1 schema field changed
    • changedInput schema / properties / source / description
      Previous value: -"filtre optionnel parmi cada, ddd, ariane_crp, bofip, ctn"New value: +"filtre optionnel parmi cada, ddd, ariane_crp, bofip, ctn, cnil (délibérations de la CNIL)"
  3. Changed4 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"max 100"
    • addedInput schema / properties / offset / description
      Added value: +"pagination"
    • addedInput schema / properties / query / description
      Added value: +"mots-clés (FTS5 : AND/OR/NOT, \"phrase exacte\", mot*)"
    • addedInput schema / properties / source / description
      Added value: +"filtre optionnel parmi cada, ddd, ariane_crp, bofip, ctn"
  4. Added

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the description does not need to repeat safety. It adds valuable non-obvious context: that these are opinions which do not bind a judge, and the identifier distinction between numero and doc_id for conclusions. This goes beyond what annotations or schema provide.

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?

It is front-loaded with the key distinction (not court decisions) and includes a useful example. It is relatively concise, though the list of sources is long and the sentence about identifiers is slightly dense. Overall, it earns its place.

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?

Given the complexity of multiple sources and the need to differentiate from case law tools, the description provides the essential context: what the documents are, their non-binding nature, and a concrete example. Output schema exists, so return values need not be explained. This is complete for an agent to use the tool correctly.

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. The description adds meaning about the source parameter by enumerating the allowed values in natural language and clarifies the use case for arianne_crp conclusions (case number is numero, doc_id is internal). This provides context beyond the schema's generic enum list.

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?

The description names the specific resources (CADA opinions, Défenseur des droits decisions, rapporteurs publics conclusions, BOFiP, Code du travail numérique, CNIL deliberations) and explicitly explains what they are not ('These are NOT court decisions'), which clearly distinguishes it from siblings like search_case_law and search_decisions_citing.

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 gives a clear usage example and explains that these are not binding decisions, which helps an agent understand when to use this rather than case law search. However, it does not explicitly state when NOT to use it or name the alternative (search_case_law) for court decisions, leaving some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources