National Tenders MCP Server¶
The National Tenders MCP Server provides access to below-threshold public procurement tenders published on national platforms across Europe. It complements the TED server by covering smaller contracts that don't reach EU publication thresholds.
What You Can Do¶
Search Below-Threshold Procurement¶
- Search across 5 countries: France, United Kingdom, Germany, Spain, and the Netherlands
- Find open opportunities: Discover active tenders ready for bidding
- Browse by deadline: Plan submissions with deadline-sorted results
- Analyze procurement trends: Get statistics by country, source, or status
Key Features¶
- Hybrid Search: Combine full-text (BM25) and semantic (vector) search with Reciprocal Rank Fusion
- Rich Filtering: CPV codes, NUTS regions, buyer name, value range, dates, and status
- Country-Specific Endpoints: Dedicated search for France and UK
- Similar Tenders: Find related opportunities using vector embeddings
- Multiple Data Sources: BOAMP (FR), Contracts Finder (GB), oeffentlichevergabe.de (DE), PLACSP (ES), TenderNed (NL)
Covered Countries & Sources¶
| Country | Source | Platform |
|---|---|---|
| France | BOAMP | Bulletin Officiel des Annonces de Marchés Publics |
| United Kingdom | Contracts Finder | UK Government Contracts Finder |
| Germany | oeffentlichevergabe.de | German public procurement portal |
| Spain | PLACSP | Plataforma de Contratación del Sector Público |
| Netherlands | TenderNed | Dutch government tender platform |
Who Should Use This¶
Small & Medium Enterprises (SMEs)
- Companies seeking government contracts below EU thresholds
- Local businesses looking for opportunities in their region
- Suppliers wanting to expand across European national markets
Business Development
- Sales teams identifying smaller but accessible contracts
- Market analysts tracking national procurement trends
- Consultants advising clients on public sector opportunities
Procurement Professionals
- Officers benchmarking prices and market practices
- Researchers studying national procurement patterns
- Journalists investigating public spending
How It Works¶
graph LR
A[You] -->|Search Query| B[National Tenders MCP Server]
B -->|Search| C[National Procurement Databases]
C -->|Results| B
B -->|Tender Opportunities| A
style C fill:#1a1a2e,stroke:#00d4ff
The server indexes tenders from 5 national platforms into a unified database with full-text and vector search capabilities.
Quick Example¶
Find IT services tenders in France:
{
"method": "search_france_tenders",
"params": {
"query": "services informatiques",
"status": "active",
"limit": 5
}
}
Response:
{
"result": {
"data": [
{
"tender_id": "FR-24-0054321",
"title": "Maintenance des systèmes d'information",
"buyer_name": "Ville de Lyon",
"country": "FR",
"source": "BOAMP",
"status": "active",
"estimated_value": 85000.0,
"currency": "EUR",
"deadline": "2026-03-15T12:00:00+01:00",
"nuts_codes": ["FRK26"],
"cpv_codes": ["72000000"],
"score": 0.89
}
]
}
}
Available Tools¶
1. search_tenders - Cross-Country Hybrid Search¶
Search below-threshold tenders across all 5 countries using hybrid (BM25 + vector) search with advanced filtering.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Search query (required) |
mode |
string | hybrid (default), fts, or vector |
limit |
integer | Max results (default: 10) |
country |
string | Filter by country: FR, GB/UK, DE, ES, NL |
status |
string | active, awarded, or cancelled |
cpv_code |
string | Filter by CPV code (exact match) |
nuts_code |
string | Filter by NUTS code prefix (e.g., FR, FR10, DE300) |
source |
string | Filter by source: BOAMP, Contracts Finder, etc. |
min_value |
number | Minimum estimated value |
max_value |
number | Maximum estimated value |
currency |
string | Filter by currency (EUR, GBP) |
published_after |
string | Publication date after (ISO format) |
published_before |
string | Publication date before (ISO format) |
deadline_after |
string | Submission deadline after (ISO format) |
deadline_before |
string | Submission deadline before (ISO format) |
fts_weight |
number | Weight for full-text search in hybrid mode (0-1) |
vector_weight |
number | Weight for vector search in hybrid mode (0-1) |
2. search_france_tenders - France (BOAMP)¶
Search French below-threshold tenders specifically.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Search query (required) |
mode |
string | hybrid (default), fts, or vector |
limit |
integer | Max results (default: 10) |
status |
string | active, awarded, or cancelled |
cpv_code |
string | Filter by CPV code |
3. search_uk_tenders - United Kingdom (Contracts Finder)¶
Search UK below-threshold tenders specifically.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Search query (required) |
mode |
string | hybrid (default), fts, or vector |
limit |
integer | Max results (default: 10) |
status |
string | active, awarded, or cancelled |
cpv_code |
string | Filter by CPV code |
4. get_tender - Tender Retrieval¶
Get the full record of a specific tender by its ID.
Parameters:
| Parameter | Type | Description |
|---|---|---|
tender_id |
string | Tender identifier (e.g., FR-12345 or GB-abc-def) |
5. get_open_opportunities - Active Tenders¶
Get currently open/active tenders. Useful for bid/no-bid analysis.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Optional keyword search |
country |
string | Country filter: FR, GB/UK, or all |
cpv_code |
string | Optional CPV code filter |
limit |
integer | Max results (default: 10) |
6. find_similar_tenders - Similar Tenders¶
Find tenders similar to a given tender using its stored embedding vector. No external API call needed.
Parameters:
| Parameter | Type | Description |
|---|---|---|
tender_id |
string | Tender ID to find similar tenders for (required) |
limit |
integer | Max results (default: 10) |
country |
string | Filter by country code |
cpv_code |
string | Filter by CPV code |
nuts_code |
string | Filter by NUTS code prefix |
7. browse_by_deadline - Browse by Deadline¶
Browse tenders sorted by submission deadline (ascending). Defaults to deadlines from today onwards.
Parameters:
| Parameter | Type | Description |
|---|---|---|
after |
string | Show deadlines after this date (ISO format, default: today) |
before |
string | Show deadlines before this date (ISO format) |
country |
string | Filter by country code |
cpv_code |
string | Filter by CPV code |
nuts_code |
string | Filter by NUTS code prefix |
status |
string | Filter by status |
source |
string | Filter by data source |
limit |
integer | Max results (default: 20) |
8. search_by_buyer - Search by Contracting Authority¶
Search tenders by buyer / contracting authority name using full-text search.
Parameters:
| Parameter | Type | Description |
|---|---|---|
buyer_name |
string | Name or partial name of the buyer (required) |
country |
string | Filter by country code |
status |
string | Filter by status |
limit |
integer | Max results (default: 10) |
9. search_by_cpv - Search by CPV Code¶
Search tenders by CPV (Common Procurement Vocabulary) code. Optionally combine with a text query.
Parameters:
| Parameter | Type | Description |
|---|---|---|
cpv_code |
string | CPV code, e.g., 45000000 (required) |
query |
string | Optional text query for hybrid search |
country |
string | Filter by country code |
status |
string | Filter by status |
limit |
integer | Max results (default: 10) |
10. search_by_nuts - Search by NUTS Region¶
Search tenders by NUTS code with prefix matching (FR matches all France, FR10 matches Ile-de-France, etc.).
Parameters:
| Parameter | Type | Description |
|---|---|---|
nuts_code |
string | NUTS code prefix (required) |
query |
string | Optional text query for hybrid search |
country |
string | Filter by country code |
status |
string | Filter by status |
limit |
integer | Max results (default: 10) |
11. search_by_value_range - Search by Contract Value¶
Search tenders within an estimated contract value range.
Parameters:
| Parameter | Type | Description |
|---|---|---|
min_value |
number | Minimum estimated value |
max_value |
number | Maximum estimated value |
currency |
string | Currency code (default: EUR) |
query |
string | Optional text query for hybrid search |
country |
string | Filter by country code |
status |
string | Filter by status |
limit |
integer | Max results (default: 10) |
12. get_tender_statistics - Aggregated Statistics¶
Get aggregated statistics about the tenders database.
Parameters:
| Parameter | Type | Description |
|---|---|---|
group_by |
string | Field to group by: country, status, source, currency, or nuts_code_main |
country |
string | Filter by country before aggregating |
status |
string | Filter by status before aggregating |
limit |
integer | Max groups to return (default: 20) |
13. get_stats - Database Statistics¶
Get technical statistics about the database (row count, storage info, embedding service status).
Parameters: None
TED vs National Tenders¶
| Aspect | TED | National Tenders |
|---|---|---|
| Scope | Above EU thresholds | Below EU thresholds |
| Coverage | All EU/EEA countries | FR, GB, DE, ES, NL |
| Contract Size | Large (typically >EUR 140k services, >EUR 5.4M works) | Smaller contracts |
| Source | TED (Official Journal of the EU) | National platforms (BOAMP, Contracts Finder, etc.) |
| Languages | Multiple EU languages | Primarily national language |
Comprehensive Coverage
Use both the TED and National Tenders servers together for complete procurement intelligence. Many organizations publish above-threshold tenders on TED while their smaller contracts appear only on national platforms.
Next Steps¶
- Quick Start: Learn how to connect and make your first query
- Examples: See practical usage scenarios
- TED Server: For above-threshold EU tenders