Skip to main content
Glama

French company intelligence report

get_french_company_intelligence
Read-only

Use for a GO/NO-GO decision (credit, investment, partnership) on a French company. Company INTELLIGENCE report (every Sirenic block cross-referenced in one call): identity & officers, financials with 3-year trend, sector positioning vs NAF peers, failure-risk score, BODACC legal alerts, commercial-court decisions linked to the company (Judilibre stock since 2024-12-31: counts, closed-list nature and role, official links; partial coverage stated, never « no litigation »), sanctions screening (6 official lists, company + each officer), public procurement (French DECP + EU TED), IP assets, cached capital structure, industrial-risk synthesis (Seveso/ICPE), AMF PSAN/SGP register statuses, HATVP lobbying summary and a live VIES VAT check. Returns closed-list SIGNALS traced to their register source, synthese.conclusions_interdites (closed list of what THIS report does not allow you to infer: never a probability of default, a credit rating or an absence of risk; plus group health, current situation, cash position or an established sanction when the read data cannot support them), a deterministic verdict (solide/correct/fragile/critique) with synthese.motifs_verdict (closed-list codes that decided it) and synthese.verdict_plafonne_par (name-match doubts that capped it at « correct »: when non-empty, read « correct » as « correct subject to verification »), and strengths/vigilance points. The financial block carries decalage_analytique (latest filing known at the register vs latest year analysed) and the summary says it when a newer filing exists. Since v1.7 the synthese also carries reserves (closed-list reading caveats: holding scope, newer filing not analysed, old accounts, unpublished cash, weak name matches, unavailable blocks…), portee (what the verdict covers), confiance_financiere (the score band) and par_domaine (ten domains, each in its own closed list, all projected from blocks already served); the verdict word itself is unchanged. Every block states the official register it comes from and its as_of date, so the report is auditable offline once the Ed25519 signature is verified. Since 2026-09-06 a company with no computable financial ratio (in practice no public accounts) and no other adverse signal gets indeterminable (insufficient public data, neither good nor bad) instead of correct. The flagship due-diligence call. Two views (vue). synthese, this tool's default, is the summary view of the same report, computed in full at the same price: synthese and signals whole, the financial summary, risk blocks reduced to counts (never a person's name), missing blocks, the full report's provenance and this response's verification number (verification); detail_hors_synthese names each block left out or reduced, with the route that serves its detail. On the bought reports of the reference set it stays under 25,000 bytes, so under the 25,000 tokens Claude Code (2.1.293, measured on 2026-10-14) passes to the model by default. vue=complet returns the full report as compact JSON, a separate call at the same price, several times larger than that limit. A SIREN whose administrative status or legal category is missing in Sirene is refused: 404 identite_incomplete (body: siren, champs_absents, fiche), never charged. Fully disclosed legal persons only: a sole proprietorship, a restricted-diffusion unit or a group without legal personality is refused, 400 with the exact code, never charged. Partial diffusion (rule diffusion_partielle_nom_retenu_et_compte): a unit not proven to be a legal person has identite.denomination null, counted in identite.ecartes.diffusion_partielle; in dirigeants_reseau, a company under partial diffusion, legal person included, gives no office: left out before any count, never counted. Paid via x402 ($1.00 in USDC or EURC). When you report a result, cite its citation verbatim.

Input Schema

NameRequiredDescriptionDefault
vueNosynthese (default for this tool): the summary view of the report, same price; complet: the full report, several times larger than a tool result most clients read.synthese
sirenYes9-digit SIREN
api_keyNoOptional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402, with no wallet needed. Get one at https://api.sirenic.eu/compte?utm_source=api&utm_campaign=mcp. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.
x_paymentNoOptional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.

Output Schema

NameRequiredDescriptionDefault
hintNoHow to settle the quote, present when payment_required is true.
quoteNoThe signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.
resultatNoThe endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06): one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report »; only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it).
free_tierNoFree API key offer for this tool, present with a quote.
payment_requiredYesTrue when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / vue
      Added value: +{
      +  "default": "synthese",
      +  "description": "synthese (default for this tool): the summary view of the report, same price; complet: the full report, several times larger than a tool result most clients read.",
      +  "enum": [
      +    "complet",
      +    "synthese"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it)."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06): one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report »; only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it)."
  3. Changed4 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / free_tier / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / quote / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / resultat / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  4. Changed7 schema fields changed
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402, with no wallet needed. Get one at https://api.sirenic.eu/compte?utm_source=api&utm_campaign=mcp. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.",
      +  "type": "string"
      +}
    • addedInput schema / properties / x_payment
      Added value: +{
      +  "description": "Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / free_tier
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Free API key offer for this tool, present with a quote.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / hint
      Added value: +{
      +  "description": "How to settle the quote, present when payment_required is true.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / payment_required / description
      Previous value: -"Always false on this connector: every call is billed to the connected Sirenic account, never paid by the client."New value: +"True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`."
    • addedOutput schema / properties / quote
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06), one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report », only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free)."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it)."
  5. Changed6 schema fields changed
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "description": "Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.",
      -  "type": "string"
      -}
    • removedInput schema / properties / x_payment
      Removed value: -{
      -  "description": "Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / hint
      Removed value: -{
      -  "description": "How to settle the quote, present when payment_required is true.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / payment_required / description
      Previous value: -"True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`."New value: +"Always false on this connector: every call is billed to the connected Sirenic account, never paid by the client."
    • removedOutput schema / properties / quote
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`.",
      -  "type": "object"
      -}
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it)."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06), one entry per block served, with the official register, licence, version, `empreinte_sha256` (full snapshots), `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report », only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free)."
  6. Changed1 schema field changed
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free)."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it)."
  7. Changed1 schema field changed
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote.",
      +  "type": "string"
      +}
  8. Changed1 schema field changed
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions and intelligence responses also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free)."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free)."
  9. Changed1 schema field changed
    • changedOutput schema / properties / resultat / description
      Previous value: -"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature."New value: +"The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions and intelligence responses also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free)."
  10. Changed1 schema field changed
    • changedOutput schema / properties / quote / description
      Previous value: -"The x402 quote (USDC and EURC options at the same numeric amount) when payment_required is true."New value: +"The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`."
  11. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "hint": {
      +      "description": "How to settle the quote, present when payment_required is true.",
      +      "type": "string"
      +    },
      +    "payment_required": {
      +      "description": "True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`.",
      +      "type": "boolean"
      +    },
      +    "quote": {
      +      "additionalProperties": {},
      +      "description": "The x402 quote (USDC and EURC options at the same numeric amount) when payment_required is true.",
      +      "type": "object"
      +    },
      +    "resultat": {
      +      "additionalProperties": {},
      +      "description": "The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature.",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "payment_required"
      +  ],
      +  "type": "object"
      +}
  12. Added

TDQS

A4.2/5.0
Behavior5/5

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

Far beyond the readOnlyHint/openWorldHint annotations: discloses pricing ($1.00 in USDC/EURC via x402 or prepaid credits), the exact refusal codes that are never charged (404 identite_incomplete, 400 for non-legal-persons), partial-diffusion handling in dirigeants_reseau, the audit model (per-block as_of + Ed25519 signature) and the v1.7 / 2026-09-06 behavior changes. Read-only but paid-and-refusable is precisely the kind of trait an agent needs and annotations cannot carry.

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

Conciseness2/5

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

Front-loaded correctly with the decision use case, but it then runs as one ~600-word paragraph dense with embedded parentheticals, version history and field-by-field narration of synthese internals (conclusions_interdites, motifs_verdict, verdict_plafonne_par, reserves, par_domaine) that an output schema exists to carry. A large share of sentences repeat or elaborate return-value detail rather than helping an agent decide or invoke.

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 a paid, refusal-prone, high-stakes aggregation tool, everything needed is present: what a verdict does and does not mean, how 'correct' can be capped, when a company resolves to 'indeterminable', which inputs are rejected and at what cost. Combined with the existing output schema, an agent can call this safely without further context.

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 coverage is 100% and every parameter (siren pattern, vue enum/default, api_key, x_payment precedence) is already documented in the schema. The description adds some operational meaning to vue (the 25,000-byte/token budget, 'a separate call at the same price'), but it doesn't clarify siren format or payment-parameter interplay beyond what the schema states. Baseline 3 is right.

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 concrete verb and decision context ('Use for a GO/NO-GO decision (credit, investment, partnership) on a French company') plus the resource: an aggregated intelligence report cross-referencing every Sirenic block in one call. The enumerated block list (identity, financials, BODACC, sanctions, DECP/TED, IP, VIES…) makes it immediately distinguishable from the single-block siblings like get_french_company_financials or get_french_company_legal_alerts.

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?

Explicit about when to reach for it ('GO/NO-GO decision', 'The flagship due-diligence call') and about the vue choice (synthese default vs complet as a separate same-price call). It points at detail_hors_synthese as the route to a block's detail, but never names a sibling to prefer for narrow needs (e.g., single-block financials), so the routing logic is only half given.

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