TED MCP Server¶
The TED MCP Server provides access to European Union public procurement tenders. Use it to find construction projects, IT services contracts, and other procurement opportunities across the EU.
What You Can Do¶
Find Procurement Opportunities¶
- Discover construction projects across Europe
- Find IT services contracts for government agencies
- Locate procurement tenders by country and sector
- Access comprehensive EU procurement database
Key Features¶
- Simple API: Easy-to-use interface for procurement search
- Powerful Filtering: Narrow results by country, type, and value
- Hybrid Search: Find tenders by keyword or concept
- Real-time Data: Access up-to-date procurement information
Who Should Use This¶
Business Development - Companies seeking government contracts - Sales teams identifying new opportunities - Business developers tracking market trends
Procurement Professionals - Procurement officers researching best practices - Consultants advising on tender processes - Analysts studying procurement patterns
Researchers & Journalists - Investigating public spending and contracts - Analyzing procurement trends across EU - Tracking specific sectors or industries
How It Works¶
graph LR
A[You] -->|Search Query| B[TED MCP Server]
B -->|Search| C[EU Procurement Database]
C -->|Results| B
B -->|Tender Opportunities| A
Quick Example¶
Find construction projects in Poland:
{
"method": "search_ted",
"params": {
"query": "hospital construction",
"country": "POL",
"limit": 5
}
}
Response:
{
"result": {
"data": [
{
"title": "Construction of Regional Hospital in Warsaw",
"notice_id": "87e29ed9-5fbc-418e-9e6d-1bb5bc0c142c",
"country": "POL",
"estimated_value": 150000000.0,
"currency": "EUR",
"deadline": "2026-03-31T23:59:59+01:00",
"score": 0.92
}
]
}
}
Available Tools¶
1. search_ted - Hybrid Search¶
Search using both keywords and concepts 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 code (e.g., POL, FRA) |
procurement_type |
string | Filter by procedure type (e.g., open, restricted) |
cpv_code |
string | Filter by CPV code (exact match) |
nuts_code |
string | Filter by NUTS code prefix (e.g., FR, FR10) |
min_value |
number | Minimum estimated value |
max_value |
number | Maximum estimated value |
currency |
string | Filter by currency code (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_ted_fts - Keyword Search¶
Find tenders using exact keyword matching (BM25 via Tantivy).
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Search query (required) |
limit |
integer | Max results (default: 10) |
procurement_type |
string | Filter by procedure type |
3. search_ted_semantic - Concept Search¶
Find tenders by meaning and context using semantic vector search.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Search query in natural language (required) |
limit |
integer | Max results (default: 10) |
country |
string | Filter by country code |
4. get_ted_notice - Notice Retrieval¶
Get complete tender notice by its ID, including full XML content.
Parameters:
| Parameter | Type | Description |
|---|---|---|
notice_id |
string | Tender identifier (UUID) |
5. get_ted_stats - Database Info¶
Get statistics about the procurement database (row count, storage, embedding status).
Parameters: None
6. find_similar_tenders - Similar Tenders¶
Find tenders similar to a given notice using its stored embedding vector. No external API call needed.
Parameters:
| Parameter | Type | Description |
|---|---|---|
notice_id |
string | Notice UUID 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_tenders_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 |
procurement_type |
string | Filter by procedure type |
limit |
integer | Max results (default: 20) |
8. search_by_buyer - Search by Contracting Authority¶
Search notices 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 |
limit |
integer | Max results (default: 10) |
9. search_by_cpv - Search by CPV Code¶
Search notices by CPV (Common Procurement Vocabulary) code. Supports exact codes and prefix matching.
Parameters:
| Parameter | Type | Description |
|---|---|---|
cpv_code |
string | CPV code — exact (e.g., 45000000) or prefix (e.g., 45) (required) |
query |
string | Optional text query for hybrid search |
country |
string | Filter by country code |
limit |
integer | Max results (default: 10) |
10. search_by_nuts - Search by NUTS Region¶
Search notices 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 |
limit |
integer | Max results (default: 10) |
11. search_by_value_range - Search by Contract Value¶
Search notices 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 |
limit |
integer | Max results (default: 10) |
12. get_tender_statistics - Aggregated Statistics¶
Get aggregated statistics about the TED notices database.
Parameters:
| Parameter | Type | Description |
|---|---|---|
group_by |
string | Field to group by: procurement_type, currency, nuts_code_main, or country |
country |
string | Filter by country before aggregating |
limit |
integer | Max groups to return (default: 20) |
Next Steps¶
- Quick Start: Learn how to connect and make your first query
- Search Guide: Master search techniques and best practices
- Examples: See practical usage scenarios
- National Tenders: For below-threshold national procurement