# NextBid — Government Bids for AI

> Search open U.S. federal, state and local government bids and read their documents. Paid; trial.

- name: us.nextbid/data
- version: 0.9.37
- connection class: R1 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 81/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/us.nextbid%2Fdata
- tools: https://api.protogrid.dev/v1/servers/us.nextbid%2Fdata/tools

**An agent can connect on its own if it already holds `X_API_KEY`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "data": {
      "type": "http",
      "url": "https://api.nextbid.us/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

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

## Quality 81/100 (good)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### 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: 71 (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
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_opportunities (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_opportunity (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_documents (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,574 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 14, about 2,574 tokens to load them all
- tool set hash: 6a6812c5c33caca7b2fba43f7b69b8d5
- badge: [![protogrid quality](https://protogrid.dev/badge/us.nextbid/data.svg)](https://protogrid.dev/servers/us.nextbid/data)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://api.nextbid.us/mcp (streamable-http, auth api_key ${X_API_KEY}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (14)

- `corpus_stats`: The corpus numbers with their definitions: total_solicitations (distinct, duplicates excluded), open (listed open by the source with the deadline ahead or unstated, or deadline ahead with no status; passed deadlines and unknown status are separate: listed_open_past_deadline, status_unknown), due_30d (known deadline only), open_set_asides (distinct open solicitations designated under any supported program; each counts once; open competition excluded), open_set_aside_mentions (title language only), set_asides_by_program, unmapped_set_aside_values (for review), open by source, documents, as_of and replica_as_of.
- `get_document_download`: A time-limited download link for one stored original document of an opportunity (sha256 from list_documents, where stored is true). One request; the file is served by NextBid's object store, not through the API.
- `get_document_text`: The AnyDoc extracted text of one document (sha256 = the text sha256 or the original sha256 from get_evidence), verified against its indexed hash. Offsets in get_evidence index into this text. One request.
- `get_evidence`: The evidence for one opportunity: every indexed document (identity, version, hashes, whether the original is downloadable, whether the AnyDoc extracted text is verified) and the Graphify claims - each a GENERATED label with the SOURCE passage it cites (document, UTF-16 offsets, exact quoted text) and a verification status (RESOLVED = offsets match the hash-verified text and the graph quote). Gaps (pending custody, unavailable extraction, unresolved citations) are listed explicitly. One request.
- `get_opportunity`: Full record for one opportunity by NextBid id (NB########): description, AI summary, buyer contacts (current and historical), amendments, filed documents. One request; counts as a delivered solicitation the first time this account receives it.
- `list_documents`: The document set for one opportunity: source_documents (listed by the source engine: name, size, sha256, source url, whether NextBid stores the original) and nextbid_documents (the current Document 0 and normalized text, readable with read_file). Pipeline artifacts are counted, not listed. Names and metadata only.
- `list_files`: The current stored documents for one opportunity: Document 0 markdown/json and normalized attachment markdown (class document0 / normalized_text). include="all" adds pipeline artifacts (case files, graphs, packets) and superseded Document 0 generations. Use read_file to fetch one.
- `list_set_asides`: Set-aside and small-business programs NextBid recognizes (federal SBA programs, California SB/DVBE, open competition): id, name, level, what it means, official reference, aliases and today's counts split into open_designated (source-marked) and open_mentioned (title language only). Use an id or alias in search_opportunities.set_asides. Never an eligibility determination.
- `list_tradelines`: The trade catalog: each trade id with its name, description, specialties and search aliases, plus today's open count. Use an id or any alias in search_opportunities. Specialties describe supported categories, not open bids.
- `mark_pursuit`: Record that the customer is watching, pursuing, has submitted, won, lost or dropped an opportunity. Call it only when the customer says so; reading a bid is never a pursuit. Free.
- `my_account`: The account's meter: plan, allowance used and remaining, period reset or trial expiry, keys, what counts as a call, how to upgrade, and the business profile. Free.
- `my_usage`: The account's meters: requests used and remaining, unique solicitations delivered and remaining, plan period or trial expiry. Free.
- `read_file`: Read one stored text artifact of an opportunity (path from list_files). Returns the text, truncated to max_chars (default 60,000).
- `search_opportunities`: Search open government solicitations (SAM.gov, DLA DIBBS, CalProcure, OpenGov, PlanetBids, PublicPurchase, Bonfire, and agency notices syndicated by InstantMarkets) in NextBid's normalized corpus. Returns one deduplicated record per opportunity with agency, deadline, codes, document status and a source link, plus total and facets. Metered on two account meters: one request per call, and each solicitation the first time it reaches the account (repeats are free on that meter). page_size 0 = counts and facets only. Trial: 100 requests and 250 solicitations per account, page_size up to 25. If the solicitation allowance runs out mid-page, delivery.truncated is true and delivery.withheld says how many were held back.
