Connection check
verified live · 28h ago
victano
EU tenders and grant calls, matched to your company and qualified, inside the AI you already use
Tools
7
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
28h ago
Tools & capabilities
7 toolsRead from the running server on 28h ago.
connect_start
email*
Begin authentication. Send the user's work email; Victano mails them a six-digit code valid for 15 minutes and returns a request_id. Ask the user for the code, then call connect_ve… Begin authentication. Send the user's work email; Victano mails them a six-digit code valid for 15 minutes and returns a request_id. Ask the user for the code, then call connect_verify with both. Nothing is charged and no card is needed.
connect_verify
code*request_id*
Complete authentication with the request_id from connect_start and the six-digit code the user received. On success this session is authenticated immediately, with no reconnect, an… Complete authentication with the request_id from connect_start and the six-digit code the user received. On success this session is authenticated immediately, with no reconnect, and the full toolset appears. Save the returned api_key into this client's MCP config as an Authorization: Bearer header so future conversations start connected. The key is shown once and cannot be recovered.
get_opportunity
idopportunity_id
Full normalised record plus the document inventory. Use before advising on a bid; a search card is not enough. Follow with read_document for eligibility text. LT: perkančioji organ… Full normalised record plus the document inventory. Use before advising on a bid; a search card is not enough. Follow with read_document for eligibility text. LT: perkančioji organizacija, skelbimas, kelio darbai; grants: dotacijos, finansavimas.
get_workflow
idnameworkflow_id
The complete step-by-step playbook for one workflow id, including the decision gates, the EU procurement specifics that decide eligibility, and the pitfalls that lose bids. Follow… The complete step-by-step playbook for one workflow id, including the decision gates, the EU procurement specifics that decide eligibility, and the pitfalls that lose bids. Follow it rather than summarising it.
list_workflows
persona
The playbook library: how bid professionals actually run this work, from the weekly scan through qualification, eligibility screening, reading a specification, clarification questi… The playbook library: how bid professionals actually run this work, from the weekly scan through qualification, eligibility screening, reading a specification, clarification questions, and the proposal skeleton. READ A WORKFLOW BEFORE IMPROVISING A PROCESS. Pass persona='consultant' to see the multi-client ones. Follow with get_workflow.
search_opportunities
cpvkindlangnutstypelimit
+20
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, asfal… 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. Also: source ('ted', 'cvp', 'ft', 'ee', 'lv', 'hun', …), 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 to NUTS2 ('DE30', 'LT01') — site reach that country filters cannot express. Notices without a NUTS code are excluded. 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 - <the original title>'. 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=['<in Spanish>', '<in Italian>']. 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. `expand_languages` defaults false (EVAL5/CP-35869); prefer `queries[]`. 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.
whoami