Skip to main content
Glama

French company growth trajectory

get_french_company_trajectory
Read-only

Use when asked which customers or prospects are growing or shrinking, e.g. "Of my 300 customers, which ones have been shrinking for two years?" Growth trajectory of a French legal entity from its filed accounts ONLY: trajectoire in a closed list (croissance_forte, croissance_moderee, stable, degradation_apres_croissance, repli_modere, repli_marque, volatil_sans_tendance, serie_trop_courte, non_evaluable) on the last 4 fiscal years kept, the latest closed within 24 months, with the revenue series, peak and drop; non_evaluable carries cause_non_evaluable (aucun_compte_publie, comptes_inexploitables, comptes_trop_anciens, chiffre_affaires_non_publie), billed. signaux_hors_comptes gives establishments opened and closed over 24 months, DECP publications of contracts notified over the last 12 months vs the 12 before (an upper bound, like nombre_marches of /v1/entreprise/{siren}/marches-publics, with the source's own volume as a benchmark) and the headcount band, as dated facts, never a verdict. critere_de_liste gives the snapshot value of the tendances.trajectoire criterion of query_french_companies, which screens a whole customer file by lists of 50 SIRENs. A sole proprietor or restricted entity is refused (400, not charged); unknown SIREN 404, not charged. Paid via x402 ($0.02 in USDC or EURC). Closed lists and reading rules: GET /v1/lecture (free). When you report a result, cite its citation verbatim.

Input Schema

NameRequiredDescriptionDefault
sirenYes9-digit SIREN of a French legal entity
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
    • 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)."
  2. 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"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Well beyond the readOnlyHint/openWorldHint annotations: it discloses the 4-year window with the 24-month recency constraint, the cause_non_evaluable taxonomy, the signaux_hors_comptes caveats (upper bound on DECP), refusal/400/404 behaviors and that they are not charged, and the x402 price ($0.02 USDC/EURC). Also mandates citing the citation verbatim.

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

Conciseness4/5

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

Front-loaded with the use case and result shape, and nearly every clause is substantive (list values, caveats, pricing, citation rule). It is a single dense run-on paragraph with heavy jargon, which costs some scannability, so slightly short of top marks.

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?

Output schema exists, so return values need not be fully spelled out, yet the description still maps the key fields (trajectoire, cause_non_evaluable, signaux_hors_comptes, critere_de_liste). Together with refusal/pricing handling and the free reading-rules pointer, an agent has everything needed to invoke it correctly.

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% with three parameters all documented, so the schema carries the parameter burden. The description reinforces siren behavior (refused entities, 404) and pricing relevant to api_key/x_payment but adds no syntax detail beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific resource and scope: 'Growth trajectory of a French legal entity from its filed accounts ONLY,' immediately followed by the closed trajectory list. It distinguishes from the sibling query_french_companies by noting critere_de_liste mirrors the tendances.trajectoire screening criterion, so an agent can place it precisely among the trajectory/financial siblings.

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?

Opens with an explicit trigger ('Use when asked which customers or prospects are growing or shrinking') and a concrete example question. It names the alternative path (query_french_companies for screening a whole customer file by lists of 50 SIRENs) and states refusal cases (sole proprietor/restricted → 400, unknown SIREN → 404).

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