pypi tenderapi-mcpstreamable-httpMITupdated 27d ago
Expose TenderAPI (French BOAMP + EU TED public procurement data) as MCP tools for AI agents (Claude Desktop, Cursor, Continue, Zed, etc.).
What can you do with tenderapi mcp?
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/ (100 requests/day), 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 |
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
- Hosted, keyless: 30 tool calls/day per IP, tenders only
- Free key: 100 req/day, tenders only
- Starter (5 €/month): 500 req/day, adds awards + alert profiles (email digest, Teams or webhook)
- Pro (15 €/month): 1 500 req/day, adds winner intelligence
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.
Install
Add tenderapi mcp to your client. Pick the one you use.
{
"servers": {
"tenderapi-mcp": {
"type": "http",
"url": "https://tenderapi.fr/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add tenderapi-mcp -- uvx tenderapi-mcpcodex mcp add tenderapi-mcp -- uvx tenderapi-mcpamp mcp add tenderapi-mcp -- uvx tenderapi-mcp{
"mcpServers": {
"tenderapi-mcp": {
"command": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"tenderapi-mcp": {
"command": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"tenderapi-mcp": {
"command": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"tenderapi-mcp": {
"command": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"tenderapi-mcp": {
"command": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"tenderapi-mcp": {
"type": "local",
"command": "uvx",
"args": [
"tenderapi-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"tenderapi-mcp": {
"command": {
"path": "uvx",
"args": [
"tenderapi-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx tenderapi-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
5 tools
tenderapi mcp exposes 5 tools to a connected agent.
- search_tenders
- Free
- get_tender
- Free
- search_awards
- Starter
- get_award
- Starter
- winner_intel
- Pro
Score
81 / 100
Excellent
- Documentation22/25
- Maintenance25/25
- Trust13/20
- Capability6/15
- Install experience15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 19 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 5 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.8.0Latest | Aug 12, 2026 |
| 0.7.4 | Aug 9, 2026 |
| 0.7.3 | Aug 9, 2026 |
| 0.7.2 | Aug 9, 2026 |
| 0.7.1 | Jul 10, 2026 |
| 0.7.0 | Jul 8, 2026 |
| 0.6.2 | Jun 30, 2026 |
| 0.6.1 | Jun 29, 2026 |
| 0.6.0 | Jun 28, 2026 |
| 0.5.1 | Jun 18, 2026 |
| 0.5.0 | Jun 17, 2026 |
| 0.4.0 | Jun 3, 2026 |
| 0.3.0 | Jun 2, 2026 |
| 0.2.0 | May 13, 2026 |
| 0.1.2 | May 7, 2026 |
| 0.1.1 | May 4, 2026 |