Skip to main content
Glama
VladyslavMykhailyshyn

Prozorro.Sale MCP Server

Search Prozorro.Sale auctions

search_auctions
Read-onlyIdempotent

Find Ukrainian public asset auctions by procedure type, region, keyword, price, and owner. Filter by open-for-bids status to see what you can bid on now.

Instructions

Find auctions of Ukrainian public assets. The entry point for any "what is available" question.

WHEN TO USE: the user describes what they are looking for rather than naming one auction. For a specific auction id, call get_auction instead.

KEY PARAMETERS

  • procedure_type: name the asset programme whenever the user implies one ("land", "privatisation", "lease"). This switches to per-type feeds and covers far more relevant auctions. Family names ("landRental") expand to every format; exact values ("landRental-english") are used as-is. Call list_procedure_types if unsure of the vocabulary.

  • open_for_bids: true for "what can I bid on" — keeps only auctions whose deadline has not passed.

  • keyword: Ukrainian free text over title, description, items, classification, locality. All words must match.

  • region / classification / min_value / max_value / published_from / published_to: narrowing filters.

  • seller / seller_edrpou: the body RUNNING the auction (often a regional SPFU office).

  • property_owner / property_owner_edrpou: the organisation the asset BELONGS to — the university, hospital or school whose premises are leased out. Use this when the user names an institution: on lease auctions the institution is almost never the seller. EDRPOU is exact, prefer it. Published by the legitimatePropertyLease family only; elsewhere owner and seller are the same body.

  • changed_since + changed_until: scan a specific historical period instead of recent activity.

  • scan_pages: raise (up to 40) when a broad query comes back thin or truncated.

EXAMPLE — everything Lviv Polytechnic put up for lease this year: {"procedure_type":["legitimatePropertyLease"],"property_owner_edrpou":"02071010", "changed_since":"2026-01-01","changed_until":"2026-08-06","scan_pages":40}

EXAMPLE — property lease near Lviv, still open, under 50 000 UAH: {"procedure_type":["legitimatePropertyLease"],"open_for_bids":true,"region":"Львів","max_value":50000,"limit":10}

EXAMPLE — everything privatisation-related sold in July 2026: {"procedure_type":["smallPrivatization","largePrivatization"],"status":["complete"], "changed_since":"2026-07-01","changed_until":"2026-07-31","scan_pages":25}

RETURNS: compact auction summaries (id, title, status, price, region, seller, propertyOwner, deadlines, auctionUrl) plus a "scanned" block. ALWAYS relay that block's window and truncation to the user — an empty result means "not in the scanned window", never "does not exist".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return. Default 20.
regionNoSubstring of the oblast or settlement name, e.g. "Львів", "Київська".
sellerNoSubstring of the selling entity name.
statusNoProcedure statuses to keep, e.g. ["active_tendering"] for auctions still accepting bids, ["complete"] for concluded sales. Omit for all statuses.
keywordNoFree text matched against title, description, item descriptions, classification names and locality. Ukrainian works best. All words must appear.
max_valueNoMaximum starting price, in the auction currency.
min_valueNoMinimum starting price, in the auction currency.
scan_pagesNoHow many feed pages (100 auctions each) may be scanned. Higher covers more of the window at the cost of latency. Default 8.
published_toNoKeep only auctions published on or before this ISO date.
changed_sinceNoISO date or instant that bounds the change window to scan. Defaults to 7 days ago. Older auctions are only visible if they were modified inside the window.
changed_untilNoUpper bound of the change window, ISO date or instant. Defaults to now.
open_for_bidsNoShortcut for "I want to bid": keeps only auctions whose bidding deadline has not passed and whose status still accepts bids.
seller_edrpouNoRegistration code (ЄДРПОУ) of the selling entity, e.g. "42899921". Leading zeros optional.
classificationNoCAV/CPV classification code or prefix, e.g. "07" for land or "07123000-7" exactly.
procedure_typeNoAsset programme or exact selling method. A family name such as "landRental" or "smallPrivatization" expands to every auction format it supports; an exact value such as "landRental-english" is used as-is. Call list_procedure_types for the vocabulary.
property_ownerNoSubstring of the name of the organisation the asset BELONGS to (балансоутримувач) — the university, hospital or school whose property is being auctioned, as opposed to the body running the sale. Published by the legitimatePropertyLease family only; other programmes have no owner distinct from the seller, so combine with keyword there.
published_fromNoKeep only auctions published on or after this ISO date, e.g. "2026-01-01".
property_owner_edrpouNoRegistration code (ЄДРПОУ) of that organisation, e.g. "02071010" for Lviv Polytechnic. Leading zeros optional. Exact and far more reliable than a name substring.
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond these: it explains the 'scanned' window semantics, warns that 'an empty result means not in the scanned window, never does not exist', and documents the per-type feeds behavior with procedure_type expansion. It also distinguishes owner vs seller data provenance, which is critical for correct interpretation.

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?

The description is structured with clear sections (WHEN TO USE, KEY PARAMETERS, EXAMPLE, RETURNS), each sentence earning its place. It front-loads the core purpose, then progressively details parameters and examples without redundancy. Despite its length, it remains scannable and information-dense, with no filler.

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?

For an 18-parameter, 0-required tool with no output schema, the description is remarkably complete. It covers selection criteria (what to search), key parameter semantics, usage examples, and return-value behavior including the important 'scanned' block warning. The only minor gap is lack of explicit pagination/limit guidance beyond scan_pages, but the three examples and RETURNS section provide enough operational completeness.

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 substantial meaning beyond schema: it clarifies the semantic distinction between seller and property_owner (the body running the auction vs the asset's owner), explains the procedure_type family/format expansion behavior, and provides three concrete examples mapping real user intents to parameter combinations. This is meaningful added value, though the schema already documents individual parameter meanings well.

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 ('Find auctions of Ukrainian public assets') and clearly positions itself as the entry point for 'what is available' questions. It distinguishes itself from get_auction ('For a specific auction id, call get_auction instead'), making its scope unambiguous.

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?

The description provides an explicit WHEN TO USE section and names the alternative (get_auction) for specific IDs. It also gives detailed guidance on when to use property_owner vs seller, when to use open_for_bids, and how to use changed_since/scan_pages for historical searches, far exceeding mere context.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VladyslavMykhailyshyn/prozorro-sale-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server