MCP server for TenderAPI: French (BOAMP) and EU (TED) public procurement data
Project description
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.
Install
Requires Python 3.10+.
From PyPI (once published):
pip install tenderapi-mcp
From source:
git clone https://github.com/IDNSIDNS/tenderapi-mcp
cd tenderapi-mcp
pip install -e .
Configure
Get a free API key at https://tenderapi.fr/.
Set the env var:
export TENDERAPI_KEY=ta_your_key_here
Use with Claude Desktop
Edit your Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"tenderapi": {
"command": "tenderapi-mcp",
"env": {
"TENDERAPI_KEY": "ta_your_key_here"
}
}
}
}
Restart Claude Desktop. The tenderapi server should appear in the tool picker.
Use with other MCP clients
Any MCP client supporting stdio transport. The binary tenderapi-mcp (installed by pip) is the entry point.
Tools exposed
| Tool | Tier | Description |
|---|---|---|
search_tenders |
Free | Search BOAMP + TED tenders with typed filters (CPV, region, budget, deadline, source, etc.) |
get_tender |
Free | Fetch a single tender by id |
search_awards |
Starter | Search award notices (who won which contract, for how much) |
get_award |
Starter | Fetch a single award by id |
winner_intel |
Pro | Aggregated winner stats: top companies by CPV / region / year |
me |
any | Current key tier, quota remaining, available features |
list_profiles, get_profile, create_profile, update_profile, delete_profile |
Starter | Manage webhook alert profiles for new-tender matches |
upgrade_tier, billing_portal |
any | Stripe checkout and billing-management links |
PINs (prior-information notices) are excluded from search_tenders by default; pass include_planning=true to include them. A deadline_after/deadline_before filter drops notices with no submission deadline unless include_null_deadline=true.
Tiers
- Free: 100 req/day, tenders only
- Starter (5 €/mo HT): 1 000 req/day, adds awards + webhooks
- Pro (15 €/mo HT): 3 000 req/day, adds winner intelligence
See https://tenderapi.fr/#pricing.
Local development
Override the API base URL via TENDERAPI_BASE_URL (default https://tenderapi.fr).
Changelog
0.4.0 (2026-06-03)
- TED coverage current for FR/DE/IT/ES/UK (legacy XML until end 2023, eForms since), refreshed daily. Non-FR notices are no longer frozen at a historical cutoff.
search_tendersnew parameters:include_planning(include TED prior-information notices, excluded by default),include_null_deadlineandinclude_null_budget(keep rows with no deadline / no budget through the corresponding filters).
0.2.0 and 0.3.0
Maintenance releases tracking TenderAPI updates.
0.1.2 (2026-05-07)
The underlying TenderAPI changed behaviour in ways that affect MCP clients:
- Stricter query parameters. Unknown parameters (e.g.
q=instead ofkeyword=) now return400 Bad Requestwith a list of valid parameters, instead of being silently ignored. Update any tool calls that relied on the old behaviour. - Multi-word
keywordsearch now AND-matches tokens.keyword=espaces vertsrequires both words to appear (in title or description). Previously it required the literal substring "espaces verts". - Comma-separated lists supported on
regionandcpv.region=paca,bretagnenow works as well as repeating the parameter. - TED awards now expose real SIRETs (
winner_siret,buyer_siret) for ~50% of records. BOAMP SIRETs are being progressively enriched via the SIRENE register. - Country codes normalised to ISO-3166-1 alpha-2 (
FR, notFRA) across both BOAMP and TED awards/tenders.
0.1.1 (2026-05-04)
Initial public release on the MCP Registry.
License
MIT, see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tenderapi_mcp-0.4.0.tar.gz.
File metadata
- Download URL: tenderapi_mcp-0.4.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f33a1e1e1e663f33cf8154461419f2c7f960e8a08a64bed099707c458aa5ad
|
|
| MD5 |
5035d52b99f03dd699416907ad2b168a
|
|
| BLAKE2b-256 |
ce14beb867dcb209ad9399e3ac0d66050bcaf2580f9233bae185a0fc49be9814
|
File details
Details for the file tenderapi_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: tenderapi_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
260e582de0396d24e5000170b27bc5e22719d116a6a08acfadbc097ce08f0451
|
|
| MD5 |
f02c1863d3d05f01f1d7d16209cf8154
|
|
| BLAKE2b-256 |
af0b4c9640a73f941cc2d8695a2e0fca04b9f45838bf5a5e26babe867d9e3f00
|