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.
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.
Tool Definition Quality
Average 4.4/5 across 8 of 8 tools scored.
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).
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.
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.
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 toolsentity_counterpartiesEntity CounterpartiesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| afm | Yes | 9-digit ΑΦΜ | |
| limit | No | max 30, default 10 |
Output Schema
| Name | Required | Description |
|---|---|---|
| afm | Yes | |
| counterparties | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ExpireARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | horizon in days; 0 = expiring today (free on every plan). Default 180. | |
| cpv | No | CPV division, 2 digits (e.g. 33 for medical equipment) | |
| region | No | NUTS code, e.g. EL30 for Attica | |
| page_size | No | rows to return, 1-200 (default 50) |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ActARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ada | Yes | act id — ΑΔΑ, 'kimdis:<ΑΔΑΜ>' or 'ted:<number>' |
Output Schema
| Name | Required | Description |
|---|---|---|
| act | Yes | |
| cpvs | Yes | CPV classifications with their official Greek labels |
| buyer | Yes | |
| chain | Yes | |
| supplier | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ChainARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes | |
| chain_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ProfileARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| afm | Yes | 9-digit ΑΦΜ |
Output Schema
| Name | Required | Description |
|---|---|---|
| afm | Yes | |
| kind | No | buyer | supplier |
| name | Yes | |
| stats | Yes | |
| last_seen | No | |
| first_seen | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SuppliersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | default spend | |
| role | No | default buyer | |
| limit | No | max 50, default 15 |
Output Schema
| Name | Required | Description |
|---|---|---|
| by | Yes | |
| role | Yes | |
| results | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ActsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | free-text search over the act title | |
| cpv | No | CPV code (e.g. 79710000) | |
| page | No | 1-based page number; pagination DEPTH is capped per plan | |
| year | No | 4-digit issue year, e.g. 2026 — restricts to acts issued that year | |
| source | No | filter by data source | |
| status | No | ||
| buyer_afm | No | 9-digit buyer ΑΦΜ | |
| cancelled | No | only acts the source marked as cancelled | |
| has_chain | No | only acts linked into a reconstructed lifecycle chain (request→tender→award→contract→payment) | |
| page_size | No | max 200 | |
| budget_max | No | maximum amount_net in EUR | |
| budget_min | No | minimum amount_net in EUR | |
| price_only | No | only awards/contracts decided on lowest-price alone (award_criteria = Βάσει τιμής / Χαμηλότερη Τιμή), excluding most-economically-advantageous (MEAT) criteria | |
| direct_award | No | only direct awards (procedure = απευθείας ανάθεση) — a published ΚΗΜΔΗΣ fact | |
| supplier_afm | No | 9-digit supplier ΑΦΜ | |
| single_bidder | No | only contracts where ≤1 bid was submitted (maxBidsSubmitted; single bidder) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| next | Yes | next page NUMBER, or null when there are no more pages — not a URL |
| page | Yes | |
| total | Yes | total acts matching the filters |
| page_size | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 CategoryARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | 4-digit year; omit for all-time |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | the year filtered on, or 'all' |
| divisions | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseNot gradedqualityCmaintenanceMCP server for Finnish public procurement (HILMA): search tenders, awards and procurement plans by keyword, CPV, region and buyer, and fetch full notice details.17MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Israel government procurement public tenders and exemption contracts via MCP, keyless access.14MIT

Indotender MCPofficial
FlicenseNot gradedqualityCmaintenanceSearch LPSE tenders, procurement realisasi, company profiles, inaproc data, and government agency directories.