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
Get a free key at https://tenderapi.fr/ (includes one weekly email watch), then:
{
"mcpServers": {
"tenderapi": {
"command": "tenderapi-mcp",
"env": {
"TENDERAPI_KEY": "ta_your_key_here"
}
}
}
}
Claude Desktop config location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Restart the client. The tenderapi server should appear in the tool picker.
From source instead of PyPI:
git clone https://github.com/IDNSIDNS/tenderapi-mcp
cd tenderapi-mcp
pip install -e .
Any MCP client supporting stdio transport works. The tenderapi-mcp binary installed by pip is the entry point.
Tools exposed
| Tool | Tier | Hosted (keyless) | 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 |
Pro | — | Search award notices (who won which contract, for how much) |
get_award |
Pro | — | Fetch a single award by id |
winner_intel |
Pro | — | Aggregated winner stats: top companies by CPV / region / year |
search_renewals |
Pro | — | Contracts reaching their declared end date (DECP), i.e. coming back to tender in 3-18 months, with current holder |
me |
any | — | Current key tier, quota remaining, available features |
list_profiles, get_profile, create_profile, update_profile, delete_profile |
Free (1, weekly email) / Pro | — | Manage alert profiles for new-tender matches: weekly email on a free key; daily email digest, Teams card or webhook on Pro |
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
- Hosted, keyless: 30 tool calls/day per IP, tenders only
- Free key: tenders, 1 alert profile (email digest every Monday, to the account address)
- Pro (15 €/month): adds awards and winner intelligence, up to 10 alert profiles delivered every morning (email digest, Teams or webhook)
Request limits only protect the service (free: 1 000/day and 30/min; Pro: 1 500/day and 120/min); paginated lists stop at row 1 000.
Prices are final — no VAT is charged (art. 293 B French tax code). See https://tenderapi.fr/#pricing.
Local development
Override the API base URL via TENDERAPI_BASE_URL (default https://tenderapi.fr).
Requirements
Pinned to the mcp 1.x line: version 2.0.0 removed mcp.server.fastmcp, which this
server is built on. Migration to the 2.x API is tracked separately.
License
MIT, see LICENSE.
Metadata
Release files for tenderapi-mcp 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tenderapi_mcp-0.10.0.tar.gz | 11.5 kB | Without provenance | Details for tenderapi_mcp-0.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tenderapi_mcp-0.10.0-py3-none-any.whl | Python 3 | none | any | Details for tenderapi_mcp-0.10.0-py3-none-any.whl |
Total release size: 23.8 kB
Release files / tenderapi_mcp-0.10.0.tar.gz
| Download URL | tenderapi_mcp-0.10.0.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9366ef2ca4a66b5208700fe05cc47ec5197c53ae117c3504e2beb30adf894f33
|
|
BLAKE2b-256 checksum How to use checksums |
734384b2af8db889cdff753402a6053bd7d1989a62a77d44dd61ba768fbdda34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / tenderapi_mcp-0.10.0-py3-none-any.whl
| Download URL | tenderapi_mcp-0.10.0-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1906a2fc01fb36bcbb287fba711ce4dba3dd81043096bf98740e1d5aa6b33a26
|
|
BLAKE2b-256 checksum How to use checksums |
a9672ee6c2ed0ae5a4b9d0bad432ccfe5be7c9cfa800547f02a07b08223936b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for tenderapi-mcp 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.