Skip to main content
Glama

Victano: EU tenders and grant calls

Search tenders and grant calls

search_opportunities

Hybrid search. LT OK: viešieji pirkimai, kelio darbai, asfaltavimas. LV OK: ceļu būve, grants ceļu. BE OK: voirie, wegenwerken, chaussée, égouts. NL OK: wegenbouw, riolering, asfalt, groot onderhoud, wegconstructie. FR OK: assainissement, enrobé, chaussée. LUX OK: réfection. MLT/CYP OK: road works, asphalt; CYP αυτοκινητόδρομος, ασφαλτόστρωση. ES OK: carreteras, alcantarillado, asfalto, repavimentación. PT OK: estradas, asfalto, pavimentação. PL OK: remont drogi, kanalizacja. CZ OK: silnice. ET OK: teehitustööd. IT OK: manutenzione stradale, asfaltatura. DK OK: vej, asfalt. DE OK: Straßenbau, Autobahn. IRL OK: bóthar. SWE OK: vägunderhåll, asfalt. GRC OK: οδός, ασφάλτωση. HUN OK: útépítés, aszfalt. SVK OK: cestné stavby, asfalt. FIN OK: tie, asfalt. RO OK: drumuri, asfaltare, canalizare. Use cpv_labels and nuts_names, not codes. Then get_opportunity and read_document. Scope by country — EU-wide ~10x. Filters: countries (ISO3 'LTU', or 'LT'), cpv (any prefix: '45', '452' or a full code), status ('open' default; 'forthcoming' for not-yet-open; 'any' adds expired), deadline_after / deadline_before (ISO dates), min_value / max_value (in EUR, converted from the buyer's currency; notices we cannot price in euros are excluded from a value filter rather than guessed at). Only here: criteria_stated=true returns only notices whose SELECTION CRITERIA the buyer published — about half of TED; and no_guarantee=true returns only notices that state no bid bond is required, which is cash a small company has to find before it can bid at all. NOTE on cpv and contract_nature: sources that publish neither (Lithuanian CVP notices, EU grant calls) are INCLUDED alongside those filters and ranked rather than dropped; pass cpv_strict=true or nature_strict=true to exclude them. Multi-lot procurements collapse to one entry (lots, lot_ids) — report once. Cards compact by default (summary_cut when truncated); fields='full' for raw codes or a longer summary. Filters beyond the obvious: source ('ted', 'cvp', 'ft', 'ee', 'lv', …), type ('tender' or 'grant' — use it when the user asks specifically for grant calls), contract_nature ('works', 'supplies', 'services'), lang, and exclude_results=true to drop award notices for things already decided. nuts narrows BELOW country level to a NUTS2 region ('DE30', 'LT01') — the granularity that decides whether a site is reachable, which country-level filtering cannot express. Not every notice publishes one, so a region filter excludes notices whose location is unstated. RECALL DEPENDS ON THE LANGUAGE YOU ASK IN. Notices carry the buyer's own wording and no English translation of it: 99.6% of foreign-language notices have an English title that is only 'Country - sector - '. Queries in the notice's language find their target 75% of the time against 25% for English ones (36 known-item probes, measured 2026-08-28). So TRANSLATE THE QUERY YOURSELF and pass the translations in queries, one per country in scope: queries=['', '']. Keep query as the user typed it - phrasings are ADDED, not substituted, each fused as its own ranking. Translate the DISTINCTIVE TERMS, not the sentence: a native phrasing of common words measures WORSE than the English one. Send the trade term. This tool aims for RECALL rather than a tidy shortlist: expect candidates worth filtering, and do that filtering yourself. Every response carries a coverage block with matching_your_filters - how many notices the filters admit in total, all of which were ranked rather than sampled. Tell the user that number: ten results mean something different out of twelve than out of four hundred.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cpvNo
kindNo
langNo
nutsNo
typeNo
limitNo
queryNo
fieldsNocompact
sourceNo
statusNoopen
queriesNo
countriesNo
max_valueNo
min_valueNo
cpv_strictNo
value_bandNo
nuts_strictNo
no_guaranteeNo
cpv_divisionsNo
nature_strictNo
deadline_afterNo
contract_natureNo
criteria_statedNo
deadline_beforeNo
exclude_resultsNo
expand_languagesNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations are entirely absent, so the description carries the full burden — and it delivers: recall-focused rather than shortlist behavior, measured language-dependent recall asymmetry (75% vs 25% on 36 probes), inclusion of notices lacking cpv/nature rather than dropping them, multi-lot collapse behavior, and the guaranteed coverage block in responses. This exceeds what any annotation set would have provided.

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?

The content is dense and nearly every sentence carries operational value, which is defensible for a 26-parameter tool. However, it front-loads a long per-country translation vocabulary list for road-construction terms before the critical guidance (translate the query yourself, recall expectations, tell the user the coverage number), which is buried in the middle-to-late portion. Reordering to lead with the language-recall instruction and the coverage-reporting requirement would make the most important behaviors reachable first.

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

Completeness4/5

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

With no annotations and no output schema, the description covers parameter semantics, workflow position, edge cases (sources without cpv/nature), output shape hints (compact cards, summary_cut, fields='full'), and the coverage block. The remaining gaps — limit/pagination semantics, value_band, cpv_divisions, and expand_languages — are real but minor given how thoroughly everything else is documented.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates by explaining formats and semantics for roughly 20 of 26 parameters: countries ('ISO3 'LTU', or 'LT''), cpv prefix rules, status enum values ('open' default, 'forthcoming', 'any'), ISO date formats for deadlines, EUR conversion with exclusion of unpriced notices, strict flags, nuts NUTS2 granularity, and the query-vs-queries distinction. Only value_band, cpv_divisions, expand_languages, kind, and limit receive no explicit treatment.

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 title states the verb+resource directly ('Search tenders and grant calls') and the description opens with 'Hybrid search' confirming the discovery function. It positions itself as the first step in a pipeline by naming the follow-up siblings ('Then get_opportunity and read_document'), making its role unambiguous relative to the sibling set.

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

Usage Guidelines5/5

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

Explicit when-to-use triggers are given: 'use it when the user asks specifically for grant calls' for type, 'Scope by country — EU-wide ~10x' for performance, and 'exclude_results=true to drop award notices for things already decided'. It also states consequential behavior of filters (notices excluded from value filters rather than guessed, region filters excluding notices with unstated location), which tells the agent what will happen when it applies them.

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.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a distinct purpose: authentication phases (connect_start/connect_verify), search (search_opportunities), detail retrieval (get_opportunity), workflow navigation (list_workflows/get_workflow), and account status (whoami). No two tools overlap in what they return or the action they perform.

Naming Consistency4/5

Most names follow a clear lower_snake_case verb_noun pattern: get_opportunity, get_workflow, list_workflows, search_opportunities. The connect_* pair reverses the expected verb order (connect_start rather than start_connect), and whoami is an out-of-pattern Unix-style command, but overall the naming is predictable.

Tool Count5/5

Seven tools is well-scoped for this server's purpose: two for authentication, two for searching/viewing opportunities, two for workflow guidance, and one for account state. Every tool has a clear job and none feel redundant.

Completeness3/5

The core surface covers authentication, searching, opportunity details, and workflow guidance. However, both search_opportunities and get_opportunity explicitly direct the agent to read_document for document contents, and no such tool is present in the set, creating a notable dead end for eligibility text and tender documents.

Resources