How to check federal exclusions with AI
Checking a subrecipient the manual way means opening SAM.gov, running the search, saving a screenshot, filing it where the auditor can find it, and repeating for every vendor you monitor. The check itself is free and always sufficient. The repetition is what costs you the afternoon. With MCP, you ask your AI assistant instead, and every answer comes back with a sealed verification record.
What is MCP?
Model Context Protocol is an open standard that lets AI assistants call external tools. federal.contractors serves a hosted MCP endpoint at https://federal.contractors/mcp, so Claude, Cursor, or any MCP-compatible assistant can run exclusion checks through the same verification API your systems would call. There is nothing to install for HTTP-capable clients; you point the client at the URL with your API key.
What backs each answer
An assistant asserting that a vendor is clear is just model output. Here, every check creates a format 2 record with the input, result, separate check and source times, source artifact and completeness facts, method versions, identity basis, candidate state, and limitations. Its SHA-256 seal can be recomputed from the RFC 8785 canonical payload. A matching checksum alone shows byte consistency. New production records add an RFC 9943 SCITT issuer signature over those exact bytes and a DigiCert RFC 3161 timestamp over the RFC 9921 signature imprint. The timestamp proves that issuer signature existed no later than the Timestamp Authority's time. Neither mechanism proves source truth, matching correctness, identity, check execution time, or a legal outcome. No independent Transparency Service receipt is attached. The assistant returns a permanent record URL you can file or share. The record is evidence of diligence, not a verdict.
Read What is SCITT? for the Signed Statement, receipt, and verification layers.
The tools
verify_entityRuns an exclusion check on one entity by UEI, CAGE code, or legal name and seals a verification record.
"Check RZK2AJC7QGA3 against the exclusion list and give me the record link."
verify_batchChecks up to 100 entities in one call, one sealed record each.
"Here are our 40 subrecipient UEIs. Check all of them and list any with exclusion matches."
get_recordFetches an existing sealed record by id. Included without charge and does not reduce the record-credit balance.
"Pull up record vr_abc123 and summarize what was checked."
Setup
Create an API key on the API keys page. Every account receives a one-time allowance of 50 API-created verification records without charge. Additional credits are purchased upfront in $50 packs of 100 records. No monitoring subscription is required.
Any MCP client that speaks streamable HTTP connects the same way: point it at https://federal.contractors/mcp and send the key as an Authorization: Bearer header. In Cursor, Windsurf, VS Code, and most other clients that is one entry in the MCP config file (the file name and top-level key vary by client; the endpoint and header never do):
Claude Code registers the same endpoint with one command:
Clients without native HTTP support, Claude Desktop among them, connect through the mcp-remote stdio bridge (requires Node.js 18+). Add to claude_desktop_config.json and restart the app:
Or hand the setup to a coding agent. Paste this prompt into Claude Code, Cursor, or any agent with web access, and it follows the plain-markdown instructions at /agent-setup.md:
What to ask
"Check this vendor before I sign the subaward." "Check this list of UEIs and flag anything with matches." "Re-check the three vendors we onboarded last quarter and give me fresh record links." Each answer cites the record it sealed, with the extract date it was checked against.
Full request and response formats, record balance fields, and key management are on the API page.