Skip to main content
Glama

Tender matches

tender_matches
Read-onlyIdempotent

The public procurement notices the caller team's tender profiles matched, newest first, one row per procedure citing its newest matching notice. Each match explains every criterion its profile sets (CPV code, NUTS region, value band in EUR, keyword, procedure type, buyer legal type, notice kind, days to the tender deadline) with the outcome hit, the notice field it read, what the notice states there and what the profile asks, and carries the notice itself with its source_url and record_id as the citation. A notice is a match only when it hits every criterion its profile sets, so an unknown is never a match. Winners are never shown, and a buyer whose legal type may name a natural person is withheld (buyer_withheld). Filter by status (new, dismissed or in_deal_book) or profile_id, page with limit and offset, or pass match_id alone to read one match. A match outside the caller team answers not_found. A match can also cite a notice of the team's own portal lane (portal_notice, an export the bank uploaded or an alert of one of its portal accounts), chosen by a profile or by the portal's own saved search (decided_by portal_search). Pass deal_id, paged with limit and offset, for the matches an analyst took into that deal of the Deal Book (status in_deal_book), where the notice is cited on the deal. deadline_passed is true once the cited notice's tender deadline lies before today on the buyer's calendar (Europe/Berlin); the deadline day itself is still open, and the status stays as it is.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "tender_matches"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoPage size, default 50, maximum 100.
offsetNoRows to skip, default 0.
statusNoOnly matches in this status.
deal_idNoThe matches a deal of the Deal Book holds, by its deal id.
match_idNoOne match by its id, as list rows carry it in id.
profile_idNoOnly matches of this tender profile.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / match_id / maximum
      Previous value: -2147483647New value: +9223372036854776000
  2. Changed1 schema field changed
    • addedInput schema / properties / deal_id
      Added value: +{
      +  "description": "The matches a deal of the Deal Book holds, by its deal id.",
      +  "maxLength": 16,
      +  "minLength": 1,
      +  "pattern": "^[0-9A-Za-z]+$",
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • addedInput schema / properties / match_id / maximum
      Added value: +2147483647
    • addedInput schema / properties / offset / maximum
      Added value: +9223372036854776000
    • addedInput schema / properties / profile_id / maximum
      Added value: +2147483647
  4. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say readOnly/non-destructive; the description adds real behavioral context beyond that: winners are never shown, buyer legal types that may name a natural person are withheld (buyer_withheld), a match requires hitting every criterion so an unknown is never a match, and deadline_passed is computed on Europe/Berlin with the deadline day still open. These are non-obvious rules an agent could not infer from the schema.

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

Conciseness3/5

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

Purpose and scope are front-loaded, which is good, but the body is a dense run-on of long sentences mixing match semantics, portal lane, Deal Book, and deadline rules without paragraphing. Most content earns its place, yet the delivery is heavy for the amount of structure it offers.

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?

With no output schema, the description carries the return-shape burden and does: one row per procedure, per-criterion explanations (outcome, field read, notice value vs profile ask), the cited notice with source_url and record_id, portal_notice with decided_by portal_search, and deadline_passed semantics. Nothing essential to correct invocation or interpretation 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?

Schema coverage is 100%, so the baseline is 3; the description earns more by explaining how parameters combine (match_id alone reads one match, deal_id implies in_deal_book status and is paged with limit/offset) and what the status values mean in context. It does not add format detail for limit/offset beyond the schema, keeping it below 5.

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?

Opens with a specific verb+resource+scope: public procurement notices matched by the caller team's tender profiles, newest first, one row per procedure. An agent can distinguish it from tender_profiles (the profiles themselves) and tender_export_preview without opening a schema.

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?

Explains the selectable modes clearly: filter by status or profile_id, pass match_id alone to read one match, pass deal_id for Deal Book matches paged with limit/offset. It also states the out-of-team behavior (not_found). It stops short of naming sibling alternatives such as tender_profiles for managing profiles, so it is not a full when/when-not routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources