MatchAwards MCP server
MatchAwards gives AI agents direct access to continuously updated government and business contracts, grants, jobs, awards and collaboration opportunities.
This is the Model Context Protocol server for MatchAwards. It lets Claude, Cursor, VS Code and other MCP clients search US government contract opportunities, grants and jobs. It only reads data, and it needs no account and no API key.
Tools
| Tool | What it returns | Example prompt |
|---|---|---|
search_contracts |
Federal and state contract opportunities. Filters: NAICS, state, keyword, set-aside, federal or state only, posted within N days, open only, paging. | "Find open roofing contracts in Virginia posted in the last week." |
search_grants |
Federal grant and funding opportunities. Filters: NAICS, keyword, posted within N days, open only, paging (grant notices carry no state). | "Are there open broadband grants?" |
search_jobs |
Job postings from the last 30 days. Filters: NAICS, state, keyword, posted within N days, paging. | "Show electrician jobs in Texas from the last 7 days." |
search_by_naics |
The newest opportunities for up to 10 NAICS codes, of one type: contract, federal, state, grant or job. | "What is new for NAICS 541511 and 541512 at the federal level?" |
get_opportunity |
The full record of one opportunity: description, deadline, agency and contacts (name and title). | "Tell me more about the second result." |
find_contacts |
Only the published points of contact for one opportunity. | "Who do I contact about that solicitation?" |
Every result carries a url on matchawards.com, and the server asks the model to show it to you as a link.
Install
The server runs with uvx, which comes with uv.
Claude Desktop
Add this to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart Claude Desktop:
{
"mcpServers": {
"matchawards": {
"command": "uvx",
"args": ["matchawards-mcp"]
}
}
}
Claude Code
claude mcp add matchawards -- uvx matchawards-mcp
Cursor
Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"matchawards": {
"command": "uvx",
"args": ["matchawards-mcp"]
}
}
}
VS Code
Add this to .vscode/mcp.json in your workspace:
{
"servers": {
"matchawards": {
"type": "stdio",
"command": "uvx",
"args": ["matchawards-mcp"]
}
}
}
Other clients
Any MCP client that can start a stdio server works. The command is uvx matchawards-mcp.
Configuration
| Variable | Default | Purpose |
|---|---|---|
MATCHAWARDS_API_BASE |
https://matchawards.com |
API base URL. Change it only for development. |
Data
The data is US federal and state contract opportunities, grants and jobs from matchawards.com. Only public posts are returned, and each result links back to its page on matchawards.com.
- Contract and grant searches return open items by default: a response deadline of today or later, US Eastern. An item with no deadline counts as closed.
- Job search covers the last 30 days.
- Results come newest first. When
has_moreis true, the model can ask for the next page withcursor. - If the first request of a search fails, the tool returns an error. If a later page fails, the tool returns the rows it already has, with a
warningthat says why it stopped. - The API is rate-limited per IP: 60 requests per minute, plus a burst limit of 20 requests per 5 seconds. One search call can use up to three requests when the filters are narrow and results are sparse. When the limit is reached, the tool returns an error that tells the model how many seconds to wait.
Development
python -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/pytest
The tests make no network calls.
License
MIT. See LICENSE.
Metadata
Release files for matchawards-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| matchawards_mcp-0.1.0.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| matchawards_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / matchawards_mcp-0.1.0.tar.gz
| Download URL | matchawards_mcp-0.1.0.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfa2f13902818a95013ded32a6916f44f378762578f4b4194e941a5546fdc95c
|
|
BLAKE2b-256 checksum How to use checksums |
4c4598dd7065b4258c4f98b5aef12cb8c8fe35c38c4e92559429b86a6084cfa3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / matchawards_mcp-0.1.0-py3-none-any.whl
| Download URL | matchawards_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac474994d10730720ccb128198013c3a71706c42a17335f48f5936ed7b35d2cc
|
|
BLAKE2b-256 checksum How to use checksums |
c6c9b2e222dce8c47166a22246596139613a35c441a7e7e92995c44caae9e225
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log