Skip to main content
Glama

French Company Opportunities

company_fr_opportunities

Ranks actionable French public funding and open procurement opportunities for a company using its profile, project context and historical public contracts. Use when: You need company-specific actionable opportunities combining public aid matching and currently open public tenders. You want opportunities ranked from the company profile, optional project context and historical public-contract evidence. Avoid when: You need a broad open-tender search without company context; use procurement/fr/search. You need a guarantee of aid eligibility, tender suitability or commercial success. Limitations: PUBLIC_AID opportunities are produced only when a project is provided and matches the public taxonomy; they remain indicative, not official eligibility decisions. PUBLIC_TENDER matching is intentionally conservative and relies on common CPV codes plus shared business vocabulary with historical awarded contracts; source coverage can be partial. 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
limitNoMaximum number of ranked opportunities to return
projectNoOptional project context used for public-aid and opportunity matching
identifierYes9-digit SIREN or 14-digit SIRET

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesPublicly available company, person, buyer or record name for this result.
sirenYesNormalized 9-digit French SIREN when available.
existsYesWhether the requested company or public record was found in the checked source.
projectYesStructured value returned for “project” as defined by this API contract.
coverageYesCoverage information describing which underlying services or sources were available.
truncatedYesWhether additional matching records existed beyond the returned result limit.
identifierYesIdentifier supplied for the request, echoed in normalized form when applicable.
limitationsNoKnown interpretation, source-coverage or freshness limitations for this result.
opportunitiesYesRanked public-data opportunities returned by the endpoint.
company_statusYesCurrent public administrative company status when available.
returned_countYesNumber of records included in this response.
identifier_typeYesNormalized identifier type, such as SIREN or SIRET when applicable. (allowed values: siren, siret).
total_candidatesYesStructured value returned for “total candidates” as defined by this API contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / required
      Previous value: -[
      -  "identifier",
      -  "identifier_type",
      -  "exists",
      -  "siren",
      -  "name",
      -  "company_status",
      -  "project",
      -  "total_candidates",
      -  "returned_count",
      -  "truncated",
      -  "opportunities",
      -  "coverage",
      -  "limitations"
      -]New value: +[
      +  "identifier",
      +  "identifier_type",
      +  "exists",
      +  "siren",
      +  "name",
      +  "company_status",
      +  "project",
      +  "total_candidates",
      +  "returned_count",
      +  "truncated",
      +  "opportunities",
      +  "coverage"
      +]
  2. Changed23 schema fields changed
    • addedInput schema / description
      Added value: +"Structured input parameters for the company/fr/opportunities API."
    • addedOutput schema / description
      Added value: +"Structured result returned by the company/fr/opportunities API."
    • addedOutput schema / properties / company_status / description
      Added value: +"Current public administrative company status when available."
    • addedOutput schema / properties / coverage / description
      Added value: +"Coverage information describing which underlying services or sources were available."
    • addedOutput schema / properties / coverage / items / properties / service / description
      Added value: +"Structured value returned for “service” as defined by this API contract."
    • addedOutput schema / properties / coverage / items / properties / status / description
      Added value: +"Normalized endpoint or source status."
    • addedOutput schema / properties / exists / description
      Added value: +"Whether the requested company or public record was found in the checked source."
    • addedOutput schema / properties / identifier / description
      Added value: +"Identifier supplied for the request, echoed in normalized form when applicable."
    • addedOutput schema / properties / identifier_type / description
      Added value: +"Normalized identifier type, such as SIREN or SIRET when applicable. (allowed values: siren, siret)."
    • addedOutput schema / properties / limitations / description
      Added value: +"Known interpretation, source-coverage or freshness limitations for this result."
    • addedOutput schema / properties / name / description
      Added value: +"Publicly available company, person, buyer or record name for this result."
    • addedOutput schema / properties / opportunities / description
      Added value: +"Ranked public-data opportunities returned by the endpoint."
    • addedOutput schema / properties / opportunities / items / properties / reasons / description
      Added value: +"Structured value returned for “reasons” as defined by this API contract."
    • addedOutput schema / properties / opportunities / items / properties / score / description
      Added value: +"Normalized score produced by the endpoint; interpretation is defined by the tool description and limitations. (minimum 0; maximum 1)."
    • addedOutput schema / properties / opportunities / items / properties / source_data / description
      Added value: +"Structured value returned for “source data” as defined by this API contract."
    • addedOutput schema / properties / opportunities / items / properties / sources / description
      Added value: +"Public data sources used or checked for this result."
    • addedOutput schema / properties / opportunities / items / properties / title / description
      Added value: +"Structured value returned for “title” as defined by this API contract."
    • addedOutput schema / properties / opportunities / items / properties / type / description
      Added value: +"Structured value returned for “type” as defined by this API contract. (allowed values: PUBLIC_AID, PUBLIC_TENDER)."
    • addedOutput schema / properties / project / description
      Added value: +"Structured value returned for “project” as defined by this API contract."
    • addedOutput schema / properties / returned_count / description
      Added value: +"Number of records included in this response."
    • addedOutput schema / properties / siren / description
      Added value: +"Normalized 9-digit French SIREN when available."
    • addedOutput schema / properties / total_candidates / description
      Added value: +"Structured value returned for “total candidates” as defined by this API contract."
    • addedOutput schema / properties / truncated / description
      Added value: +"Whether additional matching records existed beyond the returned result limit."
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With annotations providing no behavioral signals, the description carries the full burden and handles it well: it discloses paid-call behavior, that source records are not modified, that the payment-required challenge is free, that repeating after a completed paid invocation may require new payment, and that matching is conservative and partially covered. This is rich, non-obvious behavioral context.

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 front-loaded with the core purpose and uses clear labeled sections for use, avoid, limitations, price, and paid-call behavior. It is longer than average, but every section adds operational detail an agent needs for a paid tool, so the length is justified.

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 tool's complexity, output schema presence, and minimal annotations, the description covers what the tool does, when to use it, when not to use it, its limitations, pricing, payment side effects, and accepted networks. An agent has enough to decide and invoke correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by tying the optional project parameter to public-aid generation and taxonomy matching, and by explaining that tender matching relies on CPV codes and historical contract vocabulary. This gives operational meaning to the parameters that the schema alone does not fully convey.

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 first sentence states a specific action and resource: 'Ranks actionable French public funding and open procurement opportunities for a company using its profile, project context and historical public contracts.' It also distinguishes itself from the broader procurement/fr/search tool by naming that alternative, so an agent can tell it apart from 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?

The 'Use when' and 'Avoid when' sections give explicit conditions and name the alternative for broad open-tender search: 'use procurement/fr/search.' It also tells the agent when not to rely on it for guarantees of eligibility or success, which is valuable decision guidance.

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