OSINT Business
Ce serveur MCP permet d’explorer et documenter des entreprises françaises à partir de sources publiques, avec des outils de recherche, d’analyse et de rapport.
Résoudre une entreprise par nom, SIREN/SIRET ou adresse et obtenir sa fiche publique.
Explorer les mandats publics d’un dirigeant et cartographier les ramifications société → personne → entité.
Consulter l’historique BODACC, les sanctions AdlC et router les contrôles réglementaires sectoriels.
Accéder aux données INPI : RNE, actes, comptes annuels PDF et bilans structurés.
Analyser la santé financière et l’empreinte économique à partir des comptes publics.
Rechercher et lire les décisions Judilibre pseudonymisées.
Analyser des mutations DVF à une adresse sans identité des parties.
Produire un rapport d’enquête consolidé ou un triage OSINT avec sources, incertitudes et quality gates.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OSINT BusinessCan you research Danone and list its mandates and BODACC announcements?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agent IA - OSINT Business
Un agent IA à installer dans Codex ou Claude Code pour explorer les entreprises françaises et leurs liens, avec des sources à chaque étape.
OSINT Business équipe votre agent IA de 18 outils : recherche d'entreprises, mandats, annonces BODACC, actes et comptes INPI, décisions publiées et graphes de relations. Une méthode accompagne les outils pour distinguer les faits, les homonymes et les pistes à vérifier.
Le projet s'installe sur votre ordinateur dans Codex ou Claude Code. Vous choisissez votre agent et utilisez vos propres accès. Aucun modèle IA, compte partagé ou service hébergé n'est fourni.
Ce que vous pouvez demander
Identifier une société à partir de son nom ou de son SIREN.
Explorer les sociétés liées par des mandats professionnels, y compris les SCI.
Reconstituer une chronologie à partir des annonces et des documents disponibles.
Comparer des comptes publiés et expliquer les limites des chiffres.
Produire un rapport et un graphe avec les sources, les incertitudes et les vérifications manquantes.
Un dirigeant commun est un lien de mandat. Une adresse commune est un indice. Aucun des deux ne suffit à prouver un contrôle capitalistique ou une irrégularité.
Related MCP server: Bizfile MCP
Commencer
Installez Node.js, version 24 LTS et votre client IA.
Téléchargez ce dépôt avec Code → Download ZIP, puis décompressez-le. Ouvrez un terminal dans le dossier obtenu.
Lancez :
npm run setupCette commande installe les dépendances, prépare le programme et génère les configurations adaptées à votre ordinateur. npm est fourni avec Node.js. Aucune clé n'est nécessaire pour cette étape.
Suite : installation dans Codex ou Claude Code. Le guide explique où cliquer, quoi copier et comment vérifier la connexion. Vous pouvez aussi demander à votre agent de lire ce guide et de vous accompagner.
Les accès, au choix
Accès | Ce qu'il apporte | Compte nécessaire |
Recherche d'entreprises, BODACC, données AdLC | Identité, mandats exposés, annonces, sanctions publiées | Non |
INPI | RNE, actes et comptes accessibles | Votre compte et les droits API correspondants |
Judilibre | Décisions de justice publiées | Votre application PISTE |
MCP data.gouv.fr | Découverte de jeux et de ressources supplémentaires | Non pour le point d'accès public |
Origami, OpenLégi | Compléments optionnels | Selon le service, avec votre propre compte |
Les connexions facultatives ne bloquent pas le démarrage. Une fois connectées, l'agent doit les utiliser selon le besoin : Origami pour les ramifications, data.gouv.fr pour compléter les sources, OpenLégi pour les questions juridiques et un lecteur documentaire pour les pièces. La skill précise ces déclencheurs et demande de signaler les accès indisponibles. Créer et configurer ses accès.
Ce qui est fourni
src/ Les connecteurs et les analyses
scripts/ Installation, diagnostic et lancement MCP
.agents/skills/osint-business/ La méthode de recherche
AGENTS.md Instructions pour Codex
CLAUDE.md Entrée pour Claude Code
docs/ Installation, accès, outils et limites
tests/ Cas fictifs, sans enquête réelleInventaire des outils · Sécurité et confidentialité · Exemple de demande
Limites et coût
Le code est libre. L'utilisation de Codex, Claude Code ou d'un autre modèle dépend de votre offre. Les fournisseurs de données peuvent appliquer des quotas ou changer leurs conditions. Le projet ne souscrit aucun abonnement et ne fournit aucune clé.
La couverture des registres varie. Une recherche sans résultat n'établit pas l'absence de sanction ou de contentieux. Les actes doivent être lus avant toute conclusion sur leur contenu. Le routeur réglementaire propose des contrôles ; il ne les réalise pas. L'agent peut commettre des erreurs : vérifiez les pièces décisives avant de diffuser un résultat.
Le serveur tourne localement, mais il interroge les sources en ligne. Les résultats transmis à votre agent peuvent être traités par son fournisseur IA, selon votre configuration.
Développement
npm run build
npm test
npm run smokeLes tests utilisent des données fictives et des requêtes simulées. Le test MCP vérifie la découverte des outils et le refus d'un argument invalide, sans lancer d'enquête réelle. Les accès authentifiés INPI et PISTE doivent être vérifiés avec votre compte.
Licences
Code : MIT. Documentation, méthode, skill et identité graphique : CC BY-SA 4.0, attribution « OSINT Business ». Les données récupérées et les dépendances conservent leurs propres licences. Le projet est indépendant des organismes cités.
Available Tools
18 toolsanalyze_economic_footprintAnalyser la santé financière et l’empreinte économiqueB
Analyse gratuitement les exercices publics d’une société, calcule des indicateurs reproductibles et, si les preuves sont fournies, distingue détention, rémunération, dividendes et exposition économique d’une personne. Toute fourchette de valeur est un scénario explicite, jamais un prix certain ni un patrimoine personnel.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | ||
| economic_footprint | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real context: 'gratuitement' (cost), 'indicateurs reproductibles' (deterministic), and a strong output caveat that value ranges are explicit scenarios, never a certain price nor personal wealth. It omits permission/computation-source details, but the interpretive framing is unusually valuable.
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, front-loaded with the action and scoped by the 'if evidence is provided' qualifier. Dense but no filler; the caveat sentence earns its place given the valuation ambiguity.
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 deeply nested object with 0% schema coverage, no annotations, and no output schema, the description is far too thin. It omits the required evidence/limitations contract on nearly every sub-object and says nothing about the input's complexity, leaving the agent underprepared for a 100-item flows array and per-statement evidence requirements.
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 0%, so the description must compensate. It loosely maps the four concepts (détention=ownership, rémunération, dividendes, exposition) onto nested fields, but never addresses the required 'siren' or the mandatory evidence/limitations scaffolding, so it only partially fills the gap.
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 (analyse) plus resource (exercices publics d'une société) and the outputs it computes (indicateurs reproductibles, détention/rémunération/dividendes/exposition économique). The scope is clear enough to distinguish it from simple getters like get_company_snapshot, though it never names a sibling explicitly.
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 only conditional offered is 'si les preuves sont fournies', which is behavioral rather than a routing rule. It never says when to pick this over get_company_snapshot or build_company_investigation_report, nor any prerequisite such as needing a resolved SIREN first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_company_investigation_reportConstruire un rapport d’enquête consolidéA
Orchestre les sources officielles autour d’un sujet pivot et exige un chemin de preuve pour chaque ramification. Il retourne identité, carte relationnelle, constats matériels documentés, SCI prioritaires, disponibilité financière, procédures, sanctions, couverture, contradictions, quality gates et menu d’approfondissement. Les liens tirés des actes peuvent être injectés comme chemins documentaires ; famille, détention, usufruit, représentation et transactions ne sont jamais inférés d’un nom ou d’une adresse.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | ||
| max_people | No | ||
| economic_footprint | No | ||
| documentary_findings | No | ||
| external_observations | No | ||
| max_companies_per_person | No | ||
| documentary_relationship_paths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose meaningful behavior: it mandates a documentary evidence path per ramification, allows links from acts to be injected as documentary paths, and states that family, ownership, usufruct, representation and transactions are never inferred from a name or address. It omits cost/latency, auth needs and whether the call mutates state, which keeps it short of 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?
Three sentences, front-loaded with the orchestration role and a single dense enumeration of outputs, followed by the input-constraint note. The output list is long but each item earns its place; no filler or repetition against the title.
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?
There is no output schema, and the description usefully enumerates what the report returns, which compensates for that gap. However, for a 7-parameter tool with nested objects and zero schema descriptions, the semantics of most inputs and the cost/aggregation implications of orchestrating many official sources remain unexplained.
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 0% across 7 parameters, several deeply nested, so the description must compensate. It adds real meaning for documentary_relationship_paths (injectable links drawn from acts) and touches financing via 'disponibilité financière', but says nothing about siren, max_people, max_companies_per_person or the documentary_findings/external_observations structures.
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 gives a specific verb+resource ('Orchestre les sources officielles' producing a consolidated investigation report) and enumerates the returned sections (identity, relationship map, material findings, SCI, financing, procedures, sanctions, contradictions, quality gates). This clearly separates it from single-source siblings like get_company_snapshot or analyze_economic_footprint, although no sibling is named explicitly.
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 states the tool works around 'un sujet pivot' and requires an evidence path per branch, which implies heavy multi-source investigation, but it never says when to prefer this over cheaper siblings (snapshot, mandate graph) or what prerequisites must be gathered first. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_company_mandate_graphCartographier les ramifications publiquesB
Construit un graphe de découverte autour d’une société ou SCI et conserve, pour chaque entité liée, le chemin société pivot → personne → entité. Les arêtes représentent des rôles publics, jamais automatiquement une participation au capital ou une relation familiale.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes | ||
| max_people | No | ||
| max_companies_per_person | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses a semantic caveat — edges represent public roles and never automatically capital participation or family ties — which prevents misinterpretation. However, it omits traversal limits, permission/cost considerations, and what the returned graph looks like.
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 with no waste: purpose first, then the semantic caveat about edges. Well front-loaded and appropriately sized.
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 tool with no output schema and no annotations, the description explains the graph's meaning but leaves the traversal-controlling parameters and the return structure unaddressed. It is adequate on intent but incomplete on operation.
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 0%, so the description must compensate, yet it never mentions 'siren', 'max_people', or 'max_companies_per_person'. The two bounding parameters that control graph breadth are undocumented in both the schema and the description, a significant gap for a graph-expansion tool.
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 names a specific verb ('Construit un graphe') and resource ('autour d'une société ou SCI') and describes the resulting artifact (paths pivot company → person → entity), which is unique among siblings. It does not explicitly differentiate itself from tools like search_person_mandates or get_company_snapshot, but the graph-building scope is clear.
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?
There is no stated trigger for when to use this tool versus siblings such as search_person_mandates or get_company_snapshot, and no exclusions or prerequisites. Usage is only loosely implied by 'autour d'une société ou SCI'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_inpi_act_pdfTélécharger un acte PDF officiel DATA INPIA
Télécharge dans le projet un acte ou des statuts publics à partir de l’identifiant renvoyé par get_inpi_attachments. Vérifie la signature PDF et renvoie le chemin local pour lecture avec un outil documentaire.
| Name | Required | Description | Default |
|---|---|---|---|
| act_id | Yes | ||
| output_directory | No | Dossier relatif à la racine du projet ; artifacts/inpi par défaut. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that the file is written into the project directory, that the PDF signature is verified, and that a local path is returned. However, it omits permissions/auth requirements, whether an existing file is overwritten, and any rate or size limits for a write-to-project operation.
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?
A compact two-clause sentence with no filler. The action and its data source are front-loaded, and the follow-up step is appended without bloat.
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 the return value (chemin local). For a 2-parameter download tool with no annotations, the key facts an agent needs — source of the ID, destination behavior, signature check, and next step — are present, though auth and overwrite behavior are 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 50%: output_directory has a schema description (default artifacts/inpi), act_id has none. The description adds real meaning for act_id by tying it to get_inpi_attachments, but says nothing about the output_directory parameter or act_id format/length constraints 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?
States a specific verb (télécharge) and resource (un acte ou des statuts publics au format PDF), plus its scope (dans le projet). It implicitly distinguishes itself from the sibling download_inpi_balance_pdf by naming 'acte ou statuts' rather than a balance, though it never names the sibling directly.
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?
Explicitly routes the agent: the act_id comes from get_inpi_attachments, an upstream sibling tool. It also tells the agent what to do afterwards (lecture avec un outil documentaire). No when-not guidance or exclusion of alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_inpi_balance_pdfTélécharger des comptes annuels PDF officiels DATA INPIA
Télécharge dans le projet un bilan public à partir de l’identifiant bilans renvoyé par get_inpi_attachments. Refuse les comptes confidentiels, vérifie la signature PDF et renvoie le chemin local pour lecture avec un outil documentaire.
| Name | Required | Description | Default |
|---|---|---|---|
| balance_id | Yes | ||
| output_directory | No | Dossier relatif à la racine du projet ; artifacts/inpi par défaut. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses a refusal rule (comptes confidentiels), an integrity check (vérifie la signature PDF), and the output form (local path for a document tool). It omits permissions/auth requirements and failure modes, keeping it short of 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?
A single dense sentence, front-loaded with the action and source of input, then the behavioral caveats and the return. No filler, though the run-on construction packs four ideas into one clause chain.
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?
No output schema exists, and the description covers the essential lifecycle: input origin, refusal condition, verification, and returned artifact for downstream reading. What is missing (auth scope, error/rate-limit behavior) is secondary for a simple two-parameter download.
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 50% and output_directory is already documented in the schema with its default. The description compensates partially by explaining where balance_id originates, but adds no syntax or format detail beyond that. 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 names a specific verb (télécharge) and resource (bilan public / comptes annuels PDF), and explicitly ties the input to its source: the identifiant bilans returned by get_inpi_attachments. An agent can distinguish it from download_inpi_act_pdf (acts) and get_inpi_structured_balance (structured data) without opening a 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?
It states the prerequisite clearly (balance_id comes from get_inpi_attachments) and the downstream step (chemin local pour lecture avec un outil documentaire). However it does not contrast against the obvious siblings download_inpi_act_pdf or get_inpi_structured_balance, so the agent must infer when the PDF route is preferred over structured data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bodacc_historyConsulter l’historique BODACCC
Retourne les annonces BODACC récentes ou celles d’une famille précise, notamment les procédures collectives.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| siren | Yes | ||
| family | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It discloses the returned resource and that a family filter exists, but says nothing about ordering, pagination, the 50-item default/100 max, or whether history is bounded in time.
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?
A single efficient sentence with the resource front-loaded. It wastes nothing, though its brevity is partly a symptom of under-specification rather than tight writing.
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 3-parameter tool with no annotations, no output schema, and 0% schema description coverage, the description leaves out the required siren, the limit behaviour, and most enum values. An agent cannot invoke it confidently from this text alone.
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 0%, so the description must compensate, and it only partially does. It alludes to the family enum via 'famille précise' and 'procédures collectives' (collective), but never mentions the required siren parameter, the limit default/maximum, or the other enum values (creation, modification, radiation, dpc).
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 (Retourne) and resource (annonces BODACC) with a scoping qualifier (récentes / d'une famille précise). It is understandable in isolation, but with no direct BODACC sibling named and no differentiation from the many other lookup tools, it stops short of a 5.
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?
There is no explicit when-to-use statement, no prerequisites, and no alternative tool named. The phrase 'ou celles d'une famille précise' hints at a filtering scenario but gives no guidance on when a caller should pick this over get_inpi_rne_record or search_judilibre.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_snapshotFiche publique d’une entrepriseB
Récupère une fiche publique par SIREN : identité, siège, activité, tranche d’effectif datée, dirigeants et finances disponibles.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It usefully discloses the returned content areas (including a dated headcount range and 'finances disponibles', hinting at conditionally-present data), but omits permission/auth requirements, whether some fields may be absent, and any response-shape detail.
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?
A single front-loaded sentence with zero waste; the verb+resource+payload lead immediately.
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 one-parameter lookup with no output schema, the description adequately frames what comes back, but the absence of usage routing, SIREN format guidance, and partial-data behavior leaves clear gaps.
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 0% and the single siren parameter has no schema description. The description adds that the lookup key is a SIREN, which is meaningful, but gives no format, validation, or example detail to compensate for the empty 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?
States a specific verb (Récupère) and resource (fiche publique) and enumerates the returned data sections (identité, siège, activité, effectif datée, dirigeants, finances). This lets an agent distinguish it from a bare resolver, though it doesn't explicitly differentiate itself from siblings like resolve_company or triage_company.
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?
Says nothing about when to use this tool versus the many sibling company tools, nor any prerequisites. Usage is only implied by the single SIREN input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inpi_attachmentsLister les actes et comptes DATA INPIC
Liste les actes, statuts, comptes annuels publics et bilans structurés associés à un SIREN dans le RNE.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Liste' implies a read-only enumeration, but there is no disclosure of return format, pagination, permissions, or whether results are metadata versus linked documents. For a tool with zero annotation coverage this is a substantial gap.
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?
A single efficient sentence with the scope front-loaded and no wasted clauses. It is appropriately sized for a one-parameter listing tool, though it could carry one more clause without becoming bloated.
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, no annotations, and one param at 0% coverage, the description should clarify what is actually returned. It names the resource types, which partially serves that role, but leaves open whether the result is a list of attachments/metadata or the documents themselves and how they are ordered or paged.
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 has 0% description coverage, so the description must compensate; it mentions the parameter only indirectly by stating the resources are 'associés à un SIREN'. That ties the single obvious argument to its meaning, but adds no format, validation, or example beyond the parameter name itself.
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 ('Liste') and enumerates the concrete resources (actes, statuts, comptes annuels publics, bilans structurés) scoped to a SIREN in the RNE. It is clear enough to distinguish from download-style siblings, but it never explicitly says it returns a list of attachments/metadata rather than content, nor names a sibling it is not.
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?
There is no when-to-use guidance and no reference to alternatives. With siblings like get_inpi_rne_record, get_inpi_structured_balance, and download_inpi_act_pdf in the same family, the agent gets no signal about when this listing is the right call versus those tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inpi_rne_recordConsulter la fiche officielle RNEB
Récupère l’état officiel courant d’une entreprise auprès de DATA INPI. Les coordonnées personnelles, adresses de personnes physiques et jours de naissance sont masqués par défaut.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose a genuinely useful trait beyond the schema: personal contact details, natural-person addresses and birth days are masked by default. It still omits auth requirements, read-only status, caching/freshness, and error behavior for a network-backed lookup.
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 short sentences, front-loaded with the core action and followed by the privacy caveat. No filler, though it is under-specified rather than over-sized.
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 and no annotations, the description should do more: it names the resource and the masking behavior but leaves the return shape, the meaning/format of 'siren', and any freshness or read-only semantics unexplained. Adequate but with clear gaps.
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 documents only 'siren' at 0% description coverage, and the description never mentions the parameter, its expected format, or that it is required. This is a one-parameter tool where the description should compensate for the empty schema but does not.
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 (Récupère) and resource (l'état officiel courant d'une entreprise / fiche officielle RNE) plus the authoritative source (DATA INPI). However, it never distinguishes itself from close siblings like get_company_snapshot or resolve_company, which an agent could easily confuse with this record lookup.
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?
There is no explicit when-to-use guidance and no mention of alternatives, despite many sibling tools (get_company_snapshot, resolve_company, get_bodacc_history) covering overlapping ground. The agent is left to infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inpi_structured_balanceLire un bilan structuré DATA INPIB
Récupère un bilan public structuré à partir de l’identifiant bilansSaisis renvoyé par get_inpi_attachments.
| Name | Required | Description | Default |
|---|---|---|---|
| balance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It confirms a retrieval (read) operation and the ID dependency, but discloses nothing about authentication, rate limits, failure modes when the ID is invalid, or the returned structure — gaps that matter for a read tool with zero annotation coverage.
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?
A single, well-formed sentence with zero waste, front-loading the resource before the identifier requirement.
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 one-parameter read tool with no output schema and no annotations, the description covers the essential input dependency but omits the return shape and safety/behavioral context, leaving moderate gaps an agent would otherwise have to discover.
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 single parameter has 0% schema coverage (just 'string', 5-200 chars), so the description compensates well by explaining that balance_id is the bilansSaisis identifier produced by get_inpi_attachments, which is the meaning an agent needs to populate it correctly.
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 (Récupère) and resource (bilan public structuré), and the identifier source pinpoints exactly which balance sheet. It implicitly separates itself from get_inpi_attachments (which supplies the ID) and download_inpi_balance_pdf (unstructured PDF), though the distinction from the PDF variant is only implied by the word 'structuré'.
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 establishes a chained workflow by requiring the bilansSaisis identifier returned by get_inpi_attachments, which tells the agent the prerequisite step. However, it never states when to prefer this over the sibling download_inpi_balance_pdf, so the usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_judilibre_decisionLire une décision JudilibreA
Récupère le texte intégral pseudonymisé et les métadonnées d’une décision à partir de son identifiant Judilibre.
| Name | Required | Description | Default |
|---|---|---|---|
| decision_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the returned text is pseudonymized and that metadata accompanies it, implying a read-only fetch. It does not state behavior for an unknown/invalid ID, size limits, or whether the full text can be truncated.
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?
A single well-formed sentence that front-loads the verb and the returned content, with the lookup key trailing. No 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 one-parameter read tool with no output schema, the description covers the essential contract: input is a Judilibre ID, output is full pseudonymized text plus metadata. Only edge-case behavior and ID format are 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 0%, so the description must compensate; it identifies the parameter's meaning as a Judilibre identifier rather than an ECLI, nomer or other reference, which is real added value over a bare 'string, maxLength 300'. The exact expected format is still unspecified.
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 (récupère) plus the resource (décision), the lookup key (identifiant Judilibre) and the payload (texte intégral pseudonymisé + métadonnées). It is distinguishable from the sibling search_judilibre by the ID-based retrieval framing, though it never explicitly names that contrast.
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 phrase 'à partir de son identifiant Judilibre' implies the caller must already hold an identifier, which indirectly suggests search_judilibre is the way to obtain one. However, no when-to-use/when-not statement or explicit alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_dvf_property_transactionsRechercher des mutations DVF à une adresseC
Interroge le fichier départemental officiel DVF, filtre une adresse et un prix éventuel, puis regroupe les lignes par id_mutation afin de ne pas compter plusieurs fois une même vente. DVF ne publie pas l’identité des parties.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| date_to | No | ||
| date_from | No | ||
| department | Yes | ||
| postal_code | No | ||
| street_name | Yes | ||
| target_value | No | ||
| max_mutations | No | ||
| street_number | Yes | ||
| value_tolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and it does disclose two meaningful traits: rows are grouped by id_mutation to avoid double-counting a single sale, and DVF does not publish the identity of the parties (a data-limitation notice). However it omits read-only confirmation, whether max_mutations truncates results, rate limits, and return shape for a 10-parameter query 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?
Two tight sentences, front-loaded with the core verb and resource, followed by the deduplication and privacy caveats. No filler. Slightly compressed given the amount of unexplained surface area, but structurally sound.
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 10-parameter tool with no annotations and no output schema, the description is too thin: it does not explain most parameters, the return format, or how results are capped. An agent can identify the tool's gist but lacks enough to invoke it confidently.
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 0% and there are 10 parameters, so the description must compensate, but it only hints at address filtering and an optional price filter ('un prix éventuel'). It says nothing about year, department, date_from/date_to, max_mutations, or value_tolerance, leaving most inputs unexplained.
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 chain (interroge, filtre, regroupe) on a clearly named resource (fichier départemental officiel DVF) and even describes the deduplication intent. It is unambiguous what the tool does. It doesn't explicitly contrast with siblings, but no sibling overlaps this real-estate domain, so differentiation is moot.
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?
There is no explicit when-to-use or when-not-to-use guidance, nor any named alternative. Usage must be inferred from the description of filtering address/price. Nothing tells the agent under what circumstances this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_companyRésoudre une entreprise françaiseC
Recherche gratuite par dénomination, adresse, SIREN ou SIRET. Retourne les candidats diffusables et leur source officielle.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| address | No | ||
| commune | No | ||
| postal_code | No | ||
| activity_code | No | ||
| director_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the search is free and returns distributable candidates with their official source, but says nothing about rate limits, authentication, pagination, error behavior, or how the result set is bounded by the limit parameter.
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 two short sentences, front-loaded with the core action and the accepted identifiers. It is efficient and free of filler, though its extreme brevity borders on under-specification for a 7-parameter tool.
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 7 parameters, zero schema coverage, no annotations, and no output schema, the description is not complete enough. It omits parameter guidance, return shape, pagination, and distinctions from sibling resolution or snapshot tools.
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 0%, so the description must compensate for all 7 parameters. It mentions name, address, SIREN, and SIRET as query inputs, but does not explain limit, commune, postal_code, activity_code, or director_name, nor how the separate address parameter relates to address-in-query usage.
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 ('Recherche') and resource ('entreprise française'), and mentions the accepted identifiers (dénomination, adresse, SIREN, SIRET). It distinguishes itself as a free resolution/search tool rather than a snapshot or report, but does not explicitly contrast with sibling tools like get_company_snapshot.
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 context by calling the search 'gratuite' and listing accepted input types, but gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance. An agent can infer it is a first-step resolution tool, but alternatives are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_regulatory_checksRouter les contrôles réglementaires sectorielsB
Sélectionne gratuitement les registres et régulateurs officiels pertinents à partir du SIREN et du code NAF : gels d’avoirs transversal, finance, CNAPS, CNB, ICPE, RappelConso/DGCCRF, CNIL, santé, transport, RGE ou formation. Le routage ne prétend jamais que les contrôles ont déjà été exécutés.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose two valuable traits: the call is free and it explicitly disclaims that checks have been executed ('Le routage ne prétend jamais que les contrôles ont déjà été exécutés'), preventing a serious misinterpretation. It says nothing about auth, rate limits, or what is returned, so gaps remain.
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, front-loaded with the core action, followed by the important scope disclaimer. The mid-sentence enumeration of a dozen domains is long but each item earns its place by telling the agent what coverage to expect.
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?
There is no output schema and no annotations, so the description should ideally say what a successful routing returns (a list of registers/regulators to query). It conveys scope and the non-execution caveat but leaves the response shape to inference, leaving a modest completeness gap for a single-parameter 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 0%, so the description must compensate. It explains that routing is driven by the SIREN (and mentions a NAF code that is not actually a schema parameter, a minor inconsistency with the single 'siren' field), but adds no format, validation, or lookup semantics beyond that.
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: it selects the relevant official registers/regulators from SIREN and NAF code, enumerating the covered domains (asset freezes, finance, CNAPS, ICPE, CNIL, etc.). The purpose is unmistakable, though it never contrasts itself with any sibling tool, which no other sibling obviously duplicates.
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 signals cost ('gratuitement') and the routing-only nature, which implicitly tells the agent when to call it (upstream of actual checks). But it never states when NOT to use it or which sibling to prefer, so usage is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_adlc_sanctionsRechercher les sanctions financières AdlCA
Recherche gratuitement dans le jeu officiel des entreprises sanctionnées financièrement par l’Autorité de la concurrence depuis 2009.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior; it adds that the search is free and that the dataset is official and covers sanctions since 2009. However, it omits authentication requirements, rate limits, matching behavior, and the format of returned results, leaving key behavioral traits unexplained.
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?
A single, front-loaded sentence with no filler. It efficiently conveys purpose and scope.
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 one-parameter search tool with no output schema or annotations, the description covers the dataset and temporal scope but leaves the parameter semantics and return behavior unaddressed, so it is not fully complete for correct invocation.
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 single parameter company_name has 0% schema description coverage, and the description never mentions the parameter or explains what value to supply (e.g., legal name, SIREN, partial match). The schema only provides type and minLength, so the description does not compensate for the coverage gap.
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') and a precisely scoped resource (the official dataset of companies financially sanctioned by the French Competition Authority since 2009). This distinguishes it from generic company or regulatory tools among the siblings.
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 adverb 'gratuitement' hints at cost and the scope 'depuis 2009' gives temporal bounds, but there is no explicit guidance on when to prefer this tool over siblings like route_regulatory_checks or search_judilibre, nor any exclusions or prerequisites. Usage is only implied by the searchable dataset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_judilibreRechercher dans JudilibreC
Recherche dans les décisions judiciaires ouvertes et pseudonymisées. Un résultat doit être qualifié selon le rôle de l’entreprise et ne constitue jamais un casier judiciaire.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | score | |
| order | No | desc | |
| query | Yes | ||
| types | No | ||
| fields | No | ||
| date_end | No | ||
| page_size | No | ||
| date_start | No | ||
| jurisdictions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose two genuinely useful traits: the corpus is open and pseudonymized, and results are not a criminal record and must be qualified by the company's role. It says nothing about pagination, result volume, rate limits, or any authentication/permission requirement, so the behavioral picture is only partial.
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 short sentences, front-loaded with the core purpose and no padding. The second sentence is a legal qualification caveat rather than operational detail, but it is short and arguably relevant to correct interpretation of results.
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 10-parameter search tool with no annotations and no output schema, the description is far too thin: it explains neither the filter parameters nor anything about the shape or pagination of results. The legal caveat is valuable but does not cover the operational information an agent needs to call this 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?
There are 10 parameters at 0% schema description coverage, yet the description names none of them — types, fields, jurisdictions, date_start/date_end, page, page_size, sort and order are all undocumented anywhere. Only the existence of a free-text query is weakly implied by 'Recherche', so the description fails to compensate for the coverage gap.
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 names a specific verb ('Recherche') and a specific resource ('décisions judiciaires ouvertes et pseudonymisées'), so an agent immediately knows this is a full-text search over open case law. It does not, however, distinguish itself from the sibling get_judilibre_decision (search vs. fetch a single decision), leaving that routing to inference.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as get_judilibre_decision or search_adlc_sanctions. The second sentence is a legal caveat about qualifying results, not usage guidance, so the agent gets no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_person_mandatesRechercher les mandats publics d’un dirigeantC
Recherche les sociétés liées à une personne par mandats publics. Fournir le mois de naissance (YYYY-MM) augmente fortement la fiabilité du rapprochement.
| Name | Required | Description | Default |
|---|---|---|---|
| nom | Yes | ||
| prenoms | No | ||
| max_results | No | ||
| date_naissance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It does not mention permissions required, rate limits, result format, or what happens if no mandates are found. The hint about birth month improving reliability is useful but limited.
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 two concise sentences that front-load the core purpose. It is appropriately sized and easy to parse, though it could be slightly more informative without being verbose.
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 annotations, no output schema, and 0% schema description coverage, the description is incomplete. It should explain return values, parameter semantics, and usage context to compensate for the lack of structured documentation. As is, an agent would struggle to invoke this tool correctly beyond the most basic call.
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 0%, meaning no parameter descriptions exist in the schema. The description only clarifies the effect of 'date_naissance' (birth month improves matching reliability) but says nothing about 'nom', 'prenoms', or 'max_results'. This leaves three of four parameters semantically unclear, a significant gap given the zero coverage.
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 clear verb+resource: 'Recherche les sociétés liées à une personne par mandats publics'. This accurately specifies that it searches for companies linked to a person via public mandates. It does not explicitly distinguish itself from siblings like build_company_mandate_graph, but the search scope is clear.
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 no guidance on when to use this tool versus alternatives. It mentions providing birth month increases reliability, but does not state when this tool is preferred over other mandate-related tools such as build_company_mandate_graph or get_inpi_rne_record. No exclusions or use-case context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triage_companyTriage OSINT gratuit d’une entrepriseC
Alias compatible du rapport consolidé : couverture tolérante aux pannes, ramifications, contradictions, quality gates et pistes d’approfondissement ; ne certifie jamais l’absence de risque.
| Name | Required | Description | Default |
|---|---|---|---|
| siren | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose meaningful traits: fault-tolerant coverage, contradictions, quality gates, and the explicit disclaimer that it never certifies absence of risk. However it omits cost/latency expectations, whether the call is idempotent, and what the report actually returns.
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?
It is a single efficient sentence with no padding, but it is packed with unexplained jargon ('quality gates', 'ramifications', 'alias compatible') that front-loads abstraction rather than the concrete operation.
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 tool with no annotations, no output schema, and an undocumented required parameter, a one-sentence jargon-heavy description is not complete enough. The agent lacks guidance on identifier format, expected output, and how this differs from sibling report tools.
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 single required 'siren' parameter has 0% schema description coverage and is never referenced in the description. No format, length, or validation guidance is offered, so the description adds nothing over the bare 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 frames the tool as an 'alias compatible du rapport consolidé' producing coverage, branches, contradictions and quality gates, which hints at a triage report, but it never states plainly that it runs an OSINT triage on a company. There is no differentiation from siblings like build_company_investigation_report or get_company_snapshot, so an agent cannot easily tell what unique output this yields.
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?
There is no when-to-use guidance and no mention of alternatives among the many sibling tools. The only usage-adjacent statement is the caveat 'ne certifie jamais l'absence de risque', which is a limitation, not routing guidance.
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.
18 tool updates
v1.0.0- First observed
analyze_economic_footprint - First observed
build_company_investigation_report - First observed
build_company_mandate_graph - First observed
download_inpi_act_pdf - First observed
download_inpi_balance_pdf - First observed
get_bodacc_history - First observed
get_company_snapshot - First observed
get_inpi_attachments - First observed
get_inpi_rne_record - First observed
get_inpi_structured_balance - First observed
get_judilibre_decision - First observed
query_dvf_property_transactions - First observed
resolve_company - First observed
route_regulatory_checks - First observed
search_adlc_sanctions - First observed
search_judilibre - First observed
search_person_mandates - First observed
triage_company
TDQS
Scored across 18 tools
Most tools target clearly distinct resources (DVF, BODACC, Judilibre, INPI, sanctions, mandates). However, triage_company is explicitly described as an 'alias' of build_company_investigation_report, creating a genuine duplicate, and resolve_company/get_company_snapshot/get_inpi_rne_record overlap somewhat on identity retrieval.
Every tool follows a clean snake_case verb_noun convention (resolve_company, get_company_snapshot, search_judilibre, build_company_mandate_graph, download_inpi_act_pdf). No mixing of styles or vague verbs.
18 tools is on the heavier side but justified by a broad multi-source OSINT domain spanning INPI, BODACC, DVF, Judilibre, and ADLC. Each tool earns its place except the redundant triage_company alias.
Coverage is strong: identity resolution, snapshots, financials, property, regulatory routing, person mandates, graphs, reports, court records, sanctions, and INPI act/balance downloads. Minor gap: no explicit update/annotation or comparison tooling, but core investigation lifecycle is well covered.
Maintenance
Related MCP Connectors
Official French and European company data for AI agents, paid per call (x402) or by API key.
Sourced answers on FR/EU rules + French company search (SIREN, NAF) for agents, quoted and budgeted
Search French companies: financials, directors, ownership, M&A and insolvency events.
- mcpOAuthai.astrofabric
Agentic AI for business intelligence: discover, verify and enrich company and contact data.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables interaction with the French business search API from data.gouv.fr, allowing users to search for French companies by text or geographical criteria and access essential business information.227 npm19MIT
- AlicenseNot gradedqualityAmaintenanceProvides real-time company verification and corporate intelligence by accessing global registries like UK Companies House, Singapore ACRA, and OpenCorporates. It enables AI agents to perform KYC tasks, retrieve company profiles, and conduct automated risk assessments for due diligence workflows.110 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search and retrieve detailed profiles of 25 million French companies from the official government registry, including directors, activity codes, and establishment data, without requiring an API key.-
- FlicenseNot gradedqualityCmaintenanceProvides AI agents with access to French public registries including company records, property sale prices, housing energy performance, and short-term rental rates via MCP tools.-