Skip to main content
Glama

Open data: clinical trials, EU tenders, companies, fuel prices

French Company Search (Recherche d'entreprises, Sirene)

fr-company-search
Read-onlyIdempotent

Search France's official company register by NAF activity code, département, headcount band and status, and get typed legal-entity records with head-office address, coordinates and company size. Read from recherche-entreprises.api.gouv.fr when called. Each result: siren, siret_head_office, name, legal_name, naf_code, legal_form_code, address, postcode, city, departement, lat, lon, creation_date, headcount_band, company_category, establishments_total, establishments_open, status. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

NameRequiredDescriptionDefault
limitNoAt most this many results (default 100).
departementNoDépartement code of the head office, e.g. 75 Paris, 69 Rhône, 2A Corse-du-Sud. Leave empty for all of France. Example: "75".
etat_administratifNoA = active companies, C = ceased companies. Example: "A".
activite_principaleNoMain activity code (NAF rev. 2) of the company, e.g. 62.01Z (computer programming), 56.10A (restaurants), 47.11D (supermarkets). Example: "62.01Z".
tranche_effectif_salarieNoINSEE headcount band: 00 (0), 01 (1-2), 02 (3-5), 03 (6-9), 11 (10-19), 12 (20-49), 21 (50-99), 22 (100-199), 31 (200-249), 32 (250-499), 41 (500-999), 42 (1000-1999), 51 (2000-4999), 52 (5000-9999), 53 (10000+). Leave empty for any. Example: "11".

Output Schema

NameRequiredDescriptionDefault
countYeshow many results came back
itemsYesthe results, one object each
partialNosome of the source's requests failed: the results are incomplete
productNo
sourcesNowhere the data came from: each source's name, licence and the attribution to show with it
fetched_atNowhen the source was read (Unix seconds)
truncated_fromNothe answer was cut to fit: this many results came back in all

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing the live upstream source ('Read from recherche-entreprises.api.gouv.fr when called'), the required RapidAPI key and its exact header name, and a concrete quota ('free plan has 50 requests a month'). That is exactly the auth/rate-limit context annotations can't carry. It loses a point because the key-signup URL points at a 'clinical-trials-eu-tenders-open-data-api' listing, which is inconsistent with a French company register and could misdirect an agent looking for credentials.

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?

Purpose and scope are front-loaded, and the auth/rate-limit caveat comes last where it belongs. The 18-field return enumeration is somewhat redundant given an output schema exists, but the sentences are otherwise dense and free of padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering read-only/idempotent safety and an output schema covering the result shape, the description only needed to add source, auth, and quota — and it does. The one real gap is that the credential URL appears to be for a different API, leaving the key-acquisition path unreliable.

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%, so all five parameters are already documented with enums and examples in the schema. The description restates the filter dimensions (NAF code, département, headcount band, status) but adds no syntax, defaults, or edge-case guidance beyond that. Baseline 3 is the right ceiling here.

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?

Opens with a specific verb+resource ('Search France's official company register') and immediately names the filter dimensions and the shape of the returned legal-entity records. An agent knows exactly what this returns and can distinguish it from every sibling tool (app-store-search, ted-tender-monitor, etc.), none of which touch French company data.

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?

The filter semantics are framed as optional scoping ('Leave empty for all of France', 'Leave empty for any' for headcount band), which implies when to apply narrowing versus broad search. There are no explicit exclusions or alternatives, but the sibling tools are in unrelated domains so routing ambiguity is low.

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