Skip to main content
Glama

get_company_graph

Read-onlyIdempotent

Cartographie des entites autour d'UNE entreprise (par SIREN) : graphe ORIENTE et TYPE construit sur les mandats RCS/RNE et les liens de groupe.

Utiliser cet outil pour visualiser ou analyser la structure d'un groupe : holdings, filiales, societes soeurs, dirigeants communs. Complementaire de get_directors (detail des mandats d'UNE societe) et de search_director_companies (empreinte d'UNE personne).

Reponse : nodes[] (entreprises et personnes physiques) + edges[] (aretes orientees source -> cible) :

  • mandat_pm : societe dirigeante -> societe dirigee (role, est_actif ; dates de mandat en best-effort, souvent absentes)

  • filiale : societe mere -> filiale (lien associe unique RNE, detention 100% implicite)

  • parent_ultime : parent ultime (GLEIF, grands groupes) -> societe

  • mandat_pp : personne physique -> societe dirigee (role)

Points cles :

  • Les commissaires aux comptes sont EXCLUS des aretes (un CAC n'est pas de la gouvernance).

  • Ids : entreprises "co:" ; personnes "pp:||" (date de naissance en precision mois) ; parents etrangers hors index "co:ext:".

  • Pas de pourcentages de detention (non disponibles dans les sources publiques utilisees).

  • depth=1 : liens directs de la racine. depth=2 (defaut) : expansion depuis les noeuds structurants (parents, societes dirigeantes) - jamais depuis les filiales pour eviter l'explosion sur les grands groupes.

  • Expansion via les personnes (defaut ON, depth=2) : les dirigeants de la RACINE tirent leurs AUTRES societes dans le graphe (holdings personnelles, SCI, structures soeurs d'un meme gerant = groupes de fait sans holding). Expansion depuis la racine uniquement, jamais depuis les niveaux suivants. Desactivable avec expand_persons=false pour un graphe purement capitalistique.

  • Garde hub-dirigeant : un dirigeant de la racine qui est un mandataire professionnel (expert-comptable / officier en serie) n'est PAS etendu - son portefeuille est un carnet de clients, pas le groupe. Detecte par un footprint eleve (plus de 50 societes dirigees) OU un mandat dans un cabinet comptable/audit. Le dirigeant reste dans le graphe (il est officier declare de la racine) mais ses autres societes ne sont pas tirees. Ces dirigeants sont listes dans meta.truncated.hub_directors.

  • Caps par noeud (20 filiales, 20 societes dirigees, 40 societes par personne) et global (max_nodes) : les troncatures sont signalees dans meta.truncated (dont hub_directors pour les mandataires non etendus) - le graphe peut etre partiel, le dire si c'est le cas.

Filtres : include_personnes (defaut true), include_sci (false = exclure les SCI), include_ceased (false = exclure les societes cessees), expand_persons (defaut true). La racine n'est jamais filtree.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNoProfondeur du graphe (1 = liens directs, 2 = defaut)
sirenYesSIREN a 9 chiffres de la societe racine
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
max_nodesNoNombre max de noeuds (defaut 100)
include_sciNofalse = exclure les SCI (categorie juridique 65xx)
expand_personsNofalse = ne pas etendre le graphe via les autres societes des dirigeants de la racine (defaut: true)
include_ceasedNofalse = exclure les societes cessees
include_personnesNoInclure les dirigeants personnes physiques. Defaut: true

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaYes
edgesYes
nodesYes
sirenYes

TDQS

A5/5.0
Behavior5/5

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

The description goes far beyond the readOnlyHint/idempotent annotations by disclosing detailed behavioral traits: statutory auditors are excluded, IDs follow specific formats, shareholding percentages are unavailable, depth semantics govern expansion, hub-director detection prevents exploding the graph, and node/global caps produce truncations reported in meta.truncated. This is exceptional transparency and contains no contradiction with the annotations.

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

Conciseness5/5

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

The description is long but every section earns its place: purpose, usage, response format, key behavioral caveats, and filters. It is front-loaded with the core purpose and uses clear bullets and labels, making the density navigable. There is no redundant or filler text.

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 the tool, the description is remarkably complete: it explains edge types, node ID conventions, depth behavior, person expansion rules, hub-director logic, truncation caps, and all filter defaults. Because an output schema exists, return-value structure is already available, and the description complements it with the exact semantic details an agent needs to interpret the graph correctly.

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

Parameters5/5

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

Although the schema already covers 100% of parameters, the description adds substantial meaning: depth=1 vs depth=2 expansion behavior, expand_persons=false for capitalist-only graphs, caps like 20 subsidiaries and 40 companies per person, and the guarantee that the root is never filtered. This goes well beyond the baseline for full schema coverage by explaining how parameters interact with graph construction.

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 opens with a specific verb and resource: 'Cartographie des entites autour d'UNE entreprise (par SIREN)' and explicitly states the output is an oriented, typed graph built from RCS/RNE mandates and group links. It distinguishes itself from siblings by naming get_directors and search_director_companies as complementary tools with different scopes, so an agent can clearly identify what this tool uniquely provides.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use this tool: 'Utiliser cet outil pour visualiser ou analyser la structure d'un groupe : holdings, filiales, societes soeurs, dirigeants communs.' It also names alternatives and their different purposes, and gives concrete guidance about when to disable expand_persons for a purely capitalist graph, which is exactly the kind of decision support an agent needs.

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.

TDQS

A4.3/5.0
Disambiguation4/5

Most tools have clearly distinct resource+action purposes, and the descriptions explicitly contrast near-neighbor tools like search_companies vs resolve_companies and get_events vs search_events. The only real risk is the trio of director-oriented tools, especially search_director_companies vs search_companies with dirigeant filters, which requires careful reading to avoid misselection.

Naming Consistency5/5

All 18 tools follow a consistent snake_case verb_noun pattern: search_, get_, list_, create_, watch_, unwatch_, mark_, resolve_. Singular names are used for single-entity actions and plural for list/search operations, making the pattern predictable. There is no camelCase, vague verb, or style mixing.

Tool Count4/5

18 tools is slightly above the ideal 10-15 range, but the count is justified by the broad domain covering search, company intelligence, watchlists, and news. Each tool appears to earn its place, and there are no obvious stubs or redundant duplicates. It feels a bit heavy but not bloated.

Completeness3/5

The company intelligence surface is very complete: search, deep company data, financials, directors, group graphs, events, and credit risk are all covered. Watchlists also have full add/remove/list coverage, but saved searches have a notable lifecycle gap—create and list exist, yet there is no update, delete, or alert-toggle for existing saved searches, creating a management dead end.

Resources