Skip to main content
Glama

Server Details

Tender search + AI CPV finder. Register free: 1 daily email alert, up to 20 results/search.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
95.7% over 22 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

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a distinct purpose: finding CPV codes, retrieving a specific tender, and searching tenders. No overlap exists between the three, and their descriptions clearly delineate their responsibilities.

Naming Consistency5/5

All tool names follow the same verb_noun pattern: find_cpv_codes, get_public_tender, search_public_tenders. The verbs are specific and the nouns are consistent, making the pattern predictable and easy to infer.

Tool Count4/5

Three tools is minimal but appropriate for a focused read-only tender search service. Each tool covers a core need (search, detail retrieval, CPV lookup) and the count does not feel excessive or inadequate for the stated scope.

Completeness4/5

The tool surface covers the primary workflow: searching tenders, retrieving details, and discovering CPV codes. Some advanced features like alert creation are explicitly not available via MCP, but that's a limitation of the service rather than a gap in the tool set. Minor gaps exist around user account integration, but those are handled externally.

Available Tools

3 tools
find_cpv_codesFind CPV codes for your activityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoOfficial label language, such as en, fr or de; unavailable labels fall back to English.en
activityYesThe actual products, works or services supplied. Use specific activity terms; never send private company data.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
quotaYes
guidanceNo
catalogueYes
signup_urlNo
quota_noticeNo

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tender_idYesScoutee identifier of the notice.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
noteNo
buyerYes
titleYes
countryYes
excerptNo
currencyYes
locationYes
cpv_codesNo
procedureNo
public_keyYes
signup_urlNo
deadline_atYes
source_nameYes
published_atYes
estimated_valueYes

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)A
Read-onlyIdempotent
Inspect

Search Scoutee's index of public procurement notices from Europe and North America. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree 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.
pageNo1-based page number, 1 to 3 on this free endpoint.
sortNo'newest' (publication descending, the default), 'oldest' (publication ascending) or 'deadline' (soonest submission deadline first).newest
countryNoCountries 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.
keywordNoKeywords 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_valueNoMaximum estimated value. Notices without a published value remain included.
min_valueNoMinimum estimated value, in the currency of the notice. Notices without a published value remain included when this is set.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
pageYes
itemsYes
pagesYes
quotaNo
totalYes
page_sizeYes
by_countryNo
signup_urlNo
quota_noticeNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, idempotentHint=true), the description discloses extensive behavioral details: pagination limits (10 per page, max 3 pages), total match count and by_country breakdown, exact fields returned (teaser only), what is withheld (full description, documents, alerts), quota semantics (2 anonymous queries per rolling hour per IP), and explicit handling of quota exhaustion including instructing the agent to show a signup link and never misrepresent the error. This far exceeds what annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that mixes tool functionality with agent-facing instructions (e.g., 'show a clickable ... link', 'never hide the quota error', 'mention the anonymous reset time'). It repeats the quota-exhaustion guidance twice and includes lengthy account/alert policy details not needed to invoke the tool. Poor structure and significant redundancy prevent it from being concise or well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description is highly complete: it covers result limits, return fields, exclusions, quota behavior, error handling, and account escalation paths. Since an output schema exists, return value structure is already handled; the description fills the behavioral and edge-case gaps comprehensively, leaving nothing an agent needs to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a detailed description (e.g., q's word-start matching, country exact values, keyword translation). The description adds only a generic 'Custom keywords and filters are supported' and a note that the by_country map lists exact country values. That is marginal value over the schema, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Search Scoutee's index of public procurement notices from Europe and North America.' It clearly communicates that this is a search tool for procurement notices, distinguishing it from sibling tools like get_public_tender (single tender retrieval) and find_cpv_codes (CPV discovery), even though it doesn't name them explicitly. The scope and free-preview nature are immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: it is the free anonymous search path ('No account and no API key needed'), with explicit exclusions such as 'the current MCP and OAuth REST tender tools cannot create alerts or schedule emails' and guidance for existing account holders to 'connect their account through workspace MCP.' It does not directly contrast with the sibling tools, so it falls just short of a 5.

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. 2 tool updates
    • Changedfind_cpv_codes2 fields changed
      • addedOutput schema / properties / quota_notice
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Quota Notice"
        +}
      • addedOutput schema / properties / signup_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Signup Url"
        +}
    • Changedsearch_public_tenders3 fields changed
      • addedOutput schema / $defs / DailyQuota
        Added 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"
        +}
      • addedOutput schema / properties / quota
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/DailyQuota"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedOutput schema / properties / quota_notice
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Quota Notice"
        +}
  2. 1 tool update
    • Changedsearch_public_tenders2 fields changed
      • changedInput schema / properties / max_value / description
        Previous value: -"Maximum estimated value."New value: +"Maximum estimated value. Notices without a published value remain included."
      • changedInput schema / properties / min_value / description
        Previous 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."
  3. 1 tool update
    • Addedfind_cpv_codes
  4. 2 tool updates
    • Changedget_public_tender1 field changed
      • changedOutput schema / properties / note / default
        Previous 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"
    • Changedsearch_public_tenders2 fields changed
      • changedOutput schema / $defs / PublicTender / properties / note / default
        Previous 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"
      • changedOutput schema / properties / note / default
        Previous 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"
  5. 2 tool updates
    • Changedget_public_tender1 field changed
      • changedOutput schema / properties / note / default
        Previous 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"
    • Changedsearch_public_tenders2 fields changed
      • changedOutput schema / $defs / PublicTender / properties / note / default
        Previous 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"
      • changedOutput schema / properties / note / default
        Previous 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"
  6. 4 tool updates
    • Addedget_public_tender
    • Removedget_tender
    • Addedsearch_public_tenders
    • Removedsearch_tenders
  7. 1 tool update
    • Changedsearch_tenders1 field changed
      • changedInput schema / properties / country / description
        Previous 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."
  8. 2 tool updates
    • Changedget_tender1 field changed
      • addedOutput schema / properties / public_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Public Key"
        +}
    • Changedsearch_tenders1 field changed
      • addedOutput schema / $defs / TenderOut / properties / public_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Public Key"
        +}
  9. 2 tool updates
    • Changedget_tender2 fields changed
      • addedOutput schema / $defs / AnalysisState
        Added 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"
        +}
      • addedOutput schema / properties / analysis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/AnalysisState"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
    • Changedsearch_tenders2 fields changed
      • addedOutput schema / $defs / AnalysisState
        Added 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"
        +}
      • addedOutput schema / $defs / TenderOut / properties / analysis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/AnalysisState"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
  10. 2 tool updates
    • Changedget_tender2 fields changed
      • addedOutput schema / properties / sectors
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Sectors",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous 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"
        +]
    • Changedsearch_tenders3 fields changed
      • addedOutput schema / $defs / TenderOut / properties / sectors
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Sectors",
        +  "type": "array"
        +}
      • changedOutput schema / $defs / TenderOut / required
        Previous 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"
        +]
      • addedOutput schema / properties / by_sector
        Added value: +{
        +  "additionalProperties": {
        +    "type": "integer"
        +  },
        +  "title": "By Sector",
        +  "type": "object"
        +}
  11. 2 tool updates
    • First observedget_tender
    • First observedsearch_tenders

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    UK public procurement data for AI agents. Tenders, contracts, buyer and supplier profiles over MCP and REST. 250 free credits.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.