FEC Campaign Finance Intelligence MCP
Pricing
$3.00 / 1,000 result item returneds
FEC Campaign Finance Intelligence MCP
Follow the money in US politics — FEC campaign finance data via MCP.
Pricing
$3.00 / 1,000 result item returneds
Rating
0.0
(0)
Developer
Andrew Avina
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
fec-intelligence-mcp
Follow the money in US politics — FEC campaign finance data via MCP.
What Is This?
The Federal Election Commission (FEC) collects and publishes every campaign contribution, disbursement, and fundraising report filed by candidates, PACs, and political parties in US federal elections. This data is public — but the FEC API is complex, rate-limited, and requires understanding of committee IDs, election cycles, form types, and filing schedules before you can extract useful information.
This actor wraps the FEC Open Data API into four clean, focused MCP tools: search candidates, search PACs and committees, retrieve candidate fundraising totals, and search individual contribution records. In MCP server mode, an AI assistant like Claude can answer "Who are the top donors to Senate Democrats from the finance sector in 2024?" by chaining search_committees, search_contributions, and summarizing — without you writing a single line of code.
Works with DEMO_KEY (no registration required) for moderate usage. Set your own free API key from api.data.gov in the FEC_API_KEY environment variable for higher rate limits.
Who Uses This
Political Journalists and Investigative Reporters You're covering the 2026 midterms and need to know which super PACs are spending on behalf of a specific Senate candidate. Search committees filtered by state, then pull contribution totals. Find the employers of maximum donors to understand industry alignment. Build a complete follow-the-money narrative without a political intelligence subscription.
Opposition Research Consultants You need to screen a candidate's donor base for controversial contributors, identify conflicts of interest in fundraising patterns, or compare a challenger's fundraising trajectory against incumbents at the same point in the campaign cycle. This actor gives you structured data fast.
Compliance Lawyers at Law Firms and Corporations PACs, bundlers, and corporate donors all have reporting obligations. Verify that your client's contributions are reflected accurately in FEC records. Audit whether disclosed donor lists match actual FEC filings. Cross-reference your employees against FEC contribution records to identify potential earmarking violations.
Political Scientists and Researchers You're studying money in politics — donation patterns, incumbency advantage in fundraising, PAC strategy across election cycles, or small-donor versus large-donor splits. This actor gives you machine-readable FEC data without scraping the FEC website or building your own API client.
Fintech and Financial Intelligence Platforms Enhanced due diligence for politically exposed persons (PEPs) often requires knowing whether a subject has made political contributions. Search contributions by name and employer to identify PEP-adjacent donation activity for KYC workflows.
Nonprofits and Good-Government Organizations Track PAC spending on specific races. Monitor dark money groups. Analyze whether reported spending matches independent expenditure disclosures. Publish transparency reports with structured data from the FEC's official filings.
Key Features
| Feature | Detail |
|---|---|
| Data source | FEC Open Data API v1 — official federal election finance data |
| Candidates | Search by name, state, office, party, election cycle |
| Committees | Search PACs, super PACs, party committees, principal committees |
| Fundraising totals | Total receipts, disbursements, cash on hand per candidate per cycle |
| Contributions | Schedule A — individual donor name, employer, amount, date, recipient |
| Election cycles | 1980–2026 (all available FEC data) |
| Rate limits | DEMO_KEY: 1,000/hr; own key: 120 req/min |
| 429 handling | Automatic retry with exponential backoff |
| MCP server mode | Live tool-use in Claude Desktop, Claude Code, any MCP client |
| Batch mode | One-shot runs with dataset output |
| No key required | DEMO_KEY works for research and moderate usage |
Quick Start
Batch Mode — Search Candidates
Input:
{"mode": "candidates","query": "Warren","office": "senate","party": "DEM","cycle": 2024,"limit": 5}
Output:
[{"candidate_id": "S2MA00170","name": "WARREN, ELIZABETH","party": "Democratic Party","party_code": "DEM","office": "Senate","state": "MA","district": null,"election_years": [2012, 2018, 2024],"principal_committees": ["ELIZABETH WARREN FOR SENATE"],"incumbent_challenge": "Incumbent","source": "fec_open_data"}]
Batch Mode — Candidate Fundraising Totals
Input:
{"mode": "totals","candidateId": "S2MA00170","cycle": 2024}
Output:
[{"candidate_id": "S2MA00170","cycle": 2024,"total_receipts": 24750000.00,"total_disbursements": 18200000.00,"cash_on_hand_end": 6550000.00,"individual_contributions": 21800000.00,"pac_contributions": 1200000.00,"party_contributions": 850000.00,"total_loans": 0,"source": "fec_open_data"}]
Batch Mode — Individual Contributions
Input:
{"mode": "contributions","contributorEmployer": "Goldman Sachs","minAmount": 2000,"cycle": 2024,"limit": 20}
Output:
[{"contributor_name": "BLANKFEIN, LLOYD","contributor_employer": "GOLDMAN SACHS","contributor_occupation": "CEO","contributor_city": "NEW YORK","contributor_state": "NY","contribution_amount": 3300.00,"contribution_date": "2024-03-15","recipient_committee_id": "C00575795","recipient_committee_name": "COMMITTEE TO ELECT...","cycle": 2024,"source": "fec_open_data"}]
MCP Server Mode
Claude Desktop (claude_desktop_config.json):
{"mcpServers": {"fec-finance": {"command": "npx","args": ["apify-actor-mcp","--actor-id", "your-username/fec-intelligence-mcp","--token", "apify_api_YOURTOKEN"],"env": {"FEC_API_KEY": "your_fec_api_key_here"}}}}
Then ask Claude: "Who are the top 10 Senate candidates by fundraising in the 2024 cycle?" or "What companies' employees donated the most to Republican House candidates in Florida?"
MCP Tools Exposed
search_candidates
Search FEC candidate records by name, state, office, party, and election cycle.
Arguments:
| Field | Type | Required | Description |
|---|---|---|---|
query | string | No | Candidate name keyword |
state | string | No | Two-letter state code |
office | string | No | president, senate, or house |
party | string | No | DEM, REP, IND, LIB, GRE |
cycle | integer | No | Election cycle year (default 2024) |
limit | integer | No | Max results (default 20) |
Returns: candidate_id, name, party, office, state, district, election_years, principal_committees
search_committees
Search PACs, super PACs, party committees, and principal committees.
Arguments:
| Field | Type | Required | Description |
|---|---|---|---|
query | string | No | Committee name keyword |
committee_type | string | No | Type code: S=Super PAC, N=PAC, Y=State party |
state | string | No | State filter |
cycle | integer | No | Election cycle year |
limit | integer | No | Max results |
Returns: committee_id, name, committee_type, designation, party, state, treasurer_name
get_candidate_totals
Get fundraising and spending totals for a specific candidate.
Arguments:
| Field | Type | Required | Description |
|---|---|---|---|
candidate_id | string | Yes | FEC candidate ID (from search_candidates) |
cycle | integer | No | Election cycle year |
Returns: total_receipts, total_disbursements, cash_on_hand_end, individual_contributions, pac_contributions, total_loans
search_contributions
Search individual contribution records (Schedule A filings).
Arguments:
| Field | Type | Required | Description |
|---|---|---|---|
contributor_name | string | No | Donor name (partial match) |
contributor_employer | string | No | Donor employer (partial match) |
min_amount | number | No | Minimum contribution amount USD |
max_amount | number | No | Maximum contribution amount USD |
cycle | integer | No | Transaction cycle year |
limit | integer | No | Max results |
Returns: contributor_name, employer, occupation, city, state, contribution_amount, contribution_date, recipient committee
Input Schema
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | "candidates" | Query type: candidates, committees, totals, contributions |
query | string | "" | Name or keyword search |
state | string | "" | State filter (two-letter code) |
office | string | "" | Office filter: president, senate, house |
party | string | "" | Party code: DEM, REP, IND, etc. |
cycle | integer | 2024 | Election cycle year |
candidateId | string | "" | FEC candidate ID (for totals mode) |
contributorName | string | "" | Donor name (for contributions mode) |
contributorEmployer | string | "" | Donor employer (for contributions mode) |
minAmount | integer | 0 | Minimum contribution amount USD |
maxAmount | integer | 0 | Maximum contribution amount USD |
limit | integer | 20 | Max results (max 200) |
serveMcp | boolean | false | Start MCP server instead of batch run |
Use Case Recipes
Recipe 1: Competitive Race Fundraising Comparison
Compare fundraising between candidates in a competitive Senate race:
Step 1: Search candidates by state and office:
{"mode": "candidates", "state": "OH", "office": "senate", "cycle": 2024}
Step 2: Get totals for each candidate_id returned:
{"mode": "totals", "candidateId": "S0OH00234", "cycle": 2024}
Outcome: Side-by-side fundraising comparison, cash-on-hand advantage, spending burn rate.
Recipe 2: Industry Donor Analysis
Find contributions from finance industry employees to a specific party:
{"mode": "contributions","contributorEmployer": "BlackRock","minAmount": 2000,"cycle": 2024,"limit": 100}
Repeat for JPMorgan, Citadel, KKR — combine datasets to map finance industry political alignment.
Recipe 3: Super PAC Landscape for a Race
Find all super PACs active in a specific state:
{"mode": "committees","committee_type": "O","state": "PA","cycle": 2024,"limit": 50}
O = Independent expenditure only committee (classic Super PAC structure).
Recipe 4: Donor PEP Screening
For a donor named in an investment pitch: screen their political activity for reputational risk:
{"mode": "contributions","contributorName": "Smith John","cycle": 2024,"limit": 50}
Cross-reference contribution amounts against legally allowed limits to flag potential violations.
Recipe 5: Historical Fundraising Trend
Compare the same candidate's fundraising across multiple cycles:
{"mode": "totals", "candidateId": "S2MA00170", "cycle": 2024}{"mode": "totals", "candidateId": "S2MA00170", "cycle": 2018}{"mode": "totals", "candidateId": "S2MA00170", "cycle": 2012}
Shows growth trajectory, small-donor versus PAC ratio changes, and spending efficiency over time.
Connecting to Claude Desktop / Claude Code
macOS Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{"mcpServers": {"fec-finance": {"command": "npx","args": ["apify-actor-mcp","--actor-id", "your-username/fec-intelligence-mcp","--token", "apify_api_YOURTOKEN"],"env": {"FEC_API_KEY": "your_key_from_api.data.gov"}}}}
Claude Code (project .claude/settings.json):
{"mcpServers": {"fec-finance": {"command": "npx","args": ["apify-actor-mcp", "--actor-id", "your-username/fec-intelligence-mcp", "--token", "apify_api_YOURTOKEN"]}}}
Direct HTTP (for custom MCP clients):
GET http://<run-url>:4321/mcp/tools— list available toolsPOST http://<run-url>:4321/mcp/call—{"name": "search_candidates", "arguments": {"query": "Biden", "cycle": 2024}}
API Key Setup
The actor works without any configuration using the DEMO_KEY rate limit (1,000 requests/hour per IP). For production use:
- Sign up at api.data.gov/signup/ — free, instant
- Set the
FEC_API_KEYenvironment variable in the actor's configuration - Your key allows 120 requests/minute — enough for heavy research workloads
Data Source and Notes
- Source: FEC Open Data API v1 —
https://api.open.fec.gov/v1/ - Coverage: All federal candidate filings from 1980 to present
- Update frequency: FEC data updates in near-real-time as reports are filed
- Contribution limits (2024): Individual to candidate = $3,300/election; to national party = $41,300/year; Super PACs = unlimited
- DEMO_KEY limits: 1,000 req/hr per IP, 10,000 req/day — suitable for research and testing
- Rate limit handling: The actor automatically retries on HTTP 429 with exponential backoff
Pricing
| Volume | Price |
|---|---|
| First 1,000 results | $0.40 |
| 1,001 – 50,000 results | $0.30/1k |
| MCP server (per session-hour) | Metered by result count |
Support
- Issues: File a GitHub issue on the actor repository
- Apify Community: community.apify.com
- FEC API docs: api.open.fec.gov/developers/
- FEC data browser: fec.gov/data/
- API key signup: api.data.gov/signup/