Skip to main content
Glama

French Public Buyer Profile

procurement_fr_buyer_profile

Builds a compact DECP profile for a French public buyer by name or SIRET. Use when: Profile a French public buyer from its published contract records. You need a compact historical procurement profile for a French public buyer identified by name or SIRET. You want published award volume, recent activity, top CPV segments and frequent suppliers from DECP data. Avoid when: You need currently open tenders from that buyer; use procurement/fr/search. You need one supplier’s awarded-contract history; use company/fr/public-contracts. Limitations: The profile is derived from the sampled/public DECP award records matched to the buyer query. Published contract records do not represent every purchasing activity or off-contract expenditure of the buyer. Price: 0.020 USD per call via x402. Paid-call behavior: source records are not modified, but a successful invocation can consume the advertised x402 payment; the payment-required challenge is free, and repeating the tool after a completed paid invocation may require a new payment. Accepted x402 networks: eip155:8453, xrpl:0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
buyerYesFrench public-buyer name or SIRET used to build the procurement profile. (minimum length 2; maximum length 200).
limitNoMaximum number of records returned by this call. (minimum 1; maximum 100; default 100).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesStructured value returned for “query” as defined by this API contract.
by_yearYesStructured value returned for “by year” as defined by this API contract.
top_cpvYesStructured value returned for “top cpv” as defined by this API contract.
buyer_nameYesStructured value returned for “buyer name” as defined by this API contract.
buyer_siretYesStructured value returned for “buyer siret” as defined by this API contract.
limitationsNoKnown interpretation, source-coverage or freshness limitations for this result.
total_countYesTotal number of matching records reported by the source or endpoint.
generated_atYesUTC timestamp at which this derived result was generated.
sampled_countYesStructured value returned for “sampled count” as defined by this API contract.
source_statusYesAvailability status of the relevant upstream public source. (allowed values: ok, unavailable).
top_suppliersYesStructured value returned for “top suppliers” as defined by this API contract.
sampled_amountYesStructured value returned for “sampled amount” as defined by this API contract.
latest_notification_dateYesStructured value returned for “latest notification date” as defined by this API contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / required
      Previous value: -[
      -  "query",
      -  "source_status",
      -  "buyer_siret",
      -  "buyer_name",
      -  "total_count",
      -  "sampled_count",
      -  "sampled_amount",
      -  "latest_notification_date",
      -  "by_year",
      -  "top_cpv",
      -  "top_suppliers",
      -  "generated_at",
      -  "limitations"
      -]New value: +[
      +  "query",
      +  "source_status",
      +  "buyer_siret",
      +  "buyer_name",
      +  "total_count",
      +  "sampled_count",
      +  "sampled_amount",
      +  "latest_notification_date",
      +  "by_year",
      +  "top_cpv",
      +  "top_suppliers",
      +  "generated_at"
      +]
  2. Changed23 schema fields changed
    • addedInput schema / description
      Added value: +"Structured input parameters for the procurement/fr/buyer-profile API."
    • addedInput schema / properties / buyer / description
      Added value: +"French public-buyer name or SIRET used to build the procurement profile. (minimum length 2; maximum length 200)."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of records returned by this call. (minimum 1; maximum 100; default 100)."
    • addedOutput schema / description
      Added value: +"Structured result returned by the procurement/fr/buyer-profile API."
    • addedOutput schema / properties / buyer_name / description
      Added value: +"Structured value returned for “buyer name” as defined by this API contract."
    • addedOutput schema / properties / buyer_siret / description
      Added value: +"Structured value returned for “buyer siret” as defined by this API contract."
    • addedOutput schema / properties / by_year / description
      Added value: +"Structured value returned for “by year” as defined by this API contract."
    • addedOutput schema / properties / by_year / items / properties / contracts_count / description
      Added value: +"Structured value returned for “contracts count” as defined by this API contract."
    • addedOutput schema / properties / by_year / items / properties / year / description
      Added value: +"Structured value returned for “year” as defined by this API contract."
    • addedOutput schema / properties / generated_at / description
      Added value: +"UTC timestamp at which this derived result was generated."
    • addedOutput schema / properties / latest_notification_date / description
      Added value: +"Structured value returned for “latest notification date” as defined by this API contract."
    • addedOutput schema / properties / limitations / description
      Added value: +"Known interpretation, source-coverage or freshness limitations for this result."
    • addedOutput schema / properties / query / description
      Added value: +"Structured value returned for “query” as defined by this API contract."
    • addedOutput schema / properties / sampled_amount / description
      Added value: +"Structured value returned for “sampled amount” as defined by this API contract."
    • addedOutput schema / properties / sampled_count / description
      Added value: +"Structured value returned for “sampled count” as defined by this API contract."
    • addedOutput schema / properties / source_status / description
      Added value: +"Availability status of the relevant upstream public source. (allowed values: ok, unavailable)."
    • addedOutput schema / properties / top_cpv / description
      Added value: +"Structured value returned for “top cpv” as defined by this API contract."
    • addedOutput schema / properties / top_cpv / items / properties / contracts_count / description
      Added value: +"Structured value returned for “contracts count” as defined by this API contract."
    • addedOutput schema / properties / top_cpv / items / properties / cpv / description
      Added value: +"Structured value returned for “cpv” as defined by this API contract."
    • addedOutput schema / properties / top_suppliers / description
      Added value: +"Structured value returned for “top suppliers” as defined by this API contract."
    • addedOutput schema / properties / top_suppliers / items / properties / contracts_count / description
      Added value: +"Structured value returned for “contracts count” as defined by this API contract."
    • addedOutput schema / properties / top_suppliers / items / properties / siren / description
      Added value: +"Normalized 9-digit French SIREN when available."
    • addedOutput schema / properties / total_count / description
      Added value: +"Total number of matching records reported by the source or endpoint."
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations carry no safety hints (all false), so the description carries full burden. It discloses that source records are not modified, details the x402 payment side effect, notes that repeated calls may require new payment, and states limitations about coverage of DECP records. This is thorough and exceeds typical descriptions.

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?

The description is well-structured with clear sections (Use when, Avoid when, Limitations, Price, Paid-call behavior, Accepted networks). It is longer than minimal but every section adds value, and the core purpose is front-loaded.

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?

With an output schema present and a description covering usage, limitations, pricing, payment behavior, and alternatives, nothing essential is missing. The agent has enough context to decide when and how to call this tool safely.

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 description coverage is 100%, so both parameters are already documented. The description reinforces that the buyer can be a name or SIRET, but this is already in the schema. It adds no new semantics beyond what the schema provides, so the 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?

The description opens with a specific verb and resource: 'Builds a compact DECP profile for a French public buyer by name or SIRET.' It clearly states what is returned (award volume, activity, CPV segments, suppliers) and distinguishes itself from siblings by explicitly naming procurement/fr/search for open tenders and company/fr/public-contracts for a supplier's history.

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 contains explicit 'Use when' and 'Avoid when' sections. It states the conditions for use and names the alternative tools to use in other scenarios, leaving no ambiguity about when to select this tool over its siblings.

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