Skip to main content
Glama
cliwant

mcp-sam-gov

by cliwant

fpds_search_awards

Read-only

Search FPDS-NG federal contract award actions using structured filters like NAICS, vendor name, PIID, and date ranges. Returns detailed award data for each contract modification.

Instructions

Search FPDS-NG federal contract AWARD ACTIONS (keyless ATOM) — the AUTHORITATIVE system-of-record for contract actions (each modification is its own transaction), the source USAspending.gov derives from (and lags 1-2 days). Structured filters ONLY, AND-combined (NO raw query — a typo'd FPDS field name is a SILENT ZERO, so the tool builds the fielded q): naics (PRINCIPAL_NAICS_CODE), vendorName, piid, departmentId, contractingAgencyName, signedDate range (from/to ISO), lastModified range, keyword. At least one filter is REQUIRED. Returns award/IDV rows { piid, modNumber, parentIdvPiid, actionType, signedDate, vendorName, vendorUei, ultimateParentUei, obligatedAmount, totalObligatedAmount, naics, psc, placeOfPerformanceState, extentCompeted, setAside, businessSize, socioeconomic, … } (content root is award OR IDV — both parse). HONESTY: page size is FIXED at 10; for >10 results totalAvailable is a LOWER BOUND (totalIsLowerBound:true; true count ∈ [total, total+9]) and you MUST paginate by pagination.hasMore (page-fullness), NEVER by totalAvailable (keyless deep-paging is capped ~200K far below the advertised total). Genuine-empty (offset 0) ⇒ complete:true/total:0 + a silent-zero disclosure; an empty page at offset>0 ⇒ totalAvailable:null/complete:false (deep-paging ceiling, ambiguous); an HTML/non-feed body or an all-null-piid page ⇒ schema_drift (never a fake empty); an outage/5xx/timeout THROWS. Amounts are number|null (a 0.00 obligation and negative de-obligations are REAL, absent ⇒ null). Prefer usas_* tools for spending rollups / sub-award graphs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
piidNoContract/order PIID (→ PIID) — returns that action's full base+mod chain.
naicsNoPrincipal NAICS code (→ PRINCIPAL_NAICS_CODE), e.g. '541511'.
offsetNo0-indexed page start (page size fixed at 10). Keyless deep-paging past ~200K is unreliable.
keywordNoFree-text keyword (bare full-text term; FPDS FIELD: operators are stripped for safety).
vendorNameNoVendor/contractor name phrase (→ VENDOR_NAME), e.g. 'LOCKHEED MARTIN'.
departmentIdNo4-digit contracting DEPARTMENT_ID, e.g. '9700' (DoD), '4700' (GSA).
signedDateToNoSigned-date range END (ISO YYYY-MM-DD); pair with signedDateFrom.
lastModifiedToNoLast-modified range END (ISO YYYY-MM-DD); pair with lastModifiedFrom.
signedDateFromNoSigned-date range START (ISO YYYY-MM-DD); pair with signedDateTo (→ SIGNED_DATE:[from,to]).
lastModifiedFromNoLast-modified range START (ISO YYYY-MM-DD); pair with lastModifiedTo (→ LAST_MOD_DATE:[from,to]).
contractingAgencyNameNoContracting agency name phrase (→ CONTRACTING_AGENCY_NAME), e.g. 'DEPT OF DEFENSE'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already providing readOnlyHint and openWorldHint, the description adds extensive behavioral details: fixed page size of 10, totalAvailable is a lower bound, deep-paging cap at ~200K, handling of genuine-empty vs ambiguous-empty pages, schema_drift detection, outage/error behavior, and amount representation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence adds necessary information. It is front-loaded with the core purpose and authority, then filters, then output, then honesty section. No wasted words, though length could be slightly optimized for skimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully describes the return fields and content root (award or IDV). It covers edge cases, pagination guidance, and error handling. Given the tool's complexity and lack of output schema, the description is thorough and complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. However, the tool description adds significant context beyond the schema, such as how filters are combined (AND), the unreliability of offset beyond ~200K, and the meaning of PIID returning full base+mod chain. This added value justifies a score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies it searches FPDS-NG federal contract award actions, the authoritative system-of-record, and distinguishes itself from sibling tools like usas_* by stating it is the source for USAspending. It uses specific verbs and resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use structured filters only (NO raw query), requires at least one filter, explains AND-combined behavior, and advises preferring usas_* tools for rollups or sub-award graphs. Also includes pagination and deep-paging limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cliwant/mcp-sam-gov'

If you have feedback or need assistance with the MCP directory API, please join our Discord server