Skip to main content

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.

Release files for tenderapi-mcp 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tenderapi-mcp 0.8.0
File Size Uploaded
tenderapi_mcp-0.8.0.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tenderapi-mcp 0.8.0
File Interpreter ABI Platform
tenderapi_mcp-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.5 kB

Release files / tenderapi_mcp-0.8.0.tar.gz

Download URL tenderapi_mcp-0.8.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
eb48b481441193e85153cd002de5de35bee61b0e2fa3f734dbe7b49831f61b98
BLAKE2b-256 checksum
How to use checksums
9f546fae074c1f8e57ecd1e34dab8adcac025b2dcd516ce72355e8a564d67dbb
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.8.0-py3-none-any.whl

Download URL tenderapi_mcp-0.8.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a0cdc0b6f17ec07a2ab9447ca7e65585894cc82af611d540dbd6c67ed5fc1a2d
BLAKE2b-256 checksum
How to use checksums
293960680c1630d9c704842e62d20811e92a5be542a794c63a60e1a39508e525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page