# GovGazette

> Find federal opportunities, research awards and vendors, and review dated exclusion evidence.

- name: io.github.mooshee/govgazette
- version: 1.3.1
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.mooshee%2Fgovgazette
- tools: https://api.protogrid.dev/v1/servers/io.github.mooshee%2Fgovgazette/tools

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

## Connection (mcpServers)

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


## Trust

- hygiene: 100
- liveness: 96
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-89% +updated-10d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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`: 17 of 17 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,800 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 53 tool changes in 30 days
- fail `stability.rug_pull`: 2 tools kept their name but changed most of their description in 30 days; review before trusting them

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

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

- tools: 17, about 3,800 tokens to load them all
- tool set hash: 41b1ace4c29134ed8598135f76edf589
- tools last changed: 2026-10-14T15:14:10.231Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.mooshee/govgazette.svg)](https://protogrid.dev/servers/io.github.mooshee/govgazette)
- 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-14 `freshness` changed (outputSchema)
- 2026-10-12 `search_exclusions` changed (description, inputSchema, outputSchema)
  - before: Filter active exclusion records by agency, program, classification, geography and dates. Preserve the returned cursor and generation. Read coverage.freshness for source age and warnings; results are dated evidence, not clearance.
  - after: Filter active exclusion records by agency, program, classification, geography and dates. Limit is a maximum; large records can produce a smaller page with page_size_limited true. Continue with next_cursor and unchanged filters and limit. Preserve generation and read coverage.freshness for source age and warnings; results are dated evidence, not clearance.
- 2026-10-12 `document` changed (description) **meaning changed**
  - before: Read bounded official record text by known identifier. Does not fetch arbitrary URLs or paths.
  - after: Read official record text using the exact collection, id and generation returned by search. Start at offset 0 with length 1 to 16,000 characters, then use next_offset unchanged for the next chunk. Does not fetch arbitrary URLs or paths.
- 2026-10-12 `detail` changed (description) **meaning changed**
  - before: Retrieve a known public identifier. Supply generation from search for a consistent result.
  - after: Retrieve a public record using the exact collection and id returned by search, never a page URL, title or slug. Supply the returned generation for a consistent result.
- 2026-10-12 `check_exclusions` changed (inputSchema, outputSchema)
- 2026-10-10 `document` changed (inputSchema)
- 2026-10-09 `saved_searches` removed
  - Manage private saved opportunity searches: list/create/events/delete/rotate_feed/delete_workspace. Requires Authorization Bearer workspace key configured in the client headers, never tool arguments. Ask before creating or deleting. Public research tools do not require this key.
- 2026-10-09 `rotate_saved_search_feed` added
  - Replace the private feed link for one saved search owned by the authenticated workspace, immediately revoking its previous link. Requires explicit user intent. Does not delete the search or its events. Keep the replacement link private; a lost response may mean the link changed and cannot be recovered by listing searches.
- 2026-10-09 `list_saved_searches` added
  - List the saved opportunity searches in the authenticated private workspace, including criteria, status and change counts. Does not change searches. Requires workspace Authorization headers on /mcp or account OAuth on /account/mcp; never accept keys in tool arguments.
- 2026-10-09 `get_saved_search_events` added
  - Read the latest 100 retained change observations for one saved search owned by the authenticated private workspace. Does not change the search. Retention and missing intermediate observations are explicit; observations are not proof of delivered notifications.

Full history: https://api.protogrid.dev/v1/servers/io.github.mooshee%2Fgovgazette/changes

## Remotes

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

## Packages

_none_

## Tools (17)

- `check_exclusions`: Check 1 to 20 identities against a dated active SAM snapshot. Pass identities as an array of objects, not a record ID or page URL. Each identity needs a name, UEI, CAGE, or NPI. Exact identifier matches and name-only possible matches remain distinct. Read coverage.freshness; stale or unknown-source empty lookups report unavailable with snapshot_status no_match_in_snapshot. No match is not clearance.
- `create_saved_search`: Create one private saved opportunity search with the supplied name and criteria. Requires authenticated workspace access and explicit user intent. Creates an account workspace if needed and adds a search without replacing existing searches. Returns a private feed link. The first successful check establishes a baseline; no email or external notification is sent.
- `delete_saved_search`: Permanently delete one saved search owned by the authenticated private workspace, including its baseline, retained change events and feed link. Requires explicit user intent; does not delete other searches or public records.
- `delete_saved_search_workspace`: Permanently delete the authenticated private saved-search workspace and all its searches, baselines, change events and feed links. Requires explicit user intent to delete the entire workspace. Does not delete the GovGazette login account, public records or another workspace.
- `detail`: Retrieve a public record using the exact collection and id returned by search, never a page URL, title or slug. Supply the returned generation for a consistent result.
- `document`: Read official record text using the exact collection, id and generation returned by search. Start at offset 0 with length 1 to 16,000 characters, then use next_offset unchanged for the next chunk. Does not fetch arbitrary URLs or paths.
- `exclusion_changes`: Compare two retained snapshots. No longer observed does not mean reinstated; enrichment-only changes are excluded.
- `exclusion_context`: Retrieve an exclusion with agency explanation, named restriction references, source evidence, explicit source-age warnings and supported business links.
- `explain_match`: Explain deterministic primary NAICS overlap between a registered vendor and opportunity. Not an eligibility determination.
- `freshness`: Report actual source dates, coverage, record counts and SHA256 provenance.
- `get_saved_search_events`: Read the latest 100 retained change observations for one saved search owned by the authenticated private workspace. Does not change the search. Retention and missing intermediate observations are explicit; observations are not proof of delivered notifications.
- `list_saved_searches`: List the saved opportunity searches in the authenticated private workspace, including criteria, status and change counts. Does not change searches. Requires workspace Authorization headers on /mcp or account OAuth on /account/mcp; never accept keys in tool arguments.
- `research_opportunity`: Build a cited research brief with retained notice requirements, exact award-number candidates and same-industry comparisons. Does not infer an incumbent or eligibility.
- `rotate_saved_search_feed`: Replace the private feed link for one saved search owned by the authenticated workspace, immediately revoking its previous link. Requires explicit user intent. Does not delete the search or its events. Keep the replacement link private; a lost response may mean the link changed and cannot be recovered by listing searches.
- `search`: Search public opportunities, vendors, awards, exclusions, or reference collections. Results include provenance and a generation-pinned cursor.
- `search_exclusions`: Filter active exclusion records by agency, program, classification, geography and dates. Limit is a maximum; large records can produce a smaller page with page_size_limited true. Continue with next_cursor and unchanged filters and limit. Preserve generation and read coverage.freshness for source age and warnings; results are dated evidence, not clearance.
- `search_opportunities`: Find official opportunity records by keywords, industry, set-aside, state, agency and source status. Active does not imply the deadline is open.
