protogrid

Search / io.github.matchawards/matchawards-mcp

MatchAwards

R0· no sign-in

Search US government contracts, grants and jobs from matchawards.com. Read-only, no key.

v1.0.4 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality81good
Trust97of 100
Uptime, 30 days100%
Latency p50255 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "matchawards-mcp": {
      "type": "http",
      "url": "https://matchawards.com/mcp"
    }
  }
}
claude mcp add --transport http matchawards-mcp https://matchawards.com/mcp
[mcp_servers.matchawards-mcp]
url = "https://matchawards.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "matchawards-mcp": {
      "type": "remote",
      "url": "https://matchawards.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "matchawards-mcp": {
      "type": "http",
      "url": "https://matchawards.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=matchawards-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWF0Y2hhd2FyZHMuY29tL21jcCJ9"
}
{
  "servers": {
    "matchawards-mcp": {
      "type": "http",
      "url": "https://matchawards.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "matchawards-mcp": {
      "httpUrl": "https://matchawards.com/mcp"
    }
  }
}
extensions:
  "matchawards-mcp":
    enabled: true
    name: "matchawards-mcp"
    type: streamable_http
    uri: "https://matchawards.com/mcp"
    timeout: 300

Quality 81 / 100good

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 86400000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations10 of 10 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,462 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes12 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know [email protected]

10 tools, about 4,462 tokens to load them all · tool set bc22283e611d · tools last changed 2026-10-13 · checked 2026-10-20 13:17 UTC

Tool changes

  • find_contactsremoved

    Get only the published points of contact for one opportunity by its id. Use this when the user asks who to contact about a result. Returns {id, title, url, contacts}, where contacts is [{name, title}] as the public matchawards.com page shows them; an empty list means none are published. Example: id="abc123".

  • search_by_naicsremoved

    List the newest opportunities for one or more NAICS industry codes. Use this when the user gives NAICS codes and nothing else. Returns up to 20 results, {as_of, results, has_more, next_cursor}, each with a matchawards.com url. Filters: naics (required), type (contract, federal, state, grant or job), cursor (next_cursor of the previous call, same naics and type). For keyword, state or other filters use search_contracts, search_grants or search_jobs. Example: naics="541511,541512", type="federal".

  • show_resultsadded

    Use this last, after searching, to show the user the opportunities you picked as a card. Pass up to 10 ids from search_contracts or search_grants results, best first. Keep your reply to a short summary; the card shows the rows. Ids from search_jobs or search_awards are not shown. Do not use to search (search_contracts, search_grants) or for one result's details (get_opportunity).

  • find_teaming_partnersadded

    Use this when the user wants possible teaming partners, subcontractors or primes for one opportunity: firms that won similar awards in the same state or at the same agency. Pass the id from a search result, and optionally role (sub, prime or any). Returns up to 10 firms from MatchAwards' award records (same NAICS in the opportunity's state, then at its agency, else anywhere; sample gives the dates covered and whether every matching record was read), ranked by how many similar awards they won, each with a why line; get_company(uei) shows the history of a firm with a uei. No contact details. Award records may be incomplete, so say so; ai_subcontracting is AI-generated, so label it. Never call a firm the incumbent. Example: id="117412688283576625". Print the opportunity's url and sam_url as markdown links. Do not use for searching awards in general (search_awards), for one firm's history (get_company) or for job postings.

  • assess_opportunityadded

    Use this when the user asks whether to bid on one opportunity, or wants a qualification brief on it: days left, set-aside, AI fit notes, similar past awards, the firms that typically win such work and the usual award value. Pass the id from a search result, and optionally my_naics (up to 10 codes) and my_set_aside to check the fit. Similar awards come from MatchAwards' award records for the same NAICS at the same agency, or at all agencies when that agency has none (basis says which); sample gives the dates covered and whether every matching record was read, so state that span rather than a longer one. Award records may be incomplete, so say so; ai text is AI-generated, so label it. Never call a firm the incumbent: these are firms that won similar work. Example: id="117412688283576625". Print url, sam_url and each award's url and source_url as markdown links. Do not use for searching (search_contracts, search_grants), for finding partners (find_teaming_partners) or for job postings.

  • get_companyadded

    Use this when the user wants one firm's government award history and its UEI is known, e.g. from a search_awards row. Returns the firm's name and other spellings, location (city, state, country), totals for contract and grant awards, first and last award dates, top NAICS codes and agencies, and its 10 most recent awards. No contact details. Award records may be incomplete, so say so. Example: uei="C3KXNLTAAY98". Print each recent award's url and source_url as markdown links. Do not use for finding firms by name or NAICS (search_awards) or for contact details (none are available).

  • search_awardsadded

    Use this when the user asks who won government contracts or grants: past awards by NAICS, agency, state, awardee name or UEI, with amounts and dates. Filters: type (contract_award, grant_award or any), naics (up to 10 codes), agency (a name; the note says which agency it matched), state, awardee (part of a name), uei, keyword (matched in the title; a grant award's title is its recipient's name), awarded_within_days (1 to 1095, default 365), limit (1 to 50, default 20). If has_more is true, call again with cursor=next_cursor and the same filters. Example: naics="541512", agency="Department of Veterans Affairs". Pass several NAICS codes in one call. Award records may be incomplete, so say so. Head a grant award with its awardee name and CFDA number, not its title. Pass an awardee's uei to get_company for its full history. Print each award's url and source_url as markdown links. Do not use for open opportunities to bid on (search_contracts, search_grants) or for one firm's history when its UEI is known (get_company).

  • lookup_naicsadded

    Use this when the user describes a line of work in words and a NAICS code is needed, or asks what a code or code prefix covers. query is words (2 to 100 characters; common terms such as cybersecurity or janitorial list their usual codes first) or 2 to 6 digits (every six-digit code starting with them). limit is 1 to 25, default 10. Pass the codes as naics to search_contracts, search_grants, search_jobs or search_awards. Print each opportunities_url that is set as a markdown link. Do not use for searching opportunities or awards themselves (the search tools take the codes).

  • get_opportunitychangedtitle, description, output schema, annotationsmeaning changed
    before

    Get the full record of one opportunity by its id from a search result. Use this when the user wants details on one result. Returns the search row plus description (up to 2000 characters) and contacts [{name, title}], with the matchawards.com url. Example: id="abc123".

    after · 35% of words in common

    Use this when the user wants the details of one search result, or who to contact about it. Pass the id from a search result. Returns the result's row plus its description (up to 2000 characters), published points of contact (name and title only) and, when MatchAwards has them, ai: AI-generated notes on fit, subcontracting and large-prime angles and a summary. AI text is AI-generated: label it as such whenever you quote it. Example: id="117402307943537453". Print url, and sam_url for federal notices, as markdown links. Do not use for searching (search_contracts, search_grants, search_jobs) or for contact details beyond the published names and titles.

  • search_jobschangedtitle, description, input schema, output schema, annotations
    before

    Search job postings from the last 30 days listed on MatchAwards. Use this when the user is looking for a job or for hiring signals, not for contracts or grants. Returns {as_of, results, has_more, next_cursor}; each result has id, title, agency (the employer), state, city, posted_at and a matchawards.com url; other fields are null. Filters: naics, state, keyword, posted_within_days (up to 30), limit, cursor. If has_more is true, call again with cursor=next_cursor and the same filters. Example: keyword="electrician", state="TX", posted_within_days=7.

    after · 63% of words in common

    Use this when the user is looking for a job, or for hiring signals, among postings from the last 30 days. Filters: naics (up to 10 codes), state, keyword (title only), posted_within_days (posted within the last 1 to 30 days, default 30), limit (1 to 50, default 20). Rows carry title, agency (the employer), state, city, posted_at and url. If has_more is true, call again with cursor=next_cursor and the same filters. Example: keyword="electrician", state="TX". Pass several NAICS codes in one call. Print each result's url as a markdown link. Do not use for contracts (search_contracts) or grants (search_grants).

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-7d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] PyPIthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://matchawards.com/mcp streamable-httpnoneyes100%255 ms2026-07-282026-10-20
packageregistryversionruntimesecrets
matchawards-mcppypi1.0.4uvx

Tools (10)

assess_opportunityread-onlyUse this when the user asks whether to bid on one opportunity, or wants a qualification brief on it: days left, set-aside, AI fit notes, similar past awards, the firms that typically win such work and the usual award value. Pass the id from a search result, and optionally my_naics (up to 10 codes) and my_set_aside to check the fit. Similar awards come from MatchAwards' award records for the same NAICS at the same agency, or at all agencies when that agency has none (basis says which); sample gives the dates covered and whether every matching record was read, so state that span rather than a longer one. Award records may be incomplete, so say so; ai text is AI-generated, so label it. Never call a firm the incumbent: these are firms that won similar work. Example: id="117412688283576625". Print url, sam_url and each award's url and source_url as markdown links. Do not use for searching (search_contracts, search_grants), for finding partners (find_teaming_partners) or for job postings.
find_teaming_partnersread-onlyUse this when the user wants possible teaming partners, subcontractors or primes for one opportunity: firms that won similar awards in the same state or at the same agency. Pass the id from a search result, and optionally role (sub, prime or any). Returns up to 10 firms from MatchAwards' award records (same NAICS in the opportunity's state, then at its agency, else anywhere; sample gives the dates covered and whether every matching record was read), ranked by how many similar awards they won, each with a why line; get_company(uei) shows the history of a firm with a uei. No contact details. Award records may be incomplete, so say so; ai_subcontracting is AI-generated, so label it. Never call a firm the incumbent. Example: id="117412688283576625". Print the opportunity's url and sam_url as markdown links. Do not use for searching awards in general (search_awards), for one firm's history (get_company) or for job postings.
get_companyread-onlyUse this when the user wants one firm's government award history and its UEI is known, e.g. from a search_awards row. Returns the firm's name and other spellings, location (city, state, country), totals for contract and grant awards, first and last award dates, top NAICS codes and agencies, and its 10 most recent awards. No contact details. Award records may be incomplete, so say so. Example: uei="C3KXNLTAAY98". Print each recent award's url and source_url as markdown links. Do not use for finding firms by name or NAICS (search_awards) or for contact details (none are available).
get_opportunityread-onlyUse this when the user wants the details of one search result, or who to contact about it. Pass the id from a search result. Returns the result's row plus its description (up to 2000 characters), published points of contact (name and title only) and, when MatchAwards has them, ai: AI-generated notes on fit, subcontracting and large-prime angles and a summary. AI text is AI-generated: label it as such whenever you quote it. Example: id="117402307943537453". Print url, and sam_url for federal notices, as markdown links. Do not use for searching (search_contracts, search_grants, search_jobs) or for contact details beyond the published names and titles.
lookup_naicsread-onlyUse this when the user describes a line of work in words and a NAICS code is needed, or asks what a code or code prefix covers. query is words (2 to 100 characters; common terms such as cybersecurity or janitorial list their usual codes first) or 2 to 6 digits (every six-digit code starting with them). limit is 1 to 25, default 10. Pass the codes as naics to search_contracts, search_grants, search_jobs or search_awards. Print each opportunities_url that is set as a markdown link. Do not use for searching opportunities or awards themselves (the search tools take the codes).
search_awardsread-onlyUse this when the user asks who won government contracts or grants: past awards by NAICS, agency, state, awardee name or UEI, with amounts and dates. Filters: type (contract_award, grant_award or any), naics (up to 10 codes), agency (a name; the note says which agency it matched), state, awardee (part of a name), uei, keyword (matched in the title; a grant award's title is its recipient's name), awarded_within_days (1 to 1095, default 365), limit (1 to 50, default 20). If has_more is true, call again with cursor=next_cursor and the same filters. Example: naics="541512", agency="Department of Veterans Affairs". Pass several NAICS codes in one call. Award records may be incomplete, so say so. Head a grant award with its awardee name and CFDA number, not its title. Pass an awardee's uei to get_company for its full history. Print each award's url and source_url as markdown links. Do not use for open opportunities to bid on (search_contracts, search_grants) or for one firm's history when its UEI is known (get_company).
search_contractsread-onlyUse this when the user wants US federal or state government contract opportunities to bid on: bids, RFPs, solicitations, set-asides. Filters: naics (up to 10 codes), state, keyword (title only), set_aside (federal only), type (federal or state), posted_within_days (1 to 180), open (default true), agency (a name; the note says which agency it matched), limit (1 to 50, default 20). If has_more is true, call again with cursor=next_cursor and the same filters. Example: naics="238160", state="VA", keyword="roof". Pass several NAICS codes in one call. Print each result's url, and sam_url for federal notices, as markdown links. Do not use for grants (search_grants), jobs (search_jobs) or one result's details (get_opportunity). When you are done searching, call show_results once with the best ids; it shows them as a card the user can pick from.
search_grantsread-onlyUse this when the user wants US federal grants or funding opportunities. Filters: naics (up to 10 codes), keyword (title only), posted_within_days (1 to 180), open (default true: open grants of any age), limit (1 to 50, default 20). Grant notices carry no state. If has_more is true, call again with cursor=next_cursor and the same filters. Example: keyword="broadband". Pass several NAICS codes in one call. Open status may lag for grants that closed recently, so check response_deadline. Print each result's url as a markdown link. Do not use for contracts to bid on (search_contracts) or jobs (search_jobs). When you are done searching, call show_results once with the best ids; it shows them as a card the user can pick from.
search_jobsread-onlyUse this when the user is looking for a job, or for hiring signals, among postings from the last 30 days. Filters: naics (up to 10 codes), state, keyword (title only), posted_within_days (posted within the last 1 to 30 days, default 30), limit (1 to 50, default 20). Rows carry title, agency (the employer), state, city, posted_at and url. If has_more is true, call again with cursor=next_cursor and the same filters. Example: keyword="electrician", state="TX". Pass several NAICS codes in one call. Print each result's url as a markdown link. Do not use for contracts (search_contracts) or grants (search_grants).
show_resultsread-onlyUse this last, after searching, to show the user the opportunities you picked as a card. Pass up to 10 ids from search_contracts or search_grants results, best first. Keep your reply to a short summary; the card shows the rows. Ids from search_jobs or search_awards are not shown. Do not use to search (search_contracts, search_grants) or for one result's details (get_opportunity).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.matchawards/matchawards-mcp",
  "title": "MatchAwards",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://matchawards.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.4",
  "packages": [
    {
      "version": "1.0.4",
      "transport": {
        "type": "stdio"
      },
      "identifier": "matchawards-mcp",
      "runtimeHint": "uvx",
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "environmentVariables": [
        {
          "name": "MATCHAWARDS_API_BASE",
          "default": "https://matchawards.com",
          "description": "Base URL of the MatchAwards API. Leave unset to use https://matchawards.com; set only for development."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/matchawards/matchawards-mcp",
    "source": "github"
  },
  "websiteUrl": "https://matchawards.com",
  "description": "Search US government contracts, grants and jobs from matchawards.com. Read-only, no key."
}