citature MCP Server: cited federal money data as agent tools
Pricing
from $20.00 / 1,000 tool calls
citature MCP Server: cited federal money data as agent tools
A Model Context Protocol server exposing citature's cited federal campaign-finance and contract-award answers as tools. Runs in Standby mode over Streamable HTTP; every tool returns a full receipt with the exact source, retrieval time, coverage caveats, and guardrails.
citature MCP Server — cited federal money data as agent tools
A Model Context Protocol server that gives an AI agent direct, tool-shaped access to citature's cited federal data: campaign contributions, contract awards, follow-the-money flows, and committee/candidate lookup. Every tool returns a receipt — the exact public source URL, when it was retrieved, coverage caveats, match provenance, and guardrails — so an agent can verify every number against the primary federal record.
Runs in Apify Standby mode: the server stays warm and answers over
Streamable HTTP at /mcp, so tool calls are fast and the underlying data
connection is established once, not per request.
Keywords: MCP server, Model Context Protocol, AI agent tools, campaign finance API, federal spending API, FEC data, USAspending, government contracts, follow the money, cited data, agent-ready, structured tool output.
Tools
Each tool takes a small typed input and returns both human-readable text (the
answer) and structuredContent (the full receipt).
Fourteen tools, on two pricing tiers — the eleven standard tools and the three govcon tools (marked below), which meter higher for parity with the standalone govcon actors (see Pricing).
| Tool | Input | Returns | Tier |
|---|---|---|---|
contributions_by_state | cycle, limit? | contribution totals by contributor state | standard |
contributions_by_committee_type | cycle, limit? | contribution totals by committee type | standard |
awards_by_agency | fiscal_year, limit? | award totals by awarding agency | standard |
awards_by_state | fiscal_year, limit? | award totals by place-of-performance state | standard |
awards_by_recipient | fiscal_year, limit? | award totals by recipient (UEI) | standard |
follow_the_money | committee_id, cycle?, limit? | contribution inflows by contributor state | standard |
committee_lookup | committee_id | one committee (or null) | standard |
candidate_lookup | candidate_id | one candidate (or null) | standard |
committee_search | name_prefix, limit? | committees by name prefix | standard |
candidate_search | name_prefix, limit? | candidates by name prefix | standard |
recompetes_expiring | expiring_from, expiring_to, naics?, agency?, limit? | federal contracts expiring in a YYYY-MM window, soonest first, each with the incumbent (by UEI) and its obligation | govcon |
incumbent_history | uei? or recipient? (one required), agency?, naics?, limit? | a contractor's contract lineage per agency and NAICS: count, total obligated, fiscal-year span, latest period-of-performance end | govcon |
agency_buying | agency?, naics?, fiscal_year?, limit? | federal obligations, contract counts, and distinct-contractor counts by awarding agency, NAICS, and fiscal year | govcon |
opportunity_search | naics?, agency?, posted_from?, posted_to?, active?, limit? | open and forecasted procurement opportunities across SAM.gov and Grants.gov, newest first (no standalone actor) | standard |
Every tool description embeds the guardrail caveats below, so an agent reads them before it calls.
Connecting
Point any MCP client at the Standby endpoint (Streamable HTTP transport):
https://<your-actor-standby-url>/mcp
A tool call returns a receipt as structuredContent. For example, calling
awards_by_agency with { "fiscal_year": 2024, "limit": 2 }:
{"answer": [{"fiscal_year": 2024,"agency_entity_id": "agcy_fbc1…","agency_name": "Department of Defense","total_cents": 5647517724781,"award_count": 113}],"citations": [{"source": "usaspending","source_label": "USASpending.gov","query_url": "https://api.usaspending.gov/api/v2/search/spending_by_award/?page=1","retrieved_at": "2026-01-02T00:00:00.000Z","as_of": null,"cache": "cached","record_id": null}],"coverage": ["Coverage reflects records currently in citature's dataset, not the full upstream history."],"guardrails": ["Research over public-domain federal records — not legal, financial, or eligibility advice.","citature reports what the record says. It never renders a compliance verdict, a screening pass/fail, or a recommendation.","Entity-level records only (committees, candidates, recipients, agencies, contracts). No individual-person data."],"matches": [{"match_method": "exact","match_confidence": 1,"left_key": "usaspending.awarding_agency","right_key": "citature.entity_agency.agency_name","note": "agency resolved to a citature entity on the toptier awarding-agency name"}],"schema_version": "0.1.0"}
Money is always integer cents. retrieved_at is when citature fetched the
record; a source's own as-of date, when it publishes one, is a separate field.
Guardrails
- Research over public-domain federal records — not legal, financial, or eligibility advice.
- citature reports what the record says. It never renders a compliance verdict, a screening pass/fail, or a recommendation.
- Entity-level records only. No individual-person data is ever returned.
Pricing
Pay per tool call, on two tiers. The eleven standard tools meter on the
tool-call event; the three govcon tools — recompetes_expiring,
incumbent_history, and agency_buying — meter on the higher tool-call-govcon
event, so this MCP surface never undercuts the standalone govcon actors. A call
bills at the rate of the tool it invokes. The per-event prices are set in the Apify
Console, which is the authoritative record of what a call is billed.
You are charged only when a tool returns an answer; a rejected (invalid input) or failed call is never billed.


