Find federal opportunities, research awards and vendors, and review dated exclusion evidence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
One to twenty identities to compare with the dated SAM snapshot.
Retained snapshot UUID; omit for the current snapshot.
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.
| Argument | Type | Description |
|---|---|---|
| generation | string | null | Retained snapshot UUID; omit for the current snapshot. |
| identities* | array | One to twenty identities to compare with the dated SAM snapshot. |
{
"type": "object",
"$defs": {
"Identity": {
"type": "object",
"properties": {
"npi": {
"type": [
"string",
"null"
],
"description": "Exact ten-digit National Provider Identifier, when known."
},
"uei": {
"type": [
"string",
"null"
],
"description": "Exact 12-character Unique Entity ID, when known."
},
"cage": {
"type": [
"string",
"null"
],
"description": "Exact five-character CAGE code, when known."
},
"name": {
"type": [
"string",
"null"
],
"description": "Person or organization name, within 256 UTF-8 bytes; name-only matches are possible matches."
}
},
"additionalProperties": false
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"identities"
],
"properties": {
"generation": {
"type": [
"string",
"null"
],
"description": "Retained snapshot UUID; omit for the current snapshot."
},
"identities": {
"type": "array",
"items": {
"$ref": "#/$defs/Identity"
},
"maxItems": 20,
"minItems": 1,
"description": "One to twenty identities to compare with the dated SAM snapshot."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable name for the new saved search; 1 to 100 UTF-8 bytes after trimming. |
| criteria* | any | Opportunity filters to save; generation, after and limit are reset by the server. |
{
"type": "object",
"$defs": {
"OpportunityQuery": {
"type": "object",
"properties": {
"q": {
"type": "string",
"default": "",
"description": "Plain-language keywords; empty returns notices matching the other filters."
},
"after": {
"type": [
"string",
"null"
],
"description": "Last notice ID from next_after in the preceding page."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint",
"maximum": 50,
"minimum": 1,
"description": "Maximum notices to return, from 1 to 50; defaults to 25."
},
"naics": {
"type": [
"string",
"null"
],
"description": "Two- to six-digit NAICS industry code from a notice or the NAICS reference collection."
},
"state": {
"type": [
"string",
"null"
],
"description": "State or territory code for the place of performance."
},
"active": {
"type": [
"boolean",
"null"
],
"description": "Filter by source active status; this does not mean the response deadline is open."
},
"agency": {
"type": [
"string",
"null"
],
"description": "Agency code on the source notice."
},
"set_aside": {
"type": [
"string",
"null"
],
"description": "Official set-aside code from a notice or the set-asides reference collection."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained generation UUID from a prior result for a consistent snapshot."
}
},
"additionalProperties": false
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"criteria"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable name for the new saved search; 1 to 100 UTF-8 bytes after trimming."
},
"criteria": {
"$ref": "#/$defs/OpportunityQuery",
"description": "Opportunity filters to save; generation, after and limit are reset by the server."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace."
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exact stable record ID returned by search, not a page URL or slug. |
| collection* | string | Public collection name returned by search. |
| generation | string | null | Retained generation UUID from search for a consistent record snapshot. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"collection",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Exact stable record ID returned by search, not a page URL or slug."
},
"collection": {
"type": "string",
"description": "Public collection name returned by search."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained generation UUID from search for a consistent record snapshot."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Stable ID of a known public record. |
| length | integer | null | Characters to return, from 1 to 16,000. Smaller chunks may be needed to fit the response byte budget. |
| offset | integer | null | Character offset for the next bounded text chunk. |
| collection* | string | Public record collection returned by search. |
| generation | string | null | Retained snapshot UUID; omit for the current snapshot. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"collection",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Stable ID of a known public record."
},
"length": {
"type": [
"integer",
"null"
],
"format": "uint64",
"maximum": 16000,
"minimum": 1,
"description": "Characters to return, from 1 to 16,000. Smaller chunks may be needed to fit the response byte budget."
},
"offset": {
"type": [
"integer",
"null"
],
"format": "uint64",
"minimum": 0,
"description": "Character offset for the next bounded text chunk."
},
"collection": {
"type": "string",
"description": "Public record collection returned by search."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained snapshot UUID; omit for the current snapshot."
}
}
}Compare two retained snapshots. No longer observed does not mean reinstated; enrichment-only changes are excluded.
| Argument | Type | Description |
|---|---|---|
| limit | integer | null | Maximum changes to return, up to the service page limit. |
| cursor | string | null | Opaque next_cursor from an earlier change page. |
| to_generation | string | null | Newer retained snapshot UUID; omit for the current snapshot. |
| from_generation* | string | Older retained snapshot UUID to compare. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"from_generation"
],
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"format": "uint",
"maximum": 50,
"minimum": 1,
"description": "Maximum changes to return, up to the service page limit."
},
"cursor": {
"type": [
"string",
"null"
],
"description": "Opaque next_cursor from an earlier change page."
},
"to_generation": {
"type": [
"string",
"null"
],
"description": "Newer retained snapshot UUID; omit for the current snapshot."
},
"from_generation": {
"type": "string",
"description": "Older retained snapshot UUID to compare."
}
},
"additionalProperties": false
}Retrieve an exclusion with agency explanation, named restriction references, source evidence, explicit source-age warnings and supported business links.
| Argument | Type | Description |
|---|---|---|
| id* | string | Stable exclusion record ID returned by search_exclusions or check_exclusions. |
| generation | string | null | Retained snapshot UUID; omit for the current snapshot. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Stable exclusion record ID returned by search_exclusions or check_exclusions."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained snapshot UUID; omit for the current snapshot."
}
},
"additionalProperties": false
}Explain deterministic primary NAICS overlap between a registered vendor and opportunity. Not an eligibility determination.
| Argument | Type | Description |
|---|---|---|
| vendor_id* | string | Stable vendor ID returned by search. |
| opportunity_id* | string | Stable opportunity ID returned by search. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"vendor_id",
"opportunity_id"
],
"properties": {
"vendor_id": {
"type": "string",
"description": "Stable vendor ID returned by search."
},
"opportunity_id": {
"type": "string",
"description": "Stable opportunity ID returned by search."
}
}
}Report actual source dates, coverage, record counts and SHA256 provenance.
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace."
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Build a cited research brief with retained notice requirements, exact award-number candidates and same-industry comparisons. Does not infer an incumbent or eligibility.
| Argument | Type | Description |
|---|---|---|
| id* | string | Stable opportunity ID returned by search_opportunities. |
| generation | string | null | Retained generation UUID from search_opportunities. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Stable opportunity ID returned by search_opportunities."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained generation UUID from search_opportunities."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Saved search UUID returned by create_saved_search or list_saved_searches, owned by this workspace."
}
},
"additionalProperties": false
}Search public opportunities, vendors, awards, exclusions, or reference collections. Results include provenance and a generation-pinned cursor.
| Argument | Type | Description |
|---|---|---|
| q | string | Plain-language search terms; empty lists the selected collection. |
| limit | integer | null | Maximum records to return, from 1 to 50. |
| cursor | string | null | Opaque next_cursor from the preceding search page. |
| collection* | string | Public collection name, such as opportunities, vendors, awards, exclusions, or naics. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"collection"
],
"properties": {
"q": {
"type": "string",
"default": "",
"description": "Plain-language search terms; empty lists the selected collection."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint",
"maximum": 50,
"minimum": 1,
"description": "Maximum records to return, from 1 to 50."
},
"cursor": {
"type": [
"string",
"null"
],
"description": "Opaque next_cursor from the preceding search page."
},
"collection": {
"type": "string",
"description": "Public collection name, such as opportunities, vendors, awards, exclusions, or naics."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| q | string | null | Name, identifier, or other text to find in active exclusion records. |
| limit | integer | null | Maximum records to return, from 1 to 50. Large records may produce a smaller page; continue with next_cursor and unchanged filters and limit. |
| state | string | null | US state name or postal code in the exclusion record. |
| agency | string | null | Excluding agency name or code. |
| cursor | string | null | Opaque next_cursor from a previous search response. |
| country | string | null | Country name or code in the exclusion record. |
| program | string | null | Exclusion program name or code. |
| generation | string | null |
Find official opportunity records by keywords, industry, set-aside, state, agency and source status. Active does not imply the deadline is open.
| Argument | Type | Description |
|---|---|---|
| q | string | Plain-language keywords; empty returns notices matching the other filters. |
| after | string | null | Last notice ID from next_after in the preceding page. |
| limit | integer | null | Maximum notices to return, from 1 to 50; defaults to 25. |
| naics | string | null | Two- to six-digit NAICS industry code from a notice or the NAICS reference collection. |
| state | string | null | State or territory code for the place of performance. |
| active | boolean | null | Filter by source active status; this does not mean the response deadline is open. |
| agency | string | null | Agency code on the source notice. |
| set_aside | string | null | Official set-aside code from a notice or the set-asides reference collection. |
| Retained snapshot UUID; omit for the current snapshot. |
| effective_to | string | null | Include records effective on or before this ISO date. |
| classification | string | null | Official SAM exclusion classification code or label. |
| effective_from | string | null | Include records effective on or after this ISO date. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": [
"string",
"null"
],
"description": "Name, identifier, or other text to find in active exclusion records."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint",
"maximum": 50,
"minimum": 1,
"description": "Maximum records to return, from 1 to 50. Large records may produce a smaller page; continue with next_cursor and unchanged filters and limit."
},
"state": {
"type": [
"string",
"null"
],
"description": "US state name or postal code in the exclusion record."
},
"agency": {
"type": [
"string",
"null"
],
"description": "Excluding agency name or code."
},
"cursor": {
"type": [
"string",
"null"
],
"description": "Opaque next_cursor from a previous search response."
},
"country": {
"type": [
"string",
"null"
],
"description": "Country name or code in the exclusion record."
},
"program": {
"type": [
"string",
"null"
],
"description": "Exclusion program name or code."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained snapshot UUID; omit for the current snapshot."
},
"effective_to": {
"type": [
"string",
"null"
],
"description": "Include records effective on or before this ISO date."
},
"classification": {
"type": [
"string",
"null"
],
"description": "Official SAM exclusion classification code or label."
},
"effective_from": {
"type": [
"string",
"null"
],
"description": "Include records effective on or after this ISO date."
}
},
"additionalProperties": false
}| generation |
| string | null |
| Retained generation UUID from a prior result for a consistent snapshot. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"default": "",
"description": "Plain-language keywords; empty returns notices matching the other filters."
},
"after": {
"type": [
"string",
"null"
],
"description": "Last notice ID from next_after in the preceding page."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint",
"maximum": 50,
"minimum": 1,
"description": "Maximum notices to return, from 1 to 50; defaults to 25."
},
"naics": {
"type": [
"string",
"null"
],
"description": "Two- to six-digit NAICS industry code from a notice or the NAICS reference collection."
},
"state": {
"type": [
"string",
"null"
],
"description": "State or territory code for the place of performance."
},
"active": {
"type": [
"boolean",
"null"
],
"description": "Filter by source active status; this does not mean the response deadline is open."
},
"agency": {
"type": [
"string",
"null"
],
"description": "Agency code on the source notice."
},
"set_aside": {
"type": [
"string",
"null"
],
"description": "Official set-aside code from a notice or the set-asides reference collection."
},
"generation": {
"type": [
"string",
"null"
],
"description": "Retained generation UUID from a prior result for a consistent snapshot."
}
},
"additionalProperties": false
}