
Openfec Mcp Server
Wraps the FEC's OpenFEC API with nine tools covering candidates, committees, contributions, disbursements, independent expenditures, filings, elections, legal documents, and the FEC calendar. You can search itemized Schedule A contributions with filters for employer, occupation, state, and amount range, or pull aggregated breakdowns by size bracket. The disbursements tool works the same way for Schedule B spending. Independent expenditures show support or oppose positions per candidate. Five resources expose candidate profiles, committee details, and election races at the presidential, senate, and house district level. Two prompts frame campaign finance analysis and money trail investigations. Requires an FEC API key. Available via stdio, streamable HTTP, or a hosted instance at openfec.caseyjhand.com/mcp.
- GitHub stars
- 2
- tools
- 12
- transport
- STDIO, HTTP
- env vars
- 7
- last updated
- Nov 12, 2026
Install
From registry metadata$ npx add-mcp https://openfec.caseyjhand.com/mcp --name openfecRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http openfec https://openfec.caseyjhand.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 12 toolsVerified live against the running server on Nov 6, 2026.
openfec_search_candidatesFind federal candidates by name, state, office, party, or cycle. Retrieve a specific candidate by FEC ID with financial totals. Candidate IDs start with H (House), S (Senate), or P (President) followed by exactly eight letters or digits.14 params
Find federal candidates by name, state, office, party, or cycle. Retrieve a specific candidate by FEC ID with financial totals. Candidate IDs start with H (House), S (Senate), or P (President) followed by exactly eight letters or digits.
candidate_idstringcandidate_statusstringC · F · N · Pcyclenumberdistrictstringelection_yearnumberhas_raised_fundsbooleaninclude_totalsbooleanincumbent_challengestringI · C · OofficestringH · S · Ppageintegerpartystringper_pageintegerquerystringstatestringopenfec_search_committeesFind political committees (campaign, PAC, Super PAC, party) by name, type, candidate affiliation, or state. Retrieve a specific committee by FEC ID. Committee IDs start with C followed by exactly eight digits (e.g., C00358796).11 params
Find political committees (campaign, PAC, Super PAC, party) by name, type, candidate affiliation, or state. Retrieve a specific committee by FEC ID. Committee IDs start with C followed by exactly eight digits (e.g., C00358796).
candidate_idstringcommittee_idstringcommittee_typestringcyclenumberdesignationstringpageintegerpartystringper_pageintegerquerystringstatestringtreasurer_namestringopenfec_get_committee_totalsGet pre-aggregated committee financial totals — receipts, disbursements, cash on hand, debts, and the itemized/unitemized breakdown — without paginating Schedule A. Use mode "single" (the default) with a committee_id for one committee's totals, one row per two-year cycle it ha...15 params
Get pre-aggregated committee financial totals — receipts, disbursements, cash on hand, debts, and the itemized/unitemized breakdown — without paginating Schedule A. Use mode "single" (the default) with a committee_id for one committee's totals, one row per two-year cycle it ha...
committee_designationstringcommittee_idstringcommittee_statestringcommittee_typestringcyclenumberentity_typestringpresidential · pac · party · pac-party · house-senate · ie-onlymax_disbursementsnumbermax_receiptsnumbermin_disbursementsnumbermin_receiptsnumbermodestringsingle · by_entity_typedefault: singleorganization_typestringpageintegerper_pageintegersortstringcycle · -cycle · receipts · -receipts · disbursements · -disbursementsopenfec_search_contributionsSearch itemized individual contributions (Schedule A) or get aggregate breakdowns by size, state, employer, or occupation. Use to answer "who is funding this committee?" Itemized mode requires a committee_id. Aggregate by_size/by_state can use candidate_id instead.19 params
Search itemized individual contributions (Schedule A) or get aggregate breakdowns by size, state, employer, or occupation. Use to answer "who is funding this committee?" Itemized mode requires a committee_id. Aggregate by_size/by_state can use candidate_id instead.
candidate_idstringcommittee_idstringcontributor_citystringcontributor_employerstringcontributor_namestringcontributor_occupationstringcontributor_statestringcontributor_zipstringcursorstringcyclenumberis_individualbooleanmax_amountnumbermax_datestringmin_amountnumbermin_datestringmodestringitemized · by_size · by_state · by_employer · by_occupationdefault: itemizedpageintegerper_pageintegersortstringcontribution_receipt_date · -contribution_receipt_date · contribution_receipt_amount · -contribution_receipt_amountopenfec_search_disbursementsSearch itemized committee spending (Schedule B) or get aggregate breakdowns by purpose or recipient. All modes require a committee_id. Use to answer "what is this committee spending money on?" or "who is receiving payments from this committee?"17 params
Search itemized committee spending (Schedule B) or get aggregate breakdowns by purpose or recipient. All modes require a committee_id. Use to answer "what is this committee spending money on?" or "who is receiving payments from this committee?"
committee_id*stringcursorstringcyclenumberdisbursement_descriptionstringdisbursement_purpose_categorystringmax_amountnumbermax_datestringmin_amountnumbermin_datestringmodestringitemized · by_purpose · by_recipient · by_recipient_iddefault: itemizedpageintegerper_pageintegerrecipient_citystringrecipient_committee_idstringrecipient_namestringrecipient_statestringsortstringdisbursement_date · -disbursement_date · disbursement_amount · -disbursement_amountopenfec_search_expendituresSearch independent expenditures (Schedule E) — outside spending supporting or opposing federal candidates. Covers Super PACs, party committees, and other groups. Use itemized mode for individual expenditure records, or by_candidate for aggregated totals per candidate; by_candi...21 params
Search independent expenditures (Schedule E) — outside spending supporting or opposing federal candidates. Covers Super PACs, party committees, and other groups. Use itemized mode for individual expenditure records, or by_candidate for aggregated totals per candidate; by_candi...
candidate_idstringcandidate_officestringH · S · Pcandidate_office_districtstringcandidate_office_statestringcandidate_partystringcommittee_idstringcursorstringcyclenumberelection_fullbooleanis_noticebooleanmax_amountnumbermax_datestringmin_amountnumbermin_datestringmodestringitemized · by_candidatedefault: itemizedmost_recentbooleanpageintegerpayee_namestringper_pageintegersortstringexpenditure_date · -expenditure_date · expenditure_amount · -expenditure_amount · office_total_ytd · -office_total_ytd+1 more parameters. See the server's own documentation for the full schema.
openfec_search_coordinated_expendituresSearch coordinated party expenditures (Schedule F) — spending a party committee makes on behalf of a candidate it supports, in coordination with that campaign. Distinct from independent expenditures (openfec_search_expenditures), which cannot be coordinated with the candidate,...11 params
Search coordinated party expenditures (Schedule F) — spending a party committee makes on behalf of a candidate it supports, in coordination with that campaign. Distinct from independent expenditures (openfec_search_expenditures), which cannot be coordinated with the candidate,...
candidate_idstringcommittee_idstringcyclenumbermax_amountnumbermax_datestringmin_amountnumbermin_datestringpageintegerpayee_namestringper_pageintegersortstringexpenditure_date · -expenditure_date · expenditure_amount · -expenditure_amountopenfec_search_filingsSearch FEC filings and reports by committee, candidate, form type, or date range. Covers financial reports (F3/F3P/F3X), statements of candidacy (F2), organizational filings (F1), 24-hour IE notices (F24), and amendments.13 params
Search FEC filings and reports by committee, candidate, form type, or date range. Covers financial reports (F3/F3P/F3X), statements of candidacy (F2), organizational filings (F1), 24-hour IE notices (F24), and amendments.
candidate_idstringcommittee_idstringcyclenumberfiler_namestringform_typestringis_amendedbooleanmax_receipt_datestringmin_receipt_datestringmost_recentbooleanpageintegerper_pageintegerreport_typestringreport_yearnumberopenfec_lookup_electionsLook up federal election races and candidate financial summaries. Find who's running in a race with fundraising totals, or get an aggregate race summary.9 params
Look up federal election races and candidate financial summaries. Find who's running in a race with fundraising totals, or get an aggregate race summary.
cycle*integerdistrictstringelection_fullbooleanmodestringsearch · summarydefault: searchoffice*stringH · S · Ppageintegerper_pageintegerstatestringzipstringopenfec_search_legalSearch FEC legal documents: advisory opinions, enforcement cases (MURs), alternative dispute resolutions, administrative fines, and statutes. The citation, penalty, respondent, ao_number, and case_number filters each apply to only some document types; with type omitted, the se...14 params
Search FEC legal documents: advisory opinions, enforcement cases (MURs), alternative dispute resolutions, administrative fines, and statutes. The citation, penalty, respondent, ao_number, and case_number filters each apply to only some document types; with type omitted, the se...
ao_numberstringcase_numberstringdate_kindstringissue_date · request_date · open_date · close_date · document_date · rtb_datefrom_hitintegerhits_returnedintegermax_datestringmax_penalty_amountnumbermin_datestringmin_penalty_amountnumberquerystringregulatory_citationstringrespondentstringstatutory_citationstringtypestringadvisory_opinions · murs · adrs · admin_fines · statutesopenfec_get_legal_documentFetch one FEC legal document — advisory opinion, MUR, ADR, administrative fine, or statute — by its type and number. openfec_search_legal replaces each result's documents and dispositions arrays with a count and category summary and cuts every commission vote down to a date an...4 params
Fetch one FEC legal document — advisory opinion, MUR, ADR, administrative fine, or statute — by its type and number. openfec_search_legal replaces each result's documents and dispositions arrays with a count and category summary and cuts every commission vote down to a date an...
arraystringdoc_type*stringadvisory_opinions · murs · adrs · admin_fines · statutesno*stringoffsetintegeropenfec_lookup_calendarLook up FEC calendar events, filing deadlines, and election dates. Use to find upcoming filing windows for a committee, locate when a federal election occurred, or scope FEC events by date range and category.13 params
Look up FEC calendar events, filing deadlines, and election dates. Use to find upcoming filing windows for a committee, locate when a federal election occurred, or scope FEC events by date range and category.
categorystring20 · 21 · 22 · 23 · 24 · 25descriptionstringdistrictstringelection_yearintegermax_datestringmin_datestringmodestringevents · filing_deadlines · election_datesdefault: eventsofficestringH · S · Ppageintegerper_pageintegerreport_typestringreport_yearintegerstatestringSponsors
Configuration
FEC_API_KEYOpenFEC API key — optional (DEMO_KEY: a small daily allowance shared per IP). Own key: OpenFEC publishes 1,000 req/hr. Free at api.data.gov.
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_TRANSPORT_TYPEdefault: httpSelects the HTTP transport.
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
Readme
@cyanheads/openfec-mcp-server
Access FEC campaign finance data on candidates, money trails, and election filings via MCP. STDIO or Streamable HTTP.
Details
- Repository
- github.com/cyanheads/openfec-mcp-server
- Categories
- Sales & Marketing, Data & Analytics
- Package
@cyanheads/openfec-mcp-server- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Resources
- 1
- Prompts
- 2
- Tools verified
- Nov 6, 2026
More from cyanheads
- Openfoodfacts Mcp Server2
- Reliefweb Mcp Server2
- Smithsonian Mcp Server2
- Stackexchange Mcp Server2
- Wsdot Mcp Server2
- Oecd Mcp Server4
- Socrata Mcp Server4
- Census Mcp Server3
- Who Gho Mcp Server3
- Bls Labor Mcp Server1
- College Scorecard Mcp Server1
- Cpsc Recalls Mcp Server1
- Cyanheads Mcp Server1
- Exchange Rates Mcp Server1
- Fcc Broadband Mcp Server1
- Nist Nvd Mcp Server1
- Pokeapi Mcp Server1
- Reference Data Mcp Server1
- Usda Mcp Server1
- Epa Mcp Server2
- Osv Advisory Mcp Server2
- Gbif Biodiversity Mcp Server1
- Pentest Mcp Server1
- Workflows Mcp Server32