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 alert profiles (daily email digest, Teams card, or webhook) 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): 500 req/day, adds awards + alert profiles (email digest, Teams or webhook)
- Pro (15 €/mo HT): 1 500 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).
License
MIT, see LICENSE.
Release files for tenderapi-mcp 0.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tenderapi_mcp-0.7.2.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tenderapi_mcp-0.7.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.1 kB
Release files / tenderapi_mcp-0.7.2.tar.gz
| Download URL | tenderapi_mcp-0.7.2.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4501fad0145526444fc993319302f9a6cfa3601ef7c7fdd9549e8c134592823c
|
|
BLAKE2b-256 checksum How to use checksums |
601add6a7f84c8a48d774ce81b0e733582802e3b7add220e15aabd99224e5df8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / tenderapi_mcp-0.7.2-py3-none-any.whl
| Download URL | tenderapi_mcp-0.7.2-py3-none-any.whl |
|---|---|
| Size | 10.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2c19d1ef50c9d3bc4d15b4b5e5f38f76bef23e6e08f591708e788b543c137fb
|
|
BLAKE2b-256 checksum How to use checksums |
28101a5fdb45dd0bfb0b28106131391f19ab8c1d15ac699f4446b16d5e2ad19e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|