Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Description from the maker (original English)
Access FEC campaign finance data. Query data about candidates, money trails, and election filings.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
FEC_API_KEY, MCP_LOG_LEVELYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://openfec.caseyjhand.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"openfec": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openfec-mcp-server"
],
"env": {
"FEC_API_KEY": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http openfec https://openfec.caseyjhand.com/mcpclaude mcp add openfec --env FEC_API_KEY=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/openfec-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"openfec": {
"url": "https://openfec.caseyjhand.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"openfec": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openfec-mcp-server"
],
"env": {
"FEC_API_KEY": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"openfec": {
"type": "http",
"url": "https://openfec.caseyjhand.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"openfec": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/openfec-mcp-server"
],
"env": {
"FEC_API_KEY": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://openfec.caseyjhand.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
FEC_API_KEY envMCP_LOG_LEVEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 7, 2026. The maker wrote them, not us; we show them as plain text.
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.
openfec_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).
openfec_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 has f
openfec_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.
openfec_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?"
openfec_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_candidat
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, an
openfec_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.
openfec_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.
openfec_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 searc
openfec_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 and a
openfec_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.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account cyanheads, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 494 ms (HTTP 200)
No sign-in needed
Read 12 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.10.0) reached the registry 10 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@cyanheads/openfec-mcp-server Access FEC campaign finance data on candidates, money trails, and election filings via MCP. STDIO or Streamable HTTP. 12 Tools • 5 FEC Resource Templates • 2 Prompts • 1 Skill
Public Hosted Server: https://openfec.caseyjhand.com/mcp
US federal campaign finance data from the FEC's OpenFEC API. Search candidates, committees, and filings, trace contributions (Schedule A), disbursements (Schedule B), and independent and coordinated party expenditures (Schedules E/F), and look up election races, legal documents, and filing deadlines.
| Tool | Description |
|---|---|
openfec_search_candidates | Find federal candidates by name, state, office, party, or cycle; fetch one by FEC ID with financial totals |
openfec_search_committees | Find political committees by name, type, candidate affiliation, or state; fetch one by FEC ID |
openfec_get_committee_totals | Pre-aggregated financial totals for one committee by cycle, or ranked across committees of one entity type |
openfec_search_contributions | Itemized contributions (Schedule A), or aggregates by size, state, employer, or occupation |
openfec_search_disbursements | Itemized committee spending (Schedule B), or aggregates by purpose or recipient |
openfec_search_expenditures | Independent expenditures (Schedule E) supporting or opposing candidates, itemized or totaled per candidate |
openfec_search_coordinated_expenditures | Coordinated party expenditures (Schedule F) made on behalf of a candidate |
openfec_search_filings | FEC filings and reports by committee, candidate, form type, or date range |
openfec_lookup_elections | Candidates in a federal race with their fundraising totals, or an aggregate race summary |
openfec_search_legal | Advisory opinions, enforcement cases, alternative dispute resolutions, administrative fines, and statutes |
openfec_get_legal_document | One legal document in full, including the arrays search trims away, paged by entry when too large for one response |
openfec_lookup_calendar | FEC calendar events, filing deadlines, and election dates |
| Resource | Description |
|---|---|
openfec://candidate/{candidate_id} | Candidate profile with financial totals and principal committees |
openfec://committee/{committee_id} | Committee profile with type, designation, and financial summary |
openfec://election/{cycle}/{office} | Presidential race with candidate financial totals |
openfec://election/{cycle}/{office}/{state} | Senate or at-large House race with candidate financial totals |
openfec://election/{cycle}/{office}/{state}/{district} | House district race with candidate financial totals |
The same data is reachable through openfec_search_candidates, openfec_search_committees, and openfec_lookup_elections for tool-only clients.
The openfec-guide skill covers campaign-finance investigations, historical committee attribution, and coverage checks. MCP clients can read it at skill://openfec-guide/SKILL.md.
| Prompt | Description |
|---|---|
openfec_money_trail | Trace the money around a candidate: direct fundraising, PAC support, independent expenditures, and party spending |
openfec_campaign_analysis | Structured analysis of a candidate's financial position |
openfec_search_candidates toolquery name search filtered by state, district, office, party, cycle, election_year, incumbent_challenge, candidate_status, and has_raised_funds, up to 100 per page; or a candidate_id lookup (H/S/P + eight letters or digits) returning one full recordinclude_totals (default on for an ID lookup) adds per-cycle totals rows and caps a search page at 35 candidates when cycle or election_year scopes the totals, 5 when they span every cycle; candidates the totals fetch didn't reach are listed in missing_totalscandidate_not_found, inputs_not_applicable_to_id_lookupopenfec_search_committees toolquery name search filtered by candidate_id, state, party, committee_type, designation, cycle, and treasurer_name, up to 100 per page; or a committee_id lookup (C + eight digits)committee_not_found, inputs_not_applicable_to_id_lookupopenfec_get_committee_totals toolmode: "single" (default) takes a committee_id and returns one row per two-year cycle; mode: "by_entity_type" ranks every committee of one entity_type (presidential, pac, party, pac-party, house-senate, ie-only), filterable by state, type, designation, organization type, and receipts/disbursements bounds; up to 100 per pagemode says whether rows are cycles or committeescommittee_id_required_for_single_mode, entity_type_required_for_group_mode, committee_totals_not_foundopenfec_search_contributions toolitemized (default) needs a committee_id and filters by contributor name, employer, occupation, city, state, ZIP, date and amount ranges, and is_individual, 30 rows per page; by_size / by_state take a committee_id or candidate_id, by_employer / by_occupation a committee_idmode becomes by_size_candidate or by_state_candidate when scoped by candidate, a different row shape; itemized responses carry next_cursor, count, and count_is_approximateitemized_requires_committee_id, aggregate_requires_committee_idopenfec_search_disbursements toolcommittee_id required in every mode: itemized (default; recipient name, state, city, and committee ID, description, purpose category, date and amount ranges, 30 rows per page), by_purpose, by_recipient, by_recipient_idnext_cursor, count, and count_is_approximate; aggregate modes page by numberopenfec_search_expenditures toolitemized (default) filters by committee, candidate, support_oppose, payee, targeted office/state/district, party, is_notice (24/48-hour notices), dates, and amounts; most_recent defaults to true; 60 rows per page when scoped by committee_id, 30 otherwiseby_candidate totals need a candidate_id or a full race scope (candidate_office=P alone, S plus candidate_office_state, H plus state and candidate_office_district), or fail as by_candidate_requires_scopeopenfec_search_coordinated_expenditures toolcommittee_id, benefiting candidate_id, cycle, payee, dates, and amounts; unscoped queries span all yearscommittee_id and 25 otherwise; rows carry subordinate_committee_id, the committee the spending is attributed toopenfec_search_filings toolmost_recent defaults to true, hiding superseded amendments; rows carry form and report type, financial totals, and pdf_urlopenfec_lookup_elections tooloffice and an even cycle are required; Senate also needs state and House state plus district, unless a zip scopes a searchmode: "search" (default) returns the race's candidates with totals and candidate_pcc_id / candidate_pcc_name, that cycle's principal campaign committee; mode: "summary" returns one aggregate race rowcycle_must_be_even, missing_state_for_office, missing_district_for_house, summary_does_not_support_zipopenfec_search_legal tooltype (advisory_opinions, murs, adrs, admin_fines, statutes), query, ao_number, case_number, respondent, citations, penalty bounds, or dates; at least one is required (missing_filter), and a date bound needs type plus a date_kind that type recordstype it doesn't filter fails as filter_not_valid_for_type, and with type omitted the search returns only the types they all apply to, with a total over those types. On MURs and ADRs a citation can't be combined with case_number, respondent, a penalty bound, or an open/close date bound, which upstream would ignore; the two citation fields together match either one52 U.S.C. 30104 or 11 CFR 110.1 (USC, C.F.R., §, and suffixes like 30104(g) are fine); a bare 30106 or 110.1 fails as invalid_citation instead of silently returning unfiltered results. One citation per field: upstream applies only the first citation in a value, so 52 U.S.C. 30104, 52 U.S.C. 30118 fails the same wayfrom_hit / hits_returned, up to 200 per type within a 10,000-result windowdocuments becomes document_count and document_categories, dispositions becomes disposition_count and disposition_categories, highlights stop at 3 with their match markup removed and render one per line, and commission_votes shrink to a date and a 200-character action; openfec_get_legal_document returns the full recordtruncated, shown, and nextFromHit — the from_hit that continues each type, passedOnly the beginning is shown; read the rest in the repo