@pipeworx/open-fec
Connect: https://gateway.pipeworx.io/open-fec/mcp · Install: one-click buttons
Tools: 3
The Federal Election Commission’s openFEC API. All federal campaign finance data: candidates (presidential, congressional), committees (campaign, PAC, super PAC, party), individual contributions, expenditures, independent expenditures, debt. Free, requires a free API key.
Why this matters for AI agents
For political research, lobbying-spend analysis, or “where does this PAC’s money go?” questions, OpenFEC is the canonical source. Government-mandated reporting; what’s publicly disclosed flows here. Pair with the Lobbying Activity recipe for full political-footprint mapping.
Common flows:
- Candidate / committee lookup. “Find committees associated with a candidate” → search by name.
- Contribution patterns. “Who contributed to this PAC?” → committee contribution detail.
- Where the money went. “What did this committee spend on?” → committee disbursement detail.
- Independent expenditures. “Who’s spending against this candidate?” → IE search.
Auth
Free key from https://api.open.fec.gov/developers/. Pass via _apiKey. Rate-limited; the key gives generous limits.
Committee types
| Type | What it is |
|---|---|
| Authorized candidate committee | A campaign for federal office |
| PAC (Political Action Committee) | Limited contributions ($5,000/cycle) |
| Super PAC (independent-expenditure-only) | Unlimited fundraising, no candidate coordination |
| Hybrid PAC (Carey committee) | Both regular PAC and super PAC functions |
| Party committee | National / state / local party committees |
| 527 / 501(c)(4) | Don’t appear in FEC data; tax-only filings |
For corporate / executive political activity, you typically care about the corporate PAC (regular) and any associated super PACs.
Reporting cycles
Federal campaign finance is reported by cycle: Jan 1 of year T to Dec 31 of T+1 for two-year cycles (House: every 2yr, Senate: every 6yr). Filings are quarterly during election years, semi-annually in off-years.
| Common cycle filters | What it captures |
|---|---|
cycle=2024 | All activity in 2023-2024 |
cycle=2026 | All activity in 2025-2026 |
Common pitfalls
- Itemization thresholds. Individual contributions <$200 don’t have to be itemized — only the aggregate appears. So “who contributed to X?” misses small donors.
- Bundling. A single donor can contribute to many committees, often via “bundlers.” OpenFEC has individual contributions; bundling relationships are inferred, not reported.
- Soft money / 527s / dark money. OpenFEC doesn’t have 501(c)(4) social welfare orgs that engage in political activity. For those, IRS Form 990 (separate pack:
propublica-nonprofit) is the closest analog. - Super PAC coordination is restricted, not eliminated. Super PACs report all activity but can’t legally coordinate with candidates. In practice, “single-candidate super PAC” is a common pattern that’s technically arms-length.
- Candidate vs. committee. A candidate has a candidate ID (Cxxxxxxxx); their authorized committee has a separate committee ID. Same-name searches need disambiguation.
- Cycle alignment for lookups. Searching for activity in 2023 alone misses things — most reports cover the full 2023-2024 cycle. Filter by cycle, not by year.
Tools
- search_candidates — Search federal election candidates by name, state, or party. Returns candidate ID, name, party, office, state, district, and election years. Example: search_candidates(“Biden”, state=“DE”, party=“DEM”
- candidate_financials — Get campaign finance summary for a candidate by their FEC candidate ID (e.g., “P80001571”). Returns total receipts, disbursements, cash on hand, individual contributions, PAC contributions, and loans.
- search_committees — Search political committees (PACs, Super PACs, party committees) by name. Returns committee ID, name, type, designation, party, treasurer, and associated candidates. Example: search_committees(“ActBlu
Tools
-
candidate_financials— Get campaign finance summary for a candidate by their FEC candidate ID (e.g., P80001571 ). Returns total receipts, disbursements, cash on hand, individual contributions, PAC contributions, and loans. -
search_candidates— Search federal election candidates by name, state, or party. Returns candidate ID, name, party, office, state, district, and election years. Example: search_candidates( Biden , state= DE , party= DEM -
search_committees— Search political committees (PACs, Super PACs, party committees) by name. Returns committee ID, name, type, designation, party, treasurer, and associated candidates. Example: search_committees( ActBlu