Skip to main content
Glama

Zephior Discovery

Server Details

Search, follow and read published public tender notices with sources, plus Zephior resources.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.8/5.0

Scored across 8 tools

Disambiguation4/5

Tender-facing tools are cleanly separated: search_public_tenders finds notices, get_public_tender reads one, get_public_tender_facets discovers filter metadata, and the list_* tools cover changes and sources. The three Zephior company tools (get_zephior_document, get_zephior_overview, search_zephior_resources) overlap somewhat and have vaguer descriptions, which could occasionally cause misselection.

Naming Consistency5/5

Every tool follows the same snake_case verb_entity pattern with a small, predictable verb set (get_, list_, search_). Domain prefixes (public_tender, zephior) are used consistently, making the surface easy to reason about.

Tool Count5/5

Eight tools is well-scoped for a read-only discovery server, with no redundant or trivial entries. Each earns its place across the search/read/list/facet workflow plus the documentation cluster.

Completeness4/5

The tender lifecycle is well covered: search, read detail, facet discovery, change history, and source listing, with pagination handled explicitly. As a read-only surface it is complete for discovery, though it lacks any write/alerting operations an agent might want for follow-up.

Available Tools

8 tools
get_public_tenderRead a public tenderA
Read-onlyIdempotent
Inspect

Read a published notice, source-backed facts, available requirements, original source, related notices and history. Missing information is explicitly unavailable. status is the effective status shown to visitors; recordedStatus is the reviewed status; sourceStatus is what the source portal states. sourceCheckedAt is when the original source was last read; modifiedAt is when this record last changed. stale true means a newer source version awaits republication; stale false does not mean that every portal publishing the procedure agrees. related lists notices that look like the same procedure elsewhere or an earlier or later version, with their deadlines: compare them, prefer the latest official change notice, and check the submission platform before relying on a deadline. history holds the latest revisions (historyTotal counts all; pass historyNextBefore as historyBefore for older ones).

NameRequiredDescriptionDefault
idYes
localeNoen
historyLimitNo
historyBeforeNoContinue history before this revision; pass historyNextBefore.

Output Schema

NameRequiredDescription
idYes
urlYes
staleNo
titleYes
localeYes
statusYes
countryNo
sourcesYes
summaryYes
deadlineYes
revisionNo
modifiedAtYes
sourceStatusNo
originalSourceYes
recordedStatusYes
sourceCheckedAtNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real interpretive context beyond that: the three status fields are distinguished, stale true/false is qualified, and revisions are bounded by historyTotal/historyNextBefore.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

Front-loaded with the core read action, and the status/staleness/history sentences each carry load, but the text is a dense semicolon-chain with multiple concerns interleaved and no separation between output semantics and guidance, making it heavier than necessary.

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?

For a complex record with an output schema, the description supplies the interpretation an agent needs: status vs recordedStatus vs sourceStatus, staleness caveats, related-notice comparison, and history pagination. It stops short on error/not-found behavior and sibling routing, but is otherwise thorough.

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 description coverage is low (25%) — only historyBefore is documented in the schema. The description partially compensates by explaining that historyNextBefore should be passed as historyBefore for older revisions, but locale and historyLimit remain unexplained in both places, leaving the gap only partly filled.

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?

States a specific verb (Read) and resource (a published notice) and enumerates what is returned: source-backed facts, requirements, original source, related notices and history. The read-by-id nature separates it from siblings like search_public_tenders and list_public_tender_changes, though no sibling is named explicitly.

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?

Offers actionable guidance on handling related notices ('compare them, prefer the latest official change notice, and check the submission platform before relying on a deadline') and pagination. However it never states when to choose this tool versus search_public_tenders or the list_* siblings, so routing guidance is only implied.

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

get_public_tender_facetsGet tender filtersA
Read-onlyIdempotent
Inspect

Discover published country IDs, all statuses, sectors and category IDs. Categories come 100 at a time, those with most notices first, each with its notice count; pass categoryQuery, such as road construction, to find matching ones and nextCategoryOffset as categoryOffset for more. categoriesTotal counts every match. Sectors group all categories and CPV codes; prefer sectors for broad needs.

NameRequiredDescriptionDefault
localeNoen
categoryQueryNo
categoryOffsetNo

Output Schema

NameRequiredDescription
localeYes
statusesYes
countriesYes
categoriesYes
categoriesTotalYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: categories are returned 100 at a time ordered by notice count, each carries its notice count, and categoriesTotal reflects all matches. It does not describe ordering or shape of the country/status/sector lists, which is the remaining gap.

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?

Dense but front-loaded: the resource list comes first, then pagination mechanics, then the sector-vs-category preference. Every clause carries information, though the middle sentence is a run-on that mixes input guidance with output-field names and could be split.

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 an output schema present, return values need not be explained, and the description still helpfully ties inputs to output fields (nextCategoryOffset, categoriesTotal). It is nearly complete for a three-parameter read tool; only the locale parameter and the ordering of the non-category facet lists are unaddressed.

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 description coverage is 0%, so the description carries the full burden. It does explain categoryQuery with a concrete example ('road construction') and categoryOffset indirectly by mapping it to the output field nextCategoryOffset, but the locale enum is never mentioned, leaving one of three parameters undocumented anywhere.

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 states a concrete resource – published country IDs, statuses, sectors and category IDs – so an agent can tell this is the facet/lookup tool rather than a tender-search tool. It never names a sibling explicitly, but the resource list is specific enough to separate it from search_public_tenders and get_public_tender without opening a schema.

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?

There is real guidance for choosing between facets ('prefer sectors for broad needs') and for narrowing with categoryQuery, plus how to page with categoryOffset. What is missing is any statement of when to reach for this tool at all versus search_public_tenders or get_public_tender – the routing decision is left implicit.

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

get_zephior_documentGet a Zephior documentA
Read-onlyIdempotent
Inspect

Use this read-only tool to retrieve one canonical public document covering service selection, developer integration or current pricing.

NameRequiredDescriptionDefault
documentYesThe canonical public document to retrieve.

Output Schema

NameRequiredDescription
urlYes
titleYes
contentYes
documentYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description echoes 'read-only' and adds a mild scope note (canonical/public documents), but contributes no new behavioral context such as auth requirements or error behavior.

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?

One sentence, front-loaded with the retrieval verb and scope, with no filler or redundancy.

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?

For a single-parameter, enum-driven fetch tool with an output schema already present, the description covers purpose and read-only nature adequately. Only the lack of sibling routing keeps it from being fully 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?

Schema description coverage is 100% and the single parameter is a fully described enum. The description restates the three options in prose ('service selection, developer integration or current pricing'), which is a minor readability aid but adds no syntax or selection guidance beyond the schema.

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 gives a specific verb ('retrieve') and resource ('one canonical public document') and enumerates the three covered topics, which maps cleanly to the enum. It implicitly separates itself from siblings like get_zephior_overview and search_zephior_resources, but never names them, so an agent must infer the boundary.

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?

'Use this read-only tool to retrieve...' establishes the general context of use but offers no when-not guidance and no comparison to the sibling retrieval tools (overview, resource search). Usage is implied rather than stated.

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

get_zephior_overviewGet Zephior overviewB
Read-onlyIdempotent
Inspect

Use this read-only tool to identify Zephior, compare Ziva and Zelius and find canonical contact or developer resources.

NameRequiredDescriptionDefault
localeNoAuthored response language. Defaults to English.

Output Schema

NameRequiredDescription
urlYes
nameYes
localeYes
contactYes
servicesYes
descriptionYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description's 'read-only' label merely restates that; it does add the content scope (overview/identification), but no extra behavioral traits beyond 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.

Conciseness4/5

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

A single front-loaded sentence with no filler; the imperative 'Use this read-only tool to...' is efficient. The triple-goal phrasing is slightly dense but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the lone parameter is fully specified. The remaining gap is orientation: with three same-named Zephior siblings, the description never clarifies which one to reach for, leaving the agent to guess.

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 description coverage is 100% with a single enum-constrained 'locale' parameter that defaults to English, so the schema fully documents the input. The description adds nothing about locale or how it affects output, which is the expected baseline when the schema does the work.

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

Purpose3/5

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

The description names a resource (Zephior) and three goals: identify Zephior, compare Ziva and Zelius, and locate canonical contact/developer resources. However, 'identify Zephior' is vague and it draws no boundary against the siblings get_zephior_document and search_zephior_resources, so an agent cannot easily tell when this overview is preferred over those.

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?

It opens with an implied directive ('Use this read-only tool to...') and lists the situations it serves, which gives a reasonable sense of context. But it names no alternatives, no exclusions, and no conditions that select it over get_zephior_document or search_zephior_resources.

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

list_public_tender_changesList tender changesA
Read-onlyIdempotent
Inspect

List published notice changes in change order, with the kind of event, changed fields and a continuation cursor. Filter by countries, sources, sectors and events, and bound the window with since and until. A revision is a Zephior version, not an official amendment: event source_changed means a new source version was read, corrected a Zephior correction.

NameRequiredDescriptionDefault
limitNo
sinceNoEarliest change time with a timezone. Without a cursor or since, the feed starts seven days ago.
untilNoExclusive end of the window, with a timezone. With since and until, paging with nextCursor reads one closed window completely.
cursorNoPass nextCursor from the previous response to continue where it stopped.
eventsNo
localeNoen
sectorsNo
sourcesNoSource IDs from list_public_tender_sources, such as ted-europa.
countriesNo

Output Schema

NameRequiredDescription
itemsYes
localeYes
nextCursorYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint=false), so the description earns credit by adding ordering semantics (change order), the response shape (event kind, changed fields, cursor) and an explicit disambiguation that a revision is a Zephior version rather than an official amendment. It omits rate limits and the default seven-day window, which lives only in the since schema field.

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?

Three sentences with the core list behavior front-loaded, then filters, then a domain caveat. Efficient, though the final clause about 'corrected a Zephior correction' is garbled enough to cost a point.

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 an output schema present, return values need not be re-explained, and the description covers windowing, filtering and cursor continuation for a nine-parameter, all-optional feed. Missing only the default-window behavior and non-filter parameters (limit, locale), which keeps it short of a 5.

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 only 44% (limit, events, sectors, countries, locale undocumented), yet the description names countries, sources, sectors, events, since/until and the cursor, and goes beyond the enum list by explaining what source_changed and corrected actually mean. It still leaves limit and locale unexplained.

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?

Specific verb (List) plus resource (published notice changes) with the payload spelled out: event kind, changed fields, continuation cursor. It also defines the temporal shell (change order, since/until window), though it never names a sibling such as search_public_tenders or get_public_tender to route against.

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 states what can be filtered (countries, sources, sectors, events) and how to bound the window, which implies the intended polling/feed use case, but gives no when-to-use vs when-not guidance and names no alternative among the seven siblings.

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

list_public_tender_sourcesList tender sourcesA
Read-onlyIdempotent
Inspect

List the procurement sources behind published notices, with names, official portals, notice counts, countries and when each source was last checked (null when unknown).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
sourcesYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is fully covered. The description adds a freshness nuance ('when each source was last checked (null when unknown)'), but since an output schema exists, most of the field detail is redundant with structured data. Value added is real but modest.

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?

A single sentence that front-loads the action ('List the procurement sources') and then enumerates the returned fields. No filler, no repetition of the title.

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?

For a zero-parameter, read-only catalog listing with an output schema and full annotation coverage, the description is essentially complete: purpose plus freshness semantics. The only missing piece is routing guidance relative to sibling list/search tools.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description correctly avoids inventing parameter behavior and simply describes the result set.

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?

States a specific verb and resource: 'List the procurement sources behind published notices', with the returned attributes spelled out. It is clearly distinguishable from search_public_tenders or list_public_tender_changes, but it never explicitly contrasts itself with the sibling 'facets' or 'changes' tools, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use statement and no mention of alternatives such as get_public_tender_facets or search_public_tenders. The agent must infer that this is the catalog-enumeration call from the name alone. This matches the calibration case for 'no guidance'.

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

search_public_tendersSearch public tendersA
Read-onlyIdempotent
Inspect

Search published tender notices by text, country, sector, category, CPV prefix, status, buyer, deadline window, estimated value and place. Returns compact hits with canonical citations, 20 per page by default (limit up to 50); read get_public_tender for notice text, facts, related notices and history. total counts notices and procedures counts them once per procedure where one is published on several portals; read each nextPage before calling a list complete. q matches every word, in the source language or the visitor copy, with or without accents; words of five or more letters also match longer compounds. For broad needs prefer sectors or cpv over category IDs, and add q keywords. sort deadline orders date-only deadlines by their day. A zero result can mean no coverage, a narrow filter or different wording: widen filters or try source-language keywords before concluding nothing exists.

NameRequiredDescriptionDefault
qNo
cpvNoCPV code prefixes, such as 45 (construction work) or 72 (IT services). Matches notices whose source lists such a code.
pageNo
sortNorelevance
viewNocompact returns what is needed to choose and cite a notice; full returns whole records (notice text, facts, history), at most 20 per page.compact
buyerNo
limitNo
placeNoPart of the place of performance or buyer location as published, such as Genève or Zürich. Spelling matters; many notices name only a region.
localeNoen
sectorsNoBroad sectors grouping every category and CPV code, such as construction or it-telecoms. Prefer this to category IDs for broad needs.
currencyNoCurrency of valueMin and valueMax, such as CHF or EUR. Only notices stating an estimated value in this currency match; amounts are not converted.
statusesNoOmit for active statuses (open, closing-soon, upcoming, unconfirmed). An explicit empty array includes all statuses. closing-soon is an open notice whose deadline is within 7 days (168 hours); a passed deadline shows as closed. OR within each filter, AND between filters and text search.
valueMaxNoHighest estimated value; needs currency.
valueMinNoLowest estimated value; needs currency.
countriesNo
categoriesNo
deadlineToNoLatest submission deadline: an ISO date (to its end, UTC) or a time with a timezone. Notices without a deadline are excluded once either bound is set.
deadlineFromNoEarliest submission deadline: an ISO date (from its start, UTC) or a time with a timezone. Date-only deadlines count as the end of their day.

Output Schema

NameRequiredDescription
urlYes
pageYes
itemsYes
limitYes
totalYes
localeYes
filtersYes
nextPageYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial behavior: default/max page size, the requirement to read each nextPage before treating a list as complete, the total-vs-procedures counting semantics, how sort=deadline treats date-only deadlines, and how q tokenizes and matches accents/compounds. That is real context beyond the structured fields.

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 purpose and scope lead, followed by pagination, semantics, and recovery advice in roughly descending importance. It is dense and on the long side for a search tool, but nearly every sentence carries non-redundant information; only minor trimming would be possible.

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, all-optional search tool with an output schema and full annotation coverage, the description supplies the filtering semantics, pagination contract, result-counting caveats, and zero-result interpretation. Nothing an agent needs to call it correctly is missing.

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 only 56%, so the description must compensate, and it does for the highest-risk parameters: q's word/compound/accents matching, the sectors-vs-cpv-vs-categories preference, and sort=deadline behavior. A few parameters (buyer, countries, page) get no additional explanation, but the ambiguous ones are clarified well above baseline.

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?

States a precise verb (Search) plus resource (published tender notices) and enumerates the filterable facets, then explicitly routes the agent to get_public_tender for notice text and history. An agent can distinguish it from the get_/list_ siblings without opening any schema.

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?

Gives concrete when-to-use routing ('read get_public_tender for notice text, facts, related notices and history'), selection advice among filters ('for broad needs prefer sectors or cpv over category IDs'), and even failure recovery ('a zero result can mean no coverage, a narrow filter or different wording: widen filters or try source-language keywords'). This is exactly the guidance an agent needs before choosing filters.

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

search_zephior_resourcesSearch Zephior resourcesB
Read-onlyIdempotent
Inspect

Use this read-only tool to find relevant Zephior articles, guides, comparisons, industry briefs and glossary resources by the user task, decision or topic they answer.

NameRequiredDescriptionDefault
limitNo
queryYes
localeNoen

Output Schema

NameRequiredDescription
countYes
queryYes
localeYes
resultsYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so 'read-only' in the description is largely redundant. The description adds no behavior beyond annotations: no result-limit behavior, no locale handling, no indication of what the search covers or how results are ranked.

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?

A single well-formed sentence with the action and resource front-loaded and no filler. It is appropriately sized for a search tool, though there is room to use the remaining space for parameter or usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations carry the safety profile. The remaining gaps are the unaddressed limit/locale parameters and the lack of routing versus sibling retrieval tools, leaving the definition minimally viable but incomplete.

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

Parameters2/5

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

Schema description coverage is 0% and the description only obliquely characterizes 'query' as a task/decision/topic phrasing; it says nothing about the 'limit' cap (max 10) or the 'locale' enum (en/de/fr). With three undocumented parameters, the description does not compensate for the schema gap.

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?

States a specific verb ('find') and resource (Zephior articles, guides, comparisons, industry briefs, glossary resources), so the agent knows this is a content search over Zephior's public library. It does not explicitly name the sibling it contrasts with (e.g., get_zephior_document for direct retrieval), so differentiation is inferable but not stated.

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 phrase 'by the user task, decision or topic they answer' implies what kinds of queries belong here, which is a useful usage signal. However, there is no explicit when-not-to-use condition and no named alternative among the many siblings (get_zephior_document, get_zephior_overview, search_public_tenders).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedget_public_tender2 fields changed
      • addedInput schema / properties / historyBefore
        Added value: +{
        +  "description": "Continue history before this revision; pass historyNextBefore.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / historyLimit
        Added value: +{
        +  "default": 30,
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedget_public_tender_facets1 field changed
      • addedInput schema / properties / categoryOffset
        Added value: +{
        +  "default": 0,
        +  "maximum": 100000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedlist_public_tender_changes8 fields changed
      • addedInput schema / properties / countries
        Added value: +{
        +  "items": {
        +    "pattern": "^[A-Z]{2}$",
        +    "type": "string"
        +  },
        +  "maxItems": 250,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • addedInput schema / properties / events
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "published",
        +      "source_changed",
        +      "corrected",
        +      "withdrawn",
        +      "merged",
        +      "republished"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 6,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • addedInput schema / properties / sectors
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "construction",
        +      "medical",
        +      "it-telecoms",
        +      "energy",
        +      "environment",
        +      "transport",
        +      "facilities",
        +      "food",
        +      "engineering",
        +      "consulting",
        +      "education",
        +      "office",
        +      "culture",
        +      "machinery",
        +      "materials",
        +      "agriculture"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 16,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • addedInput schema / properties / sources
        Added value: +{
        +  "description": "Source IDs from list_public_tender_sources, such as ted-europa.",
        +  "items": {
        +    "pattern": "^[a-z0-9-]{1,100}$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • addedInput schema / properties / until
        Added value: +{
        +  "description": "Exclusive end of the window, with a timezone. With since and until, paging with nextCursor reads one closed window completely.",
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedOutput schema / properties / items / items / properties / event
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / items / items / properties / sector
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / items / items / properties / sourcePlatform
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedsearch_public_tenders9 fields changed
      • addedInput schema / properties / cpv
        Added value: +{
        +  "description": "CPV code prefixes, such as 45 (construction work) or 72 (IT services). Matches notices whose source lists such a code.",
        +  "items": {
        +    "pattern": "^\\d{2,8}$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • addedInput schema / properties / currency
        Added value: +{
        +  "description": "Currency of valueMin and valueMax, such as CHF or EUR. Only notices stating an estimated value in this currency match; amounts are not converted.",
        +  "pattern": "^[A-Z]{3}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / deadlineFrom
        Added value: +{
        +  "description": "Earliest submission deadline: an ISO date (from its start, UTC) or a time with a timezone. Date-only deadlines count as the end of their day.",
        +  "maxLength": 40,
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}(T[0-9:.]+(Z|[+-]\\d{2}:\\d{2}))?$",
        +  "type": "string"
        +}
      • addedInput schema / properties / deadlineTo
        Added value: +{
        +  "description": "Latest submission deadline: an ISO date (to its end, UTC) or a time with a timezone. Notices without a deadline are excluded once either bound is set.",
        +  "maxLength": 40,
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}(T[0-9:.]+(Z|[+-]\\d{2}:\\d{2}))?$",
        +  "type": "string"
        +}
      • addedInput schema / properties / place
        Added value: +{
        +  "description": "Part of the place of performance or buyer location as published, such as Genève or Zürich. Spelling matters; many notices name only a region.",
        +  "maxLength": 100,
        +  "minLength": 3,
        +  "type": "string"
        +}
      • addedInput schema / properties / sectors
        Added value: +{
        +  "description": "Broad sectors grouping every category and CPV code, such as construction or it-telecoms. Prefer this to category IDs for broad needs.",
        +  "items": {
        +    "enum": [
        +      "construction",
        +      "medical",
        +      "it-telecoms",
        +      "energy",
        +      "environment",
        +      "transport",
        +      "facilities",
        +      "food",
        +      "engineering",
        +      "consulting",
        +      "education",
        +      "office",
        +      "culture",
        +      "machinery",
        +      "materials",
        +      "agriculture"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 16,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • changedInput schema / properties / statuses / description
        Previous value: -"Omit for active statuses. An explicit empty array includes all statuses. OR within each filter, AND between filters and text search."New value: +"Omit for active statuses (open, closing-soon, upcoming, unconfirmed). An explicit empty array includes all statuses. closing-soon is an open notice whose deadline is within 7 days (168 hours); a passed deadline shows as closed. OR within each filter, AND between filters and text search."
      • addedInput schema / properties / valueMax
        Added value: +{
        +  "description": "Highest estimated value; needs currency.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / valueMin
        Added value: +{
        +  "description": "Lowest estimated value; needs currency.",
        +  "minimum": 0,
        +  "type": "number"
        +}
  2. 1 tool update
    • Changedsearch_public_tenders14 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "maximum": 50,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / view
        Added value: +{
        +  "default": "compact",
        +  "description": "compact returns what is needed to choose and cite a notice; full returns whole records (notice text, facts, history), at most 20 per page.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / items / items / properties / originalSource
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / items / items / properties / recordedStatus
        Removed value: -{
        -  "enum": [
        -    "open",
        -    "closing-soon",
        -    "closed",
        -    "awarded",
        -    "cancelled",
        -    "suspended",
        -    "upcoming",
        -    "unconfirmed"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / revision
        Removed value: -{
        -  "type": "integer"
        -}
      • removedOutput schema / properties / items / items / properties / sourceCheckedAt
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / sourceStatus
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / items / items / properties / sources
        Removed value: -{
        -  "items": {
        -    "additionalProperties": true,
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / items / items / properties / stale
        Removed value: -{
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / items / items / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "summary",
        -  "status",
        -  "recordedStatus",
        -  "locale",
        -  "deadline",
        -  "originalSource",
        -  "sources",
        -  "modifiedAt"
        -]New value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "summary",
        +  "status",
        +  "locale",
        +  "deadline",
        +  "modifiedAt"
        +]
      • changedOutput schema / properties / items / maxItems
        Previous value: -20New value: +50
      • removedOutput schema / properties / limit / enum
        Removed value: -[
        -  20
        -]
      • addedOutput schema / properties / limit / maximum
        Added value: +50
      • addedOutput schema / properties / limit / minimum
        Added value: +1
  3. 8 tool updates
    • First observedget_public_tender
    • First observedget_public_tender_facets
    • First observedget_zephior_document
    • First observedget_zephior_overview
    • First observedlist_public_tender_changes
    • First observedlist_public_tender_sources
    • First observedsearch_public_tenders
    • First observedsearch_zephior_resources

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and analyzing government tenders, contract awards, and pre-tender pipelines from 21 official sources, with tools for tender search, award intelligence, and detailed notice retrieval.
    MIT
  • 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
    Enables users to search recent EU TED and Spanish PLACSP tender notices by keyword, country, and source, and to retrieve individual notices by id. A free tier returns five notices without source links, while an API key from tender.bitscorp.co unlocks every notice and call.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources