Skip to main content
Glama
README.md
# fpds-mcp

x402-paid MCP server for the U.S. **Federal Procurement Data System (FPDS-NG)** — every federal contract action since 2001, no signup, no API key.

Live: <https://fpds-mcp.mtree.workers.dev>

## Endpoints

| Endpoint | Description | Price |
|---|---|---|
| `POST /v1/contracts/search` | FPDS contract actions by keyword / agency code / NAICS / signed-date window | **$0.04** |
| `POST /v1/contracts/by_vendor` | Recent FPDS contract actions for a vendor + aggregate (total obligated $, distinct agencies, distinct NAICS) | **$0.05** |

All paid endpoints settle USDC on **Base** via x402. First call returns HTTP `402` with the EXACT-scheme envelope; sign `X-PAYMENT` and retry.

## Discovery surfaces (unpaid)

- `/.well-known/agent-card.json` — Google A2A AgentCard
- `/.well-known/mcp.json` — MCP server manifest
- `/.well-known/ai-plugin.json` — OpenAI plugin manifest
- `/openapi.yaml` — OpenAPI 3.1 spec
- `/agent-discovery` — human-friendly landing
- `/mcp` — MCP Streamable HTTP transport (JSON-RPC 2.0)

## Quick start

```sh
# 1) Probe the 402 envelope:
curl -i -X POST https://fpds-mcp.mtree.workers.dev/v1/contracts/by_vendor \
  -H 'content-type: application/json' \
  -d '{"vendor":"Lockheed Martin","limit":10}'

# 2) Settle X-PAYMENT (USDC on Base, payTo as advertised) and retry.
```

## Sibling service

For live SAM.gov opportunities + USASpending.gov awards see [`procure-mcp`](https://procure-mcp.mtree.workers.dev).

## Run locally

```sh
npm install
npx wrangler dev
```

Set `PAY_TO_ADDRESS` (and optional CDP/facilitator credentials) via `wrangler secret put` before `wrangler deploy`.

## License

MIT — Money Tree.