Agents · MCP server

Federal procurement data, in the tools your agent already uses.

20+ specialized tools tuned for LLM tool selection. Streamable HTTP / JSON-RPC 2.0 at mcp.boringdataplatform.com. Same API key and monthly quota as the REST API — no SDK to install, nothing extra to provision.

MCP server operationalTransport Streamable HTTP · JSON-RPC 2.0Protocol version MCP 2025-06
Claude Desktop · boring-data-platform
You

What Army IT services opportunities have been posted or updated this week?

list_changes { updatedSince: "2026-04-11T00:00:00Z", limit: 25 }
Claude

Three new and seven updated. Largest is W912-ABC-123 · Enterprise IT Support Services (Dept. of the Army, response due May 2). It was amended Monday — response window extended two weeks. Want me to pull the SOW and summarize the scope?

Setup

Connect in 30 seconds.

Pick your client. Paste the config. Restart. The tools appear — no SDK, no OAuth dance, no separate account.

  1. Grab your API key

    From the console. Use the same key for REST and MCP.
  2. Open your config file

    Create it if it doesn't exist.
    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Paste the snippet

    Merge with your existing mcpServers block if you have one.
  4. Restart Claude Desktop

    The tools appear under Available tools in any conversation.
claude_desktop_config.json
{
  "mcpServers": {
    "boring-data-platform": {
      "url": "https://mcp.boringdataplatform.com/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Tool catalog

Representative tools.

The full MCP surface has 20+ specialized tools. Names are short and specific so LLMs pick the right one on the first try. Each maps to a REST endpoint — same data, same quota.

ToolWhat it doesExample prompt that selects it
search_opportunitiesFull-text + filter search across canonical records.Find Army IT solicitations updated this week.
get_opportunityFetch one canonical opportunity thread by record ID.Open the full record for this recordId.
get_opportunity_documentsFetch document metadata and extracted text for an opportunity.Pull the documents for this RFQ so I can summarize the SOW.
get_opportunity_historyFetch amendment and state-change history for an opportunity.Show what changed since the original posting.
list_noticesSource-verbatim notices, filtered by date range.Show raw SAM.gov postings between Apr 1 and Apr 10.
get_noticeFetch a single raw notice by ID.Open the original notice for this record.
list_changesOrdered stream of creates / updates / deletes since a timestamp.What changed on this watchlist since yesterday?
list_opportunity_analysisFilter opportunities by structured dimensions and document flags.Show DIBBS RFQs with PDFs for NAICS 336413.
search_awardsSearch federal contract awards by vendor, agency, NAICS, PSC, and FY.Find FY2025 awards for this UEI.
list_award_rollupsAggregate contract awards by agency, vendor, NAICS, or PSC.Which agencies bought the most 541512 work this fiscal year?
get_entity_profileConnect one UEI to registration, awards, exclusions, and integrity records.Give me the risk and award profile for this vendor.
search_exclusionsSearch SAM.gov exclusion records by entity identifiers or text.Check whether this UEI is excluded.
search_integrity_recordsSearch public responsibility and integrity records.Any public integrity records for this CAGE code?
How it plays out

One question. Three tool calls. No stitching.

A typical analyst question, walked through end-to-end. Same agent, same key — the tools chain themselves.

Claude · boring-data-platform · 20+ tools
You

I'm tracking DLA aviation RFQs over $100K. Anything new this week? For the biggest one, pull the tech package and tell me what's changed from the original posting.

Claude
list_opportunity_analysis source: "dibbs", query: "DLA Aviation", hasPdf: true, limit: 25
→ 12 records, filtered to 4 with estimated value ≥ $100K
get_opportunity recordId: "00000000-0000-4000-8000-000000000002"
→ 7 documents, 3 history events since 2026-03-21
get_opportunity_documents recordId: "00000000-0000-4000-8000-000000000002"
→ 42 pages · OCR confidence 0.97

Four new DLA Aviation RFQs over $100K this week. Biggest is SPE4A626U2442 · Screw, Machine · 2,400 units (est. $184K). Tech package is the T56 engine fastener spec, revision G. Two amendments since posting: quantity went from 1,800 → 2,400, and the response due date moved out five days. The drawing version is unchanged.

You

Watch that one — ping me if anything changes.

Claude

Added to watchlist. I'll check list_changes for SPE4A626U2442 daily and surface any updates.

What's happening under the hood

Claude picked tools on its own — no hand-crafted chain, no function-calling glue code.

  • Filter first, expand second. The model searches the cheap summary view, then fetches full detail only for the one record the user cares about.
  • Documents are part of the record. The document tool maps to /v1/opportunities/:recordId/documents— the agent doesn't have to discover attachment URLs separately.
  • History is first-class. The “what changed from the original” question is a single field on the response, not a diff Claude has to synthesize.
  • Shared quota. Three tool calls = three REST requests against the same monthly budget.
Technical details

Boring on purpose.

Transport

Streamable HTTP / JSON-RPC 2.0

Standard MCP streamable HTTP. Works over HTTPS, no websockets required. Responses stream progressively for long tools; short tools return in a single frame.

Auth

Bearer token on every request

Same strata_live_… keys as the REST API. Rotate instantly from the console; old keys keep working for 60s to avoid cutover pain.

Quota

One monthly budget

A tool call counts as one API request against your plan. Switching between REST and MCP never double-bills. Overage behaves the same on both.

Tool design

Tuned for selection

Tool names are short and verb-first. Descriptions state the tool's job in one sentence. Parameter names mirror the REST query params so switching between surfaces is trivial.

FAQ

Quick answers.

Do I need a separate account or billing plan for MCP?
No. Any BDP API key works on both surfaces, and quota is shared. If REST is provisioned, MCP is provisioned.
Which MCP clients are supported?
Anything that speaks streamable HTTP / JSON-RPC 2.0 — Claude Desktop, Claude.ai Connectors, Cursor, and any client built against the MCP spec. We test the top three against every release.
Is the data identical to the REST API?
Yes. MCP tools are thin wrappers around the same REST endpoints. Same schema, same source coverage, same history coverage.
How do you handle rate limits for agents that call tools in parallel?
Per-key sliding-window limits apply across both transports. Headers on every response tell the client exactly how much budget is left — well-behaved MCP clients back off automatically.
Can I restrict which tools are exposed?
On Enterprise, yes — per-key tool allowlists. On Sandbox, Starter, and Developer the standard toolset is on by default.

Connect an agent. Same key, same quota.

Get an API key, paste one snippet into Claude Desktop or Cursor, restart. The tools show up — the data is real.