Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/cyanheads/openfec-mcp-server{
"mcpServers": {
"openfec": {
"command": "node",
"args": ["/path/to/openfec-mcp-server/dist/index.js"]
}
}
}MCP Servers overview
<div align="center">
<h1>@cyanheads/openfec-mcp-server</h1>
<p><b>Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP.</b>
<div>12 Tools • 5 Resources • 2 Prompts</div>
</p>
</div>
<div align="center">
[](https://www.npmjs.com/package/@cyanheads/openfec-mcp-server) [](./CHANGELOG.md) [](https://github.com/users/cyanheads/packages/container/package/openfec-mcp-server) [](https://modelcontextprotocol.io/) [](./LICENSE) [](https://www.typescriptlang.org/) [](https://bun.sh/)
</div>
<div align="center">
[](https://github.com/cyanheads/openfec-mcp-server/releases/latest/download/openfec-mcp-server.mcpb) [](https://cursor.com/en/install-mcp?name=openfec-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3BlbmZlYy1tY3Atc2VydmVyIl0sImVudiI6eyJGRUNfQVBJX0tFWSI6InlvdXItYXBpLWtleSJ9fQ==) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22openfec-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads/openfec-mcp-server%22%5D%2C%22env%22%3A%7B%22FEC_API_KEY%22%3A%22your-api-key%22%7D%7D)
[](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
</div>
<div align="center">
**Public Hosted Server:** [https://openfec.caseyjhand.com/mcp](https://openfec.caseyjhand.com/mcp)
</div>
---
## Overview
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. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.
### Tools
| 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 committee financial totals — one committee's per-cycle summary, or a ranked search across committees of one entity type. |
| `openfec_search_contributions` | Search itemized individual contributions (Schedule A) or aggregate breakdowns by size, state, employer, or occupation. |
| `openfec_search_disbursements` | Search itemized committee spending (Schedule B) or aggregate breakdowns by purpose or recipient. |
| `openfec_search_expenditures` | Search independent expenditures (Schedule E) supporting or opposing federal candidates, itemized or aggregated by candidate. |
| `openfec_search_coordinated_expenditures` | Search coordinated party expenditures (Schedule F) made on behalf of a candidate. |
| `openfec_search_filings` | Search FEC filings and reports by committee, candidate, form type, or date range. |
| `openfec_lookup_elections` | Look up federal election races and candidate financial summaries. |
| `openfec_search_legal` | Search FEC legal documents: advisory opinions, enforcement cases, administrative fines, and statutes. |
| `openfec_get_legal_document` | Fetch one legal document in full, including the arrays search trims away. |
| `openfec_lookup_calendar` | Look up FEC calendar events, filing deadlines, and election dates. |
### Resources
| Resource | Description |
|:---|:---|
| `openfec://candidate/{candidate_id}` | Federal candidate profile with current financial totals and principal committees. |
| `openfec://committee/{committee_id}` | Political committee profile with type, designation, and financial summary. |
| `openfec://election/{cycle}/{office}` | Presidential election race with candidate financial totals. |
| `openfec://election/{cycle}/{office}/{state}` | Senate or at-large House election race with candidate financial totals. |
| `openfec://election/{cycle}/{office}/{state}/{district}` | House district election race with candidate financial totals. |
### Prompts
| Prompt | Description |
|:---|:---|
| `openfec_money_trail` | Framework for tracing the flow of money around a candidate or race. |
| `openfec_campaign_analysis` | Structured analysis of a candidate's financial position. |
## Capability reference
### `openfec_search_candidates` <sub>tool</sub>
- Full-text name search, or a direct lookup by FEC candidate ID (H/S/P + eight letters or digits) that returns full detail
- Filters: state, district, office, party, cycle, election_year, incumbent_challenge, candidate_status, has_raised_funds
- `include_totals` merges receipts/disbursements/cash-on-hand per cycle — defaults to true on an ID lookup, false on search; capped at 5 pages of 100 rows, with uncovered IDs listed in `missing_totals` for re-query
- Pagination up to 100 results per page
- Typed errors: `candidate_not_found`; `inputs_not_applicable_to_id_lookup` when search-only filters accompany a direct ID lookup
---
### `openfec_search_committees` <sub>tool</sub>
- Full-text name search, or a direct lookup by FEC committee ID (`C` + eight digits)
- Filters: candidate_id, state, party, committee_type, designation, cycle, treasurer_name
- Pagination up to 100 results per page
- Typed errors: `committee_not_found`; `inputs_not_applicable_to_id_lookup` when search-only filters accompany a direct ID lookup
---
### `openfec_get_committee_totals` <sub>tool</sub>
- `mode: "single"` (default): one committee's totals, one row per two-year cycle filed. `mode: "by_entity_type"`: ranks or screens every committee of one entity type (presidential, pac, party, pac-party, house-senate, ie-only)
- `by_entity_type`-only filters: committee_state, committee_type, committee_designation, organization_type, and receipts/disbursements min/max bounds
- Returns receipts, disbursements, cash on hand, debts, and the itemized/unitemized contribution split
- Typed errors: `committee_id_required_for_single_mode`, `entity_type_required_for_group_mode`, `inputs_not_applicable_to_mode`, `committee_totals_not_found`
---
### `openfec_search_contributions` <sub>tool</sub>
- Modes: `itemized` (Schedule A records, requires committee_id, keyset cursor pagination), `by_size`/`by_state` (committee_id or candidate_id), `by_employer`/`by_occupation` (committee_id only)
- Itemized filters: contributor name, employer, occupation, city, state, ZIP, date range, amount range, is_individual; defaults to the current cycle when omitted
- Sort defaults to `-contribution_receipt_date`; a cursor is valid only for an otherwise-identical call
- Typed errors: `itemized_requires_committee_id`, `aggregate_requires_committee_id`, `itemized_only_filters_in_aggregate_mode`, `inputs_not_applicable_to_mode`
---
### `openfec_search_disbursements` <sub>tool</sub>
- Modes: `itemized` (Schedule B records, keyset cursor pagination), `by_purpose`, `by_recipient`, `by_recipient_id` — committee_id required for every mode
- Itemized filters: recipient name/state/city/committee ID, description, purpose category, date range, amount range; defaults to the current cycle when omitted
- Sort defaults to `-disbursement_date`
- Typed errors: `itemized_only_filters_in_aggregate_mode`; `inputs_not_applicable_to_mode` for an explicit page in itemized mode
---
### `openfec_search_expenditures` <sub>tool</sub>
- Modes: `itemized` (Schedule E, keyset cursor pagination, defaults to the current cycle and `most_recent: true`) and `by_candidate` (aggregated per targeted candidate — needs candidate_id or a full race scope: office alone for President, plus state for Senate, plus district for House)
- Itemized filters: payee_name, candidate_party, is_notice (24/48-hour notices), date range, amount range, support_oppose (S/O)
- Typed errors: `by_candidate_requires_scope`, `itemized_only_filters_in_aggregate_mode`, `inputs_not_applicable_to_mode`
---
### `openfec_search_coordinated_expenditures` <sub>tool</sub>
- Schedule F — party committee spending coordinated with a candidate's campaign, a separate legal category from independent expenditures and direct contributions
- Filters: committee_id (spending party committee), candidate_id (benefiting candidate), cycle, payee_name, date range, amount range; unscoped queries span all years
- Page-based pagination; the spending committee is hoisted out of rows when committee_id is supplied
---
### `openfec_search_filings` <sub>tool</sub>
- Form types: F3 (House/Senate quarterly), F3P (Presidential), F3X (PAC/party), F24 (24-hour IE notice), F1 (statement of organization), F2 (statement of candidacy), F5 (IE by persons)
- Filters: committee_id, candidate_id, filer_name, report_type, report_year, cycle, is_amended, receipt date range
- `most_recent` defaults to true, filtering out superseded amendments
- Page-based pagination, up to 100 results per page
---
### `openfec_lookup_electionsWhat people ask about openfec-mcp-server
What is cyanheads/openfec-mcp-server?
+
cyanheads/openfec-mcp-server is mcp servers for the Claude AI ecosystem. Access FEC campaign finance data through MCP. Query data about candidates, money trails, and election filings. STDIO & Streamable HTTP. It has 2 GitHub stars and its last recorded update is dated 2026-09-19.
How do I install openfec-mcp-server?
+
You can install openfec-mcp-server by cloning the repository (https://github.com/cyanheads/openfec-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is cyanheads/openfec-mcp-server safe to use?
+
Our security agent has analyzed cyanheads/openfec-mcp-server and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains cyanheads/openfec-mcp-server?
+
cyanheads/openfec-mcp-server is maintained by cyanheads. The last recorded GitHub activity is dated 2026-09-19, with 14 open issues.
Are there alternatives to openfec-mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy openfec-mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/cyanheads-openfec-mcp-server)<a href="https://claudewave.com/repo/cyanheads-openfec-mcp-server"><img src="https://claudewave.com/api/badge/cyanheads-openfec-mcp-server" alt="Featured on ClaudeWave: cyanheads/openfec-mcp-server" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.