idnsidns avatar

TenderAPI — French & EU public tenders

idnsidns/tenderapi-mcp

Wraps the TenderAPI REST service to let Claude search French BOAMP and EU TED public procurement notices directly. You get four tools: search_tenders queries contracts by CPV code, region, budget, and deadline; search_awards finds who won which bids and for how much; winner_intel aggregates company statistics by sector and geography; me checks your quota and tier. The free tier gives you 100 requests a day for tender search, paid tiers unlock awards and winner intelligence with higher limits. Requires a free API key from tenderapi.fr. Useful if you're tracking government contracts, researching procurement patterns, or building compliance workflows that need structured access to French and European public tender data.

tools
3
auth
Secret needed
transport
STDIO, HTTP
env vars
2
last updated
Nov 13, 2026

Install

From registry metadata
$ npx add-mcp https://tenderapi.fr/mcp --name tenderapi-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http tenderapi-mcp https://tenderapi.fr/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 3 tools

Verified live against the running server on Nov 6, 2026.

search_tendersRecherche des appels d'offres publics français (BOAMP) et européens (TED). Environ 3 millions d'avis, mis à jour plusieurs fois par jour. Accès anonyme et gratuit, limité à 30 appels par jour et par IP ; chaque réponse indique le solde restant dans sa clé `quota`. Cinq pièges,...25 params

Recherche des appels d'offres publics français (BOAMP) et européens (TED). Environ 3 millions d'avis, mis à jour plusieurs fois par jour. Accès anonyme et gratuit, limité à 30 appels par jour et par IP ; chaque réponse indique le solde restant dans sa clé `quota`. Cinq pièges,...

Parameters* required
budget_maxvalue
Montant maximum en euros.
budget_minvalue
Montant minimum en euros. Les avis sans budget renseigné sont écartés, sauf include_null_budget=true.
buyer_keywordvalue
Fragment du nom de l'acheteur, 3 caractères minimum, ex. 'metropole', 'CHU'.
buyer_siretvalue
SIRET de l'acheteur, 14 chiffres exactement (l'établissement, pas l'entreprise).
contract_typevalue
'services', 'works' ou 'supplies'. Les formes françaises 'travaux' et 'fournitures' sont acceptées comme alias.
countryvalue
Code pays ISO à 2 lettres, ex. 'FR', 'DE', 'ES'. Utile pour ne garder que le français ('FR') ou cibler un pays sur le corpus TED.
cpvvalue
Code CPV exact à 8 chiffres, ex. '72000000' pour les services informatiques. Environ 40 % des avis BOAMP n'ont aucun CPV : un filtre CPV seul les écarte.
cpv_familyvalue
Préfixe CPV à 2 chiffres, ex. '72' = toute l'informatique, '45' = travaux.
deadline_aftervalue
Date limite de remise postérieure à cette date ISO (AAAA-MM-JJ).
deadline_beforevalue
Date limite de remise antérieure à cette date ISO (AAAA-MM-JJ).
departmentvalue
Code de département, ex. '35', '2A', '974'. Plusieurs valeurs séparées par des virgules.
descripteurvalue
Code descripteur BOAMP (nomenclature DILA), alternative au CPV côté français.
include_null_budgetboolean
Garder les avis dont le budget n'est pas renseigné malgré un filtre de montant. Beaucoup d'avis BOAMP n'annoncent aucun montant.default: false
include_null_deadlineboolean
Garder les avis sans date limite malgré un filtre de date limite. Sans cela, un filtre deadline_* les écarte silencieusement.default: false
include_planningboolean
Inclure les avis de pré-information (marchés simplement envisagés, non encore ouverts). Exclus par défaut.default: false
keywordvalue
Recherche plein texte sur titre et description, insensible aux accents. TOUS les mots doivent figurer dans le même avis : préférez un seul mot puis affinez. L'opérateur OR de FTS5 est accepté, ex....
pageinteger
Numéro de page, à partir de 1.default: 1
page_sizeinteger
Nombre d'avis par page, 10 par défaut, plafonné à 20 en anonyme. Un avis pèse environ 1 300 caractères : montez à 20 seulement si vous comptez les lire tous.default: 10
procedure_typevalue
Type de procédure, ex. 'open', 'restricted', 'negotiated'. Valeur inconnue = erreur listant les valeurs acceptées.
published_aftervalue
Publié après cette date ISO (AAAA-MM-JJ). C'est le filtre d'une veille quotidienne.

+5 more parameters. See the server's own documentation for the full schema.

get_tenderRécupère la fiche complète d'un appel d'offres par son identifiant. À utiliser après `search_tenders` pour obtenir le détail d'un avis (description intégrale, documents, contacts, champs bruts). Les avis BOAMP les plus succincts n'ont ni description ni CPV : `source_url` renvo...1 params

Récupère la fiche complète d'un appel d'offres par son identifiant. À utiliser après `search_tenders` pour obtenir le détail d'un avis (description intégrale, documents, contacts, champs bruts). Les avis BOAMP les plus succincts n'ont ni description ni CPV : `source_url` renvo...

Parameters* required
tender_id*string
L'entier du champ `id` renvoyé par search_tenders, ex. '3780679'. La référence de l'éditeur est acceptée aussi : `source_id` BOAMP « 26-79926 » ou TED « 510250-2026 ». Pas l'URL de l'avis.
preview_alertsMontre ce qu'une veille automatique AURAIT livré avec ces critères, sans rien créer. À utiliser quand quelqu'un veut « être prévenu » des marchés qui le concernent, plutôt que de chercher une fois. `search_tenders` répond à « qu'y a-t-il aujourd'hui » ; cet outil répond à « qu...9 params

Montre ce qu'une veille automatique AURAIT livré avec ces critères, sans rien créer. À utiliser quand quelqu'un veut « être prévenu » des marchés qui le concernent, plutôt que de chercher une fois. `search_tenders` répond à « qu'y a-t-il aujourd'hui » ; cet outil répond à « qu...

Parameters* required
budget_maxvalue
Montant maximum en euros.
budget_minvalue
Montant minimum en euros.
countryvalue
Codes pays ISO à 2 lettres, ex. ['FR']. Seul critère géographique qui porte sur les DEUX sources (BOAMP et TED).
cpv_codesvalue
Codes CPV exacts à 8 chiffres. ⚠️ Environ 40 % des avis BOAMP arrivent SANS aucun CPV : un CPV combiné en ET avec un mot-clé écarte silencieusement ces avis-là. `per_criterion` chiffre exactement c...
departmentsvalue
Numéros de départements, ex. ['75', '06', '2A']. Le nom écrit en toutes lettres est refusé.
keywordsvalue
Mots-clés. Chaque entrée exige que TOUS ses mots soient présents dans le même avis. Préférez plusieurs entrées courtes à une longue.
match_cpv_familyboolean
Élargit les codes CPV à leur famille (2 premiers chiffres) au lieu du code exact.default: false
regionsvalue
Régions françaises, ex. ['bretagne', 'ile-de-france']. Les formes usuelles (« Bretagne », « Île-de-France », « PACA ») sont normalisées, et une région inconnue est refusée avec une suggestion — ell...
siretvalue
SIRET d'un acheteur précis, pour ne suivre que lui.

Sponsors

Configuration

TENDERAPI_KEY*secret

TenderAPI key (get a free one at https://tenderapi.fr/). Sent as X-API-Key header on every REST call.

TENDERAPI_BASE_URLdefault: https://tenderapi.fr

Override the API base URL (default: https://tenderapi.fr). Useful for dev/staging.

Readme

TenderAPI MCP server

Expose TenderAPI (French BOAMP + EU TED public procurement data) as MCP tools for AI agents (Claude Desktop, Cursor, Continue, Zed, etc.).

A thin wrapper over the public REST API at https://tenderapi.fr.

Coverage: BOAMP (France) since March 2015, and TED for FR/DE/IT/ES/UK since 2015 (legacy XML format until end 2023, then eForms), refreshed daily.

Two ways to use it

1. Hosted server — no install, no key

The fastest way to try it. Point any MCP client at the hosted endpoint:

https://tenderapi.fr/mcp

Claude Desktop / Claude Code:

{
  "mcpServers": {
    "tenderapi": {
      "type": "streamable-http",
      "url": "https://tenderapi.fr/mcp"
    }
  }
}

Exposes search_tenders and get_tender. Anonymous, free, limited to 30 tool calls per day per IP. No account, nothing to install.

Awards, winner intelligence and alert profiles are not available anonymously — they need a key, see below.

2. Local server (pip) — full toolset

Requires Python 3.10+ and a free API key.

pip install tenderapi-mcp

View the full README on GitHub

Details

Repository
github.com/idnsidns/tenderapi-mcp
Website
tenderapi.fr
Category
Data & Analytics
Package
tenderapi-mcp
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Data & Analytics MCP servers

View all
1bitquery avatarBitquery MCP Serverbitquery/mcpHosted on-chain data for AI agents: DEX trades, OHLCV, top traders, fund tracing, address labels.0stars
2exploratory-io avatarExploratory Serverexploratory-io/exploratorySearch and read notes, dashboards, charts, analytics and data published on Exploratory.0stars
3fhirfly-io avatarMcp Serverfhirfly-io/fhirfly-mcp-serverHealthcare reference data for AI agents: providers, drugs, diagnoses, labs, codes, claims.0stars
4apitier avatarMcp Serverapitier/apitier-mcp-serverAPITier utility APIs as MCP tools: validation, UK/India address lookup, barcode/QR, data conversion.0stars
5blue-gamma avatarBlueGamma - Real-time Interest Rate Datablue-gamma/bluegamma-mcpInterest rate data and pricing: swap rates and curves, fixings, FX, caps, swaptions for 60+ indices.0stars
6br0ski777 avatarDomain Intelligence APIbr0ski777/domain-intelligence-x402WHOIS, DNS records, SSL certificate data for any domain in one call. x402.0stars