Skip to main content
Glama

Diavgis — Greek Public Procurement

Server Details

Search Greek public procurement: tenders, awards, contracts, payments, buyers and suppliers.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
omegaaistudio/diavgis-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct aspect of Greek public procurement: search, detail lookup, lifecycle chains, entity profiles, counterparties, rankings, spend-by-CPV, and expiring contracts. There is no meaningful overlap—even similar-sounding tools like get_entity and entity_counterparties serve clearly different purposes (profile vs. relationships).

Naming Consistency4/5

Most tools follow a verb_noun pattern (get_act, get_chain, rank_entities, search_tenders), but three use descriptive noun phrases (entity_counterparties, expiring_contracts, spend_by_cpv). The convention is consistent in style (snake_case, no mixed casing), so the deviation is minor and does not hinder readability.

Tool Count5/5

With 8 tools, the set is well-scoped for a procurement data server. Each tool has a clear role, and the count is within the ideal 3-15 range, offering comprehensive functionality without bloat.

Completeness5/5

The tool surface covers the core needs of the domain: searching acts with filters, retrieving full act details, exploring lifecycle chains, profiling entities, identifying counterparties, ranking entities by spend or award metrics, aggregating spend by CPV, and identifying expiring contracts. No obvious dead ends or missing lifecycle operations are apparent.

Available Tools

8 tools
entity_counterpartiesEntity CounterpartiesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
afmYes9-digit ΑΦΜ
limitNomax 30, default 10

Output Schema

ParametersJSON Schema
NameRequiredDescription
afmYes
counterpartiesYes
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond this by explaining the buyer/supplier distinction, the 'top' selection criteria, and the inclusion of act counts and EUR totals, which are not covered by the annotations.

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 two sentences with no filler. The first sentence front-loads the core purpose, and the second adds a clarifying explanatory phrase. Every part contributes to understanding.

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?

Given the simple tool, strong annotations, and existence of an output schema, the description is complete. It covers the essential logic (directional counterparties), the output attributes (counts and totals), and the use case, leaving no significant gaps.

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

Parameters3/5

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

Schema coverage is 100% for both parameters (afm and limit), with descriptions already provided. The description adds no additional parameter-level semantics beyond what the schema contains, so the baseline score of 3 applies.

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 clearly states that the tool retrieves top counterparties of an entity, with explicit directionality (buyer vs supplier) and output contents (act counts, EUR totals). This distinguishes it from sibling tools like get_entity or rank_entities by focusing specifically on business relationships.

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

Usage Guidelines3/5

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

The description implies a due-diligence use case ('who does business with whom') but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions. Usage guidance is mostly implied rather than explicitly articulated.

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

expiring_contractsGreek Public Contracts About to ExpireA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hNohorizon in days; 0 = expiring today (free on every plan). Default 180.
cpvNoCPV division, 2 digits (e.g. 33 for medical equipment)
regionNoNUTS code, e.g. EL30 for Attica
page_sizeNorows to return, 1-200 (default 50)
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds substantial behavioral context beyond that: deduplication rule (award records dropped when contract defines expiry), the expiry_basis field with three possible derivation methods, and the systematic early bias of computed_from_publication. These are not inferable from annotations and are crucial 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.

Conciseness4/5

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

The description is longer than ideal, but each sentence earns its place by adding unique value: lifecycle dedup, expiry_basis semantics, access tiers, and presentation warnings. It is front-loaded with the main purpose and structured with a clear warning, making it dense but not redundant. Slightly overpacked, but no wasted sentences.

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 output schema, the description explains what each row contains (holder, award method, bids), how dates are derived, and the dedup logic. It also covers access restrictions and defaults. The main missing elements are explicit pagination behavior and error handling, but for a filtered-list tool with rich annotations, this is largely complete.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all four parameters, including the enum for horizon, so the baseline is 3. The description does not add new parameter-level semantics beyond reinforcing the horizon options and the default 180, but that is already in the schema. No gaps exist that the description must compensate for.

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 clearly states the tool lists Greek public contracts that are currently running and expiring within 0, 7, 30, or 180 days, directly naming the resource and the specific verb ('expire'). It distinguishes itself from sibling tools by focusing on the renewal pipeline and explicitly mentioning that award records are dropped, which differentiates it from general tender search tools.

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?

It provides clear context for when to use the tool: when interested in contracts about to expire and the renewal pipeline. It also gives practical access guidance (horizon 0 is free, others require paid plan) and a critical usage warning about not presenting computed dates as published. However, it does not explicitly mention alternative tools or scenarios where another tool would be more appropriate, leaving a slight gap in exclusionary guidance.

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

get_actGet One ActA
Read-onlyIdempotent
Inspect

Full detail of one act by its id (Διαύγεια ΑΔΑ, ΚΗΜΔΗΣ 'kimdis:<ΑΔΑΜ>', or TED 'ted:'): canonical fields, resolved buyer/supplier entities, CPV codes with labels, and its cross-source lifecycle chain if linked.

ParametersJSON Schema
NameRequiredDescriptionDefault
adaYesact id — ΑΔΑ, 'kimdis:<ΑΔΑΜ>' or 'ted:<number>'

Output Schema

ParametersJSON Schema
NameRequiredDescription
actYes
cpvsYesCPV classifications with their official Greek labels
buyerYes
chainYes
supplierYes
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds context about resolved entities, CPV codes, and the cross-source lifecycle chain, providing insight into the output scope. It also clarifies accepted id formats, which is useful behavioral context beyond 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.

Conciseness5/5

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

The description is a single, information-dense sentence. It front-loads the core action, then lists formats and output components. No unnecessary words.

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 a single-parameter read-only tool, the description covers accepted inputs, output content, and cross-source linking. The output schema handles return value specifics, and annotations handle safety, so the description is complete.

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

Parameters3/5

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

The schema provides 100% coverage for the 'ada' parameter, including the three id formats. The description restates this list but adds no new semantic detail. Baseline 3 is appropriate.

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 clearly states the tool's function: returning full detail of one act by its id. It specifies the accepted id formats and the resolved fields. This distinguishes it from sibling tools like get_chain by including the lifecycle chain within the output.

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?

The description implies usage when an act id is at hand and full detail is needed. It doesn't explicitly name alternatives or exclusions, but the context is clear. Sibling tools like get_chain are not mentioned, so differentiation is inferred rather than explicit.

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

get_chainGet Procurement Lifecycle ChainA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
membersYes
chain_idYes
Behavior4/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description reveals that the chain is 'reconstructed', indicating it is computed/inferred, and discloses that it includes 'confidence and link method'. This adds meaningful behavioral context about the output's nature. It does not cover error handling or edge cases, but the annotations cover the safety profile, so a 4 is appropriate.

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 two sentences. The first defines what the tool returns and its key components (sequence, confidence, link method). The second gives an actionable tip for obtaining the input. Every word is useful, no fluff, and the most important information is front-loaded.

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 a one-parameter read-only tool with an output schema, the description covers the purpose, the input source, and the high-level output structure. It does not need to explain return values in detail because an output schema exists. The guidance on obtaining chain_id makes this self-sufficient enough for an agent to invoke it correctly.

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?

With 0% schema description coverage, the description compensates by explaining that chain_id is 'the chain_id field of any act'. This tells the user exactly where to find the value, adding meaning beyond the bare schema definition. It does not provide format or constraints, but for a single parameter this is sufficient.

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 clearly states the tool returns 'a reconstructed procurement lifecycle chain by chain_id', specifically the linked sequence of related acts like commitment → award → contract → payments. This is a specific verb+resource and distinguishes it from siblings like get_act, which retrieve a single act. The inclusion of the chain_id source further clarifies the purpose.

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?

The description provides clear usage context: use this tool when you have a chain_id and want the full lifecycle chain. It even tells the user how to obtain the chain_id ('from the chain_id field of any act'). However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of a 5.

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

get_entityGet Entity ProfileA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
afmYes9-digit ΑΦΜ

Output Schema

ParametersJSON Schema
NameRequiredDescription
afmYes
kindNobuyer | supplier
nameYes
statsYes
last_seenNo
first_seenNo
Behavior5/5

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

The description goes beyond the annotations by explaining the methodology behind the EUR totals: they represent committed procurement value, counted once per procurement, deduplicated across sources and lifecycle stages, while excluding tenders/budgets. This is valuable behavioral context that the user would not know from the annotations alone. No contradiction with readOnlyHint or other annotations.

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 composed of two precise sentences: the first states the core purpose, and the second clarifies a critical nuance about the spend figures. Every word contributes value, with no redundancy or filler, making it both concise and highly informative.

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?

The tool is simple with one required parameter, a clear output schema, and read-only annotations. The description provides sufficient context for an agent to understand the output semantics deeply, including the deduplication logic. There is no need to explain return values since the output schema exists, and the description covers business meaning and exclusions.

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

Parameters3/5

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

The only parameter 'afm' is already well described in the input schema as a 9-digit ΑΦΜ. The description repeats this and adds context about what the profile contains, but does not introduce new parameter-specific constraints or examples. Given the high schema coverage, the description adds little beyond a baseline understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a profile of a legal entity by AFM, including name, role, and spend/receipt statistics. This is specific and distinguishes it from sibling tools like get_act and get_chain, though it does not explicitly name alternatives. It is not a tautology and conveys the core function effectively.

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

Usage Guidelines3/5

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

The description implies that this is the tool for obtaining a holistic entity profile, with details on the meaning of the stats. However, it lacks explicit guidance on when to choose this over alternatives such as entity_counterparties or spend_by_cpv. The usage context is implied but not stated directly.

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

rank_entitiesRank Buyers or SuppliersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNodefault spend
roleNodefault buyer
limitNomax 50, default 15

Output Schema

ParametersJSON Schema
NameRequiredDescription
byYes
roleYes
resultsYes
Behavior5/5

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

Despite annotations already declaring readOnlyHint and idempotentHint, the description adds valuable behavioral detail: spend is counted once per procurement, deduplicated, and excludes tenders; single_bidder and direct_award are explicitly defined. It also states the return fields (afm, name, metric, total), going well beyond annotations.

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 a single well-structured paragraph that starts with the core purpose, then explains parameters with defaults, gives example queries, and lists return fields. Every sentence contributes valuable information without redundancy.

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?

The tool has moderate complexity with multiple metrics, and the description covers purpose, parameter semantics, example use cases, and return shape. The presence of an output schema reduces the need to detail return values, yet the description still mentions them, making the tool self-contained and complete.

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 coverage is 100% but the description enriches parameter understanding significantly. For 'by', it explains the exact computation (COMMITTED procurement value in EUR, deduplicated, tenders excluded) and defines each enum value; for 'role', it defaults are specified. This provides meaning far beyond the schema's terse descriptions.

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 clearly states the tool ranks top Greek public-procurement entities, with specific verb and resource. It distinguishes from siblings by detailing two ranking dimensions (role and by) and providing representative queries like 'top 10 suppliers by public revenue', making the purpose unambiguous.

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?

The description gives clear context for when to use the tool by illustrating example queries it answers. It does not explicitly mention alternatives or exclusions, but the sibling tool names and the concrete examples make the appropriate use case evident.

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

search_tendersSearch Greek Procurement ActsA
Read-onlyIdempotent
Inspect

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, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofree-text search over the act title
cpvNoCPV code (e.g. 79710000)
pageNo1-based page number; pagination DEPTH is capped per plan
yearNo4-digit issue year, e.g. 2026 — restricts to acts issued that year
sourceNofilter by data source
statusNo
buyer_afmNo9-digit buyer ΑΦΜ
cancelledNoonly acts the source marked as cancelled
has_chainNoonly acts linked into a reconstructed lifecycle chain (request→tender→award→contract→payment)
page_sizeNomax 200
budget_maxNomaximum amount_net in EUR
budget_minNominimum amount_net in EUR
price_onlyNoonly awards/contracts decided on lowest-price alone (award_criteria = Βάσει τιμής / Χαμηλότερη Τιμή), excluding most-economically-advantageous (MEAT) criteria
direct_awardNoonly direct awards (procedure = απευθείας ανάθεση) — a published ΚΗΜΔΗΣ fact
supplier_afmNo9-digit supplier ΑΦΜ
single_bidderNoonly contracts where ≤1 bid was submitted (maxBidsSubmitted; single bidder)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
nextYesnext page NUMBER, or null when there are no more pages — not a URL
pageYes
totalYestotal acts matching the filters
page_sizeYes
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds significant behavioral nuances: pagination envelope semantics ('next' is the next PAGE NUMBER or null), redaction of natural-person counterparties, and a warning that summing amount_net is misleading. These go beyond what annotations or schema provide.

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 dense but efficiently structured: purpose, then filter list, then pagination, then caveat. Every sentence earns its place—the filter list is compact yet comprehensive, and the warning about summing amounts is actionable. No filler or repetition.

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?

Given the tool's complexity (16 parameters, three sources, multiple signal types) and the presence of an output schema, the description covers all crucial operational aspects: sources, filters, pagination, personal-data redaction, and a data-usage warning. It complements the schema and annotations without unnecessary repetition, making it fully adequate for selection and invocation.

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 description coverage is 94%, so the schema does most of the work. The description adds meaning to several parameters: it explains source enum values (diavgeia|kimdis|ted), status values (request|tender|award|contract|payment), and clarifies procurement signals (direct_award απευθείας ανάθεση, single_bidder ≤1 bid). It also introduces the act title free-text q and the pagination envelope. However, some params like has_chain and price_only are not explicitly described in the description, though schema covers them.

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 opens with a specific verb and resource: 'Search Greek public-procurement acts across THREE cross-linked sources — Διαύγεια, ΚΗΜΔΗΣ... and EU TED.' It clearly distinguishes the tool from siblings by enumerating unique filters (source, status, ΑΦΜ, CPV, signals) and explicitly pointing to alternative tools for spend aggregation (rank_entities, spend_by_cpv).

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 guidance is given on when NOT to use this tool: 'Do NOT sum amount_net across results to get spend — use rank_entities or spend_by_cpv, which count each procurement once.' This names alternatives and provides a clear exclusion. The description also implies appropriate use by listing the exact filterable dimensions, making it obvious this is the search/filter entry point.

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

spend_by_cpvSpend by CPV CategoryA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo4-digit year; omit for all-time

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYesthe year filtered on, or 'all'
divisionsYes
Behavior5/5

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

Beyond the readOnly and idempotent annotations, it discloses critical behavioral details: value is counted once per procurement, deduplicated across sources and stages, and tenders are excluded. This significantly enhances the agent's understanding of the output semantics.

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?

Three sentences, each serving a purpose: definition, deduplication logic, and answerable question plus return fields. No filler or wasted words.

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?

Given the single optional parameter, existing output schema, and annotations, the description covers all essential context: what is measured, how it's deduplicated, what question it answers, and what fields are returned. Nothing critical is missing.

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

Parameters3/5

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

The input schema fully documents the 'year' parameter ('4-digit year; omit for all-time'), and the description only restates it as 'optionally for one year'. Since schema coverage is 100%, baseline 3 is appropriate.

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?

Clearly states it computes committed public procurement value by CPV category (2-digit division), optionally filtered by year. This specific verb+resource combination distinguishes it from siblings like rank_entities or search_tenders by focusing on CPV categories.

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?

The description says it answers 'what does the Greek state spend the most on', providing a clear use case. However, it does not explicitly name alternatives or conditions when not to use it, so it falls short of a 5.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for Finnish public procurement (HILMA): search tenders, awards and procurement plans by keyword, CPV, region and buyer, and fetch full notice details.
    17
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Search LPSE tenders, procurement realisasi, company profiles, inaproc data, and government agency directories.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.