# Zephior Discovery

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

- name: com.zephior/discovery
- version: 1.6.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.zephior%2Fdiscovery
- tools: https://api.protogrid.dev/v1/servers/com.zephior%2Fdiscovery/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "discovery": {
      "type": "http",
      "url": "https://mcp.zephior.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,622 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 2 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 2,622 tokens to load them all
- tool set hash: dd28bc5c93a07f14578930977f5be771
- tools last changed: 2026-10-19T02:21:59.554Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.zephior/discovery.svg)](https://protogrid.dev/servers/com.zephior/discovery)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `list_public_tender_changes` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: List new, amended and withdrawn published notices in change order, with changed fields and a continuation cursor.
  - after: 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.
- 2026-10-19 `get_public_tender_facets` changed (description, inputSchema) **meaning changed**
  - before: Discover published country IDs, all supported statuses and up to 100 category IDs. Pass categoryQuery, such as road construction, to find matching categories; categoriesTotal counts every match, and a narrower query finds the rest. Prefer broad categories (such as construction-works) and add q keywords, since many notices sit only under a broad category.
  - after: 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.
- 2026-10-19 `get_public_tender` changed (description, inputSchema)
  - before: Read a published notice, source-backed facts, available requirements, original source and history. Missing information is explicitly unavailable. 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. history holds the latest 30 revisions (historyTruncated marks older ones left out). Compare deadlines with the original notice before relying on them.
  - after: 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).
- 2026-10-19 `search_public_tenders` changed (description, inputSchema) **meaning changed**
  - before: Search published tender notices with combined country, category, status, buyer and text filters. Returns compact hits with canonical citations, 20 per page by default (limit up to 50); read get_public_tender for notice text, facts and history. total counts every match: read each nextPage before calling a list complete. Category IDs match only notices classified under them, so combine broad needs with q keywords in the source language. With sort deadline, date-only deadlines (precision date) currently follow those with an exact time.
  - after: 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.
- 2026-10-18 `list_public_tender_sources` changed (description)
  - before: List the procurement sources behind published notices, with names, official portals, notice counts, countries and when each source was last checked.
  - after: List the procurement sources behind published notices, with names, official portals, notice counts, countries and when each source was last checked (null when unknown).
- 2026-10-18 `get_public_tender_facets` changed (description)
  - before: Discover published country IDs, all supported statuses and up to 100 category IDs. Pass categoryQuery, such as road construction, to find matching categories; categoriesTotal counts every match.
  - after: Discover published country IDs, all supported statuses and up to 100 category IDs. Pass categoryQuery, such as road construction, to find matching categories; categoriesTotal counts every match, and a narrower query finds the rest. Prefer broad categories (such as construction-works) and add q keywords, since many notices sit only under a broad category.
- 2026-10-18 `get_public_tender` changed (description) **meaning changed**
  - before: Read a published notice, source-backed facts, available requirements, original source and history. Missing information is explicitly unavailable.
  - after: Read a published notice, source-backed facts, available requirements, original source and history. Missing information is explicitly unavailable. 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. history holds the latest 30 revisions (historyTruncated marks older ones left out). Compare deadlines with the original notice before relying on them.
- 2026-10-18 `search_public_tenders` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Search published tender notices with combined country, category, status, buyer and text filters. Returns canonical citations and 20 records per page.
  - after: Search published tender notices with combined country, category, status, buyer and text filters. Returns compact hits with canonical citations, 20 per page by default (limit up to 50); read get_public_tender for notice text, facts and history. total counts every match: read each nextPage before calling a list complete. Category IDs match only notices classified under them, so combine broad needs with q keywords in the source language. With sort deadline, date-only deadlines (precision date) currently follow those with an exact time.
- 2026-10-18 `list_public_tender_sources` changed (annotations)
- 2026-10-18 `list_public_tender_changes` changed (description, annotations) **meaning changed**
  - before: Follow new, amended and withdrawn published notices in the order they changed. Each item names the changed fields; read get_public_tender for the content. Pass nextCursor to continue.
  - after: List new, amended and withdrawn published notices in change order, with changed fields and a continuation cursor.

Full history: https://api.protogrid.dev/v1/servers/com.zephior%2Fdiscovery/changes

## Remotes

- https://mcp.zephior.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `get_public_tender`: 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).
- `get_public_tender_facets`: 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.
- `get_zephior_document`: Use this read-only tool to retrieve one canonical public document covering service selection, developer integration or current pricing.
- `get_zephior_overview`: Use this read-only tool to identify Zephior, compare Ziva and Zelius and find canonical contact or developer resources.
- `list_public_tender_changes`: 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.
- `list_public_tender_sources`: List the procurement sources behind published notices, with names, official portals, notice counts, countries and when each source was last checked (null when unknown).
- `search_public_tenders`: 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.
- `search_zephior_resources`: 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.
