Diavgis — Greek Public Procurement
by diavgis.gr · remote · no sign-in to list tools · v1.3.0 · published by gr.diavgis
Greek public procurement: tenders, awards, contracts, payments, suppliers, expiring contracts.
10 tools: 4 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http procurement https://mcp.diavgis.gr/mcp --header 'Authorization: <your-authorization>'Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Changes things 4Claude Code: ask
entity_counterpartiesTop counterparties of an entity (ΑΦΜ): for a buyer, the suppliers it pays most; for a supplier, its top public buyers — with act counts and EUR totals.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Top counterparties of an entity (ΑΦΜ): for a buyer, the suppliers it pays most; for a supplier, its top public buyers — with act counts and EUR totals. The 'who does business with whom' due-diligence view.
Annotations the server declares
- title: Entity Counterparties
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
expiring_contractsGreek public contracts that are RUNNING NOW and expire within a horizon of 0, 7, 30 or 180 days — the renewal pipeline.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Greek public contracts that are RUNNING NOW and expire within a horizon of 0, 7, 30 or 180 days — the renewal pipeline. Each row carries who currently holds the contract and HOW it was awarded (direct award vs competitive tender, and the number of bids where the source reports it), which is what tells you whether the re-tender is worth chasing. One procurement is counted ONCE: Greek sources publish the duration on the award record as well as the contract, so award records are dropped when a contract in the same lifecycle chain already defines the expiry. ⚠ `expiry_basis` on every row states how the date was obtained — `published` (the buyer published an end date), `computed_from_start` (start date + declared duration) or `computed_from_publication` (no start date published, so the publication date was substituted; systematically early). Do not present a computed date as a published one. ACCESS: horizon 0 (expiring today) is free on every plan and returns the complete record. Horizons 7/30/180 require a paid plan — lead time is the paid product.
Annotations the server declares
- title: Greek Public Contracts About to Expire
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
rank_entitiesRank top Greek public-procurement entities.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rank top Greek public-procurement entities. role=buyer (default) or supplier; by=spend (default — COMMITTED procurement value in EUR, counted ONCE per procurement: deduplicated across sources and lifecycle stages, tenders excluded), single_bidder (count of ≤1-bid awards/contracts) or direct_award (count of απευθείας ανάθεση). Answers 'top 10 suppliers by public revenue', 'which buyers award most without competition'. Returns afm, name, metric, total. Precomputed and refreshed every 6 hours, so it is instant and always the top 15.
Annotations the server declares
- title: Rank Buyers or Suppliers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
spend_by_cpvCommitted public procurement value by CPV category (2-digit division), optionally for one year.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Committed public procurement value by CPV category (2-digit division), optionally for one year. Value = counted ONCE per procurement (deduplicated across sources and award/contract/payment stages; tenders excluded). Answers 'what does the Greek state spend the most on'. Returns cpv_division, acts, spend (EUR) for the top divisions by spend — precomputed nightly, so it is instant. Use search_tenders with cpv= for divisions outside the top list.
Annotations the server declares
- title: Spend by CPV Category
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 6Claude Code: allow
find_entityResolve a Greek buyer or supplier NAME to its ΑΦΜ.No findings
Why it is in this group
- The name "find_entity" says "find": a word for reading.
Description, as the server wrote it Resolve a Greek buyer or supplier NAME to its ΑΦΜ. Use this first whenever you have a name but no ΑΦΜ — get_entity, entity_counterparties and the buyer_afm/supplier_afm filters all need the 9-digit number. Matching is accent- and case-insensitive; returns the closest names with their ΑΦΜ, so pick the right one before calling anything else.
Annotations the server declares
- title: Find Entity by Name
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_actFull detail of one act by its id (Διαύγεια ΑΔΑ, ΚΗΜΔΗΣ 'kimdis:<ΑΔΑΜ>', or TED 'ted:<number>'): canonical fields, resolved buyer/supplier entities, CPV codes with labels, and its c…No findings
Why it is in this group
- The name "get_act" says "get": a word for reading.
Description, as the server wrote it Full detail of one act by its id (Διαύγεια ΑΔΑ, ΚΗΜΔΗΣ 'kimdis:<ΑΔΑΜ>', or TED 'ted:<number>'): canonical fields, resolved buyer/supplier entities, CPV codes with labels, and its cross-source lifecycle chain if linked. On ΚΗΜΔΗΣ contracts, `commitment_ada` carries the Διαύγεια ΑΔΑ of the budget-commitment decision the source declares (comma-separated when more than one). It is a pointer INTO Διαύγεια, not an act we necessarily hold — resolve it at diavgeia.gov.gr, not through this API — and it is deliberately NOT a chain edge: one annual commitment funds many unrelated contracts.
Annotations the server declares
- title: Get One Act
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_chainA reconstructed procurement lifecycle chain by chain_id: the linked sequence of related acts (e.g.No findings
Why it is in this group
- The name "get_chain" says "get": a word for reading.
Description, as the server wrote it A reconstructed procurement lifecycle chain by chain_id: the linked sequence of related acts (e.g. commitment → award → contract → payments) with confidence and link method. Get a chain_id from the chain_id field of any act. A chain is ONE procurement's lifecycle, not everything an act references: an administrative umbrella cited by more than 25 acts (e.g. one annual expense-approval decision referenced by thousands of a buyer's acts) is deliberately NOT merged, so a chain never swallows a year of unrelated activity. Those references are still published — see the act's own references — they simply do not form a chain.
Annotations the server declares
- title: Get Procurement Lifecycle Chain
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_entityProfile of a legal entity (company or public body) by 9-digit ΑΦΜ: name, role, and spend/receipt statistics as buyer and as supplier.No findings
Why it is in this group
- The name "get_entity" says "get": a word for reading.
Description, as the server wrote it Profile of a legal entity (company or public body) by 9-digit ΑΦΜ: name, role, and spend/receipt statistics as buyer and as supplier. EUR totals = the COMMITTED procurement value counted ONCE per procurement (deduplicated across ΚΗΜΔΗΣ/Διαύγεια sources and the award→contract→payment lifecycle; tenders/budgets excluded), so it reflects real committed spend, not a sum of every published act.
Annotations the server declares
- title: Get Entity Profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_quotaWhat this API key is allowed to do right now: plan, calls used this period, calls remaining, per-minute rate, page-size and pagination caps, and when the period resets.No findings
Why it is in this group
- The name "get_quota" says "get": a word for reading.
Description, as the server wrote it What this API key is allowed to do right now: plan, calls used this period, calls remaining, per-minute rate, page-size and pagination caps, and when the period resets. Free — this call is not counted against the quota. Check it before starting a long job so you can size the work instead of hitting a wall mid-task.
Annotations the server declares
- title: Plan, Usage and Remaining Calls
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_tendersSearch Greek public-procurement acts across THREE cross-linked sources — Διαύγεια, ΚΗΜΔΗΣ (Central Electronic Public Procurement Registry) and EU TED.No findings
Why it is in this group
- The name "search_tenders" says "search": a word for reading.
Description, as the server wrote it Search Greek public-procurement acts across THREE cross-linked sources — Διαύγεια, ΚΗΜΔΗΣ (Central Electronic Public Procurement Registry) and EU TED. Filter by source (diavgeia|kimdis|ted), lifecycle status (request|tender|award|contract|payment), buyer or supplier ΑΦΜ (9-digit tax id), CPV code, EUR budget range, NUTS region, submission deadline (deadline_after=TODAY + status=tender ⇒ the OPEN tenders a supplier can still bid on), free-text q over the act title, and procurement signals (published facts from ΚΗΜΔΗΣ): direct_award (απευθείας ανάθεση), single_bidder (≤1 bid on the contract), cancelled. Returns a paginated envelope; 'next' is the next PAGE NUMBER or null. Natural-person counterparties are redacted. Do NOT sum amount_net across results to get spend — use rank_entities or spend_by_cpv, which count each procurement once.
Annotations the server declares
- title: Search Greek Procurement Acts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http procurement https://mcp.diavgis.gr/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__procurement__search_tenders",
"mcp__procurement__get_act",
"mcp__procurement__get_entity",
"mcp__procurement__get_chain",
"mcp__procurement__find_entity",
"mcp__procurement__get_quota"
],
"ask": [
"mcp__procurement__expiring_contracts",
"mcp__procurement__rank_entities",
"mcp__procurement__spend_by_cpv",
"mcp__procurement__entity_counterparties"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as procurement. Review it before you use it.