Scoutee
Server Details
Tender search + AI CPV finder. Register free: 1 daily email alert, up to 20 results/search.
- Status
- Healthy
- Uptime
- 97.0% over 41 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- qchantel/scoutee-mcp
- GitHub Stars
- 0
- Server Listing
- Scoutee MCP server
TDQS
Scored across 3 tools
Each tool targets a distinct action-resource pair: CPV code discovery, single-tender retrieval by ID, and indexed tender search. Descriptions make the boundaries explicit (e.g. CPV lookup vs. keyword search, teaser vs. full notice), so misselection is unlikely.
All three names follow a consistent snake_case verb_noun pattern: find_cpv_codes, get_public_tender, search_public_tenders. The verbs differ (find/get/search) but each accurately reflects its action within a uniform convention.
Three tools is lean but coherent for a focused read-only public tender surface: discover codes, search, then fetch a specific notice. It is slightly thin, since only the anonymous/teaser surface is represented, but nothing is redundant.
The surface covers the core anonymous workflow (search -> browse results -> fetch a notice) plus CPV discovery. Gaps exist around alert creation, saved searches, and full document access, but these are deliberately gated behind accounts rather than missing operations.
Available Tools
3 toolsfind_cpv_codesFind CPV codes for your activityARead-onlyIdempotentInspect
Find official CPV catalogue candidates for the user's actual products, works or services. Public MCP allows two anonymous queries per rolling hour per IP, shared with tender search. Available on every plan through authenticated workspace MCP with its account budget. Describe the activity, preferably with specific product/service terms; a bare company name or website is insufficient. Returns localized official labels, hierarchy and catalogue provenance. Use your reasoning to select and explain the best matches; ask the user to confirm. No company web research or paid Scoutee AI call is triggered. Up to 30 candidates per call. Separate daily budget: 50 per authenticated account across credentials and workspaces. Read quota.remaining and quota.resets_at; do not retry after exhaustion. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Official label language, such as en, fr or de; unavailable labels fall back to English. | en |
| activity | Yes | The actual products, works or services supplied. Use specific activity terms; never send private company data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| quota | Yes | |
| guidance | No | |
| catalogue | Yes | |
| signup_url | No | |
| quota_notice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral detail beyond the annotations: anonymous quota of 2 per rolling hour per IP shared with tender search, authenticated daily budget of 50, quota.remaining/resets_at guidance, no retry after exhaustion, no paid call triggered, and explicit error-messaging rules for quota exhaustion. This is exactly the kind of context annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but deliberately front-loaded with the purpose and quota context, followed by input guidance and error-handling instructions. Some redundancy around not retrying and not hiding the quota error, but these repeated points are critical for correct agent behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers quota limits and reset times, authentication paths, input requirements, output characteristics (localized labels, hierarchy, provenance, up to 30 candidates), and detailed handling of anonymous quota exhaustion. With an output schema present, no return-structure explanation is needed, and the description leaves no operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful input-quality guidance for the activity parameter (use specific terms, bare company name/website is insufficient) and clarifies the locale behavior via 'localized official labels'. This goes slightly beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Find official CPV catalogue candidates' for the user's products/works/services. It is clearly distinct from sibling tools get_public_tender and search_public_tenders, which concern tenders, not CPV codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete input guidance: describe the activity with specific product/service terms, not a bare company name or website, and confirms the tool does not trigger web research or a paid AI call. It does not explicitly name sibling alternatives or conditions for choosing this tool over them, but the purpose alone makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_tenderRead one public tender (free preview)ARead-onlyIdempotentInspect
The public page of one notice, by its Scoutee identifier (the id of a search result). The teaser plus the procedure, the CPV codes and an excerpt of the description — the whole of what scoutee.org shows an anonymous visitor. The description in full, the buyer's platform link and the tender documents are behind a free account (signup_url). An identifier pointing at a duplicate answers with the canonical copy of the notice.
| Name | Required | Description | Default |
|---|---|---|---|
| tender_id | Yes | Scoutee identifier of the notice. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| note | No | |
| buyer | Yes | |
| title | Yes | |
| country | Yes | |
| excerpt | No | |
| currency | Yes | |
| location | Yes | |
| cpv_codes | No | |
| procedure | No | |
| public_key | Yes | |
| signup_url | No | |
| deadline_at | Yes | |
| source_name | Yes | |
| published_at | Yes | |
| estimated_value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnly, idempotent, non-destructive) by specifying exactly what is returned (teaser, procedure, CPV codes, excerpt), what is excluded (full description, buyer link, documents), and duplicate handling (returns canonical copy). This is valuable behavioral context not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and well-structured: three sentences that front-load the purpose, detail the content scope, and add a duplicate-handling edge case. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the tool is a simple read operation with one parameter, the description is fully adequate. It explains what data is available, what is gated behind an account, and how duplicates are handled – nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents `tender_id` as the Scoutee identifier, so schema coverage is 100%. The description adds that it is the `id` of a search result and that duplicates resolve to canonical form, giving extra meaning beyond the schema and linking it to the sibling tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('public tender'), and clarifies it fetches a single notice by its Scoutee identifier. It also differentiates from the sibling search_public_tenders by implying it retrieves one result rather than searching, so an agent can distinguish them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you have a Scoutee identifier from a search result) and sets expectations about free vs. account-gated content. It does not explicitly name the sibling or provide exclusion criteria, but the context of 'by its identifier' and the sibling's search purpose make the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_public_tendersSearch public tenders (free preview)ARead-onlyIdempotentInspect
Search Scoutee's index of public procurement notices from Europe. No account and no API key needed. Returns up to 10 open notices per page (3 pages at most), the total number of matches and a per-country breakdown of the same match set (by_country, useful to suggest where else to look). Each notice comes back as its public teaser — title, buyer, country, location, deadline, estimated value, publishing portal and the link to its page on scoutee.org. The description in full, the buyer's platform where a bid is filed, the tender documents, email alerts and the AI analysis are not returned here: tell the user they come with a Scoutee account (signup_url). Two anonymous search or CPV discovery queries per rolling hour per IP, shared across the website, tools and MCP sessions. Custom keywords and filters are supported. Read quota.remaining and quota.resets_at; after exhaustion, wait or connect a free account. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools. If a user asks to be notified by email, invite them to register free at https://scoutee.org/en/signup and save their search on Scoutee. Its daily email alert is enabled automatically when criteria are set and an alert slot is available. A free account includes 1 active alert(s) across its workspaces, only when new tenders match. Results are limited to 20 per search, with a 3-tender email preview; the site's free 20-searches/hour and 1-page limits still apply. Paid plans support alerts for multiple searches. Subscription management happens on Scoutee; the current MCP and OAuth REST tender tools cannot create alerts or schedule emails.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text over title, buyer and description. Every word must match the *start* of a word in the notice ('nettoy' finds 'nettoyage'); a substring inside a word does not match. Accent- and case-insensitive. | |
| page | No | 1-based page number, 1 to 3 on this free endpoint. | |
| sort | No | 'newest' (publication descending, the default), 'oldest' (publication ascending) or 'deadline' (soonest submission deadline first). | newest |
| country | No | Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'Italy'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use. | |
| keyword | No | Keywords matched as whole words (plural tolerated) in title, buyer or description, plus the cached translations of each keyword on the portals of that language — the way to search across countries without translating anything yourself. Several keywords widen the search (a notice matching any of them is returned). | |
| max_value | No | Maximum estimated value. Notices without a published value remain included. | |
| min_value | No | Minimum estimated value, in the currency of the notice. Notices without a published value remain included when this is set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| page | Yes | |
| items | Yes | |
| pages | Yes | |
| quota | No | |
| total | Yes | |
| page_size | Yes | |
| by_country | No | |
| signup_url | No | |
| quota_notice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description does add real behavioral context beyond that (2 queries/hour per IP, 3-page cap, 20 results limit, teaser-only fields, no alert scheduling), but it becomes an agent-scripting manual rather than a description of the tool's behavior and repeatedly restates the quota flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded well, but the body is long and mixes tool semantics with multi-step user-facing scripts ('show a clickable link', 'in their language', 'do not retry'), including near-duplicate instructions for anonymous_query_exhausted and quota.remaining=0. Several sentences could be consolidated without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, and the description still previews the returned teaser fields and the by_country map, covers quota semantics, the anonymous-vs-account distinction, and what is deliberately unavailable. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents q, page, sort, country, keyword, min_value and max_value with good detail (prefix matching, by_country values, currency caveats). The description adds only a generic 'custom keywords and filters are supported' line, which is baseline-level value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Scoutee's index of public procurement notices from Europe') and immediately frames it as the free anonymous preview, which separates it from get_public_tender (single notice) and find_cpv_codes (CPV discovery). The scope of what comes back and what does not is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditions and alternatives: two anonymous queries per rolling hour, check quota.remaining/resets_at, after exhaustion wait or connect a free account via workspace MCP, and explicitly 'do not retry or switch tools'. It also routes email-alert requests to signup rather than this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_public_tenders1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'United States', 'Canada'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use."New value: +"Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'Italy'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use."
2 tool updates
- Changed
find_cpv_codes2 fields changed- added
Output schema / properties / quota_noticeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Quota Notice" +} - added
Output schema / properties / signup_urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Signup Url" +}
- Changed
search_public_tenders3 fields changed- added
Output schema / $defs / DailyQuotaAdded value: +{ + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "remaining": { + "title": "Remaining", + "type": "integer" + }, + "resets_at": { + "format": "date-time", + "title": "Resets At", + "type": "string" + } + }, + "required": [ + "limit", + "remaining", + "resets_at" + ], + "title": "DailyQuota", + "type": "object" +} - added
Output schema / properties / quotaAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/DailyQuota" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / quota_noticeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Quota Notice" +}
1 tool update
- Changed
search_public_tenders2 fields changed- changed
Input schema / properties / max_value / descriptionPrevious value: -"Maximum estimated value."New value: +"Maximum estimated value. Notices without a published value remain included." - changed
Input schema / properties / min_value / descriptionPrevious value: -"Minimum estimated value, in the currency of the notice. Notices without a published value are excluded when this is set."New value: +"Minimum estimated value, in the currency of the notice. Notices without a published value remain included when this is set."
1 tool update
- Added
find_cpv_codes
2 tool updates
- Changed
get_public_tender1 field changed- changed
Output schema / properties / note / defaultPrevious value: -"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"New value: +"Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"
- Changed
search_public_tenders2 fields changed- changed
Output schema / $defs / PublicTender / properties / note / defaultPrevious value: -"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"New value: +"Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup" - changed
Output schema / properties / note / defaultPrevious value: -"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"New value: +"Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"
2 tool updates
- Changed
get_public_tender1 field changed- changed
Output schema / properties / note / defaultPrevious value: -"Public teaser. The full notice (description, buyer's platform link, tender documents), saved searches with email alerts and the AI analysis of a tender need a free Scoutee account — https://scoutee.org/en/signup — and the REST/MCP API needs a Pro plan."New value: +"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"
- Changed
search_public_tenders2 fields changed- changed
Output schema / $defs / PublicTender / properties / note / defaultPrevious value: -"Public teaser. The full notice (description, buyer's platform link, tender documents), saved searches with email alerts and the AI analysis of a tender need a free Scoutee account — https://scoutee.org/en/signup — and the REST/MCP API needs a Pro plan."New value: +"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup" - changed
Output schema / properties / note / defaultPrevious value: -"Public teaser. The full notice (description, buyer's platform link, tender documents), saved searches with email alerts and the AI analysis of a tender need a free Scoutee account — https://scoutee.org/en/signup — and the REST/MCP API needs a Pro plan."New value: +"Public preview. Create a free Scoutee account for the full notice. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup"
4 tool updates
- Added
get_public_tender - Removed
get_tender - Added
search_public_tenders - Removed
search_tenders
1 tool update
- Changed
search_tenders1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Belgium', 'Germany'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use."New value: +"Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'United States', 'Canada'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use."
2 tool updates
- Changed
get_tender1 field changed- added
Output schema / properties / public_keyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Public Key" +}
- Changed
search_tenders1 field changed- added
Output schema / $defs / TenderOut / properties / public_keyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Public Key" +}
2 tool updates
- Changed
get_tender2 fields changed- added
Output schema / $defs / AnalysisStateAdded value: +{ + "description": "Where « Analyser l'appel d'offres » stands for this notice (scoutee.api.brief).\n\nOne `tender_briefs` row per *canonical* notice, shared by every workspace: a list can therefore show\nan analysis somebody else started. Just the three fields a row needs — the full `BriefOut` is read\nfrom `GET /tenders/{id}/brief` when the reader opens the notice.", + "properties": { + "finished_at": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Finished At" + }, + "status": { + "title": "Status", + "type": "string" + }, + "step": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Step" + } + }, + "required": [ + "status", + "step", + "finished_at" + ], + "title": "AnalysisState", + "type": "object" +} - added
Output schema / properties / analysisAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AnalysisState" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
search_tenders2 fields changed- added
Output schema / $defs / AnalysisStateAdded value: +{ + "description": "Where « Analyser l'appel d'offres » stands for this notice (scoutee.api.brief).\n\nOne `tender_briefs` row per *canonical* notice, shared by every workspace: a list can therefore show\nan analysis somebody else started. Just the three fields a row needs — the full `BriefOut` is read\nfrom `GET /tenders/{id}/brief` when the reader opens the notice.", + "properties": { + "finished_at": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Finished At" + }, + "status": { + "title": "Status", + "type": "string" + }, + "step": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Step" + } + }, + "required": [ + "status", + "step", + "finished_at" + ], + "title": "AnalysisState", + "type": "object" +} - added
Output schema / $defs / TenderOut / properties / analysisAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AnalysisState" + }, + { + "type": "null" + } + ], + "default": null +}
2 tool updates
- Changed
get_tender2 fields changed- added
Output schema / properties / sectorsAdded value: +{ + "items": { + "type": "string" + }, + "title": "Sectors", + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "source_id", - "external_id", - "title", - "buyer", - "description", - "url", - "location", - "procedure", - "cpv_codes", - "estimated_value", - "currency", - "published_at", - "deadline_at", - "first_seen_at", - "last_seen_at", - "closed_at" -]New value: +[ + "id", + "source_id", + "external_id", + "title", + "buyer", + "description", + "url", + "location", + "procedure", + "cpv_codes", + "sectors", + "estimated_value", + "currency", + "published_at", + "deadline_at", + "first_seen_at", + "last_seen_at", + "closed_at" +]
- Changed
search_tenders3 fields changed- added
Output schema / $defs / TenderOut / properties / sectorsAdded value: +{ + "items": { + "type": "string" + }, + "title": "Sectors", + "type": "array" +} - changed
Output schema / $defs / TenderOut / requiredPrevious value: -[ - "id", - "source_id", - "external_id", - "title", - "buyer", - "description", - "url", - "location", - "procedure", - "cpv_codes", - "estimated_value", - "currency", - "published_at", - "deadline_at", - "first_seen_at", - "last_seen_at", - "closed_at" -]New value: +[ + "id", + "source_id", + "external_id", + "title", + "buyer", + "description", + "url", + "location", + "procedure", + "cpv_codes", + "sectors", + "estimated_value", + "currency", + "published_at", + "deadline_at", + "first_seen_at", + "last_seen_at", + "closed_at" +] - added
Output schema / properties / by_sectorAdded value: +{ + "additionalProperties": { + "type": "integer" + }, + "title": "By Sector", + "type": "object" +}
2 tool updates
- First observed
get_tender - First observed
search_tenders
Related MCP Connectors
Public tenders and contract awards from EU TED and UK Find a Tender, with buyer, value and deadline.
Public procurement register, 50+ countries: suppliers, buyers, contracts, single-bid awards
111UK and Ireland public sector tenders, contract awards, buyers and expected re-tenders.
Search EU public tenders across TED and 8 national portals. Monitor, match, and analyse procurement.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.MIT

oro-intel-mcpofficial
AlicenseNot gradedqualityDmaintenanceUK public procurement data for AI agents. Tenders, contracts, buyer and supplier profiles over MCP and REST. 250 free credits.MIT- AlicenseNot gradedqualityDmaintenanceFind, analyze, and score Polish public tenders (BZP): parsed requirements, deadlines, certificates, and bid-fit scoring against your company profile.8 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and retrieve public procurement notices from 17 sources across Germany, the EU, and the UK, with filtering by country, CPV code, deadline, and contract value, plus full tender details and source freshness checks.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.