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
git clone https://github.com/cyanheads/openfec-mcp-server{
"mcpServers": {
"openfec": {
"command": "node",
"args": ["/path/to/openfec-mcp-server/dist/index.js"],
"env": {
"FEC_API_KEY": "<fec_api_key>"
}
}
}
}FEC_API_KEYMCP 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>9 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>
---
## Tools
Nine tools for querying federal election campaign finance data:
| Tool Name | Description |
|:----------|:------------|
| `openfec_search_candidates` | Find federal candidates by name, state, office, party, or cycle. |
| `openfec_search_committees` | Find political committees by name, type, candidate affiliation, or state. |
| `openfec_search_contributions` | Search itemized individual contributions or aggregate breakdowns by size, state, employer, or occupation. |
| `openfec_search_disbursements` | Search itemized committee spending or aggregate breakdowns by purpose or recipient. |
| `openfec_search_expenditures` | Search independent expenditures supporting or opposing federal candidates. |
| `openfec_search_filings` | Search FEC filings and reports by committee, candidate, form type, or date range. |
| `openfec_lookup_elections` | Look up election races and candidate financial summaries. |
| `openfec_search_legal` | Search FEC legal documents: advisory opinions, enforcement cases, and administrative fines. |
| `openfec_lookup_calendar` | Look up FEC calendar events, filing deadlines, and election dates. |
### `openfec_search_candidates`
Find federal candidates with optional financial totals.
- Full-text name search plus filters for state, district, office, party, cycle, incumbent status
- Fetch a specific candidate by FEC ID (H/S/P prefix) with full detail
- Optional financial totals: receipts, disbursements, cash on hand
- Pagination up to 100 results per page
---
### `openfec_search_committees`
Find political committees (campaign, PAC, Super PAC, party).
- Full-text name search plus filters for type, designation, party, state, candidate affiliation
- Fetch a specific committee by FEC ID (C prefix)
- Committee types: House, Senate, Presidential, Super PAC, PAC, Party
- Treasurer name search
---
### `openfec_search_contributions`
Search Schedule A contribution data with five query modes.
- **itemized**: Individual contribution records with keyset cursor pagination
- **by_size**: Aggregate breakdowns by contribution size range
- **by_state**: Geographic breakdown of contributions
- **by_employer**: Top employer aggregates
- **by_occupation**: Top occupation aggregates
- Filters: donor name, employer, occupation, city, state, ZIP, date range, amount range
---
### `openfec_search_disbursements`
Search Schedule B spending data with four query modes.
- **itemized**: Individual disbursement records with keyset cursor pagination
- **by_purpose**: Aggregate by spending purpose category
- **by_recipient**: Aggregate by payee name
- **by_recipient_id**: Aggregate by recipient committee ID
- Filters: recipient name, description, date range, amount range
---
### `openfec_search_expenditures`
Search Schedule E independent expenditure data.
- **itemized**: Individual expenditure records with support/oppose indicator
- **by_candidate**: Aggregated totals per targeted candidate
- Filters: committee, candidate, office, party, 24/48-hour notices, date and amount range
---
### `openfec_search_filings`
Search FEC filings and reports.
- Form types: F3 (House/Senate quarterly), F3P (Presidential), F3X (PAC/party), F24 (24-hour IE notice), F1/F2 (organizational/candidacy), F5 (IE by persons)
- Report type codes: Q1/Q2/Q3, YE, monthly, pre/post election
- Amendment filtering with most-recent-only option
- Date range filtering by FEC receipt date
---
### `openfec_search_legal`
Search across FEC legal document types.
- Advisory opinions, MURs (enforcement cases), ADRs, administrative fines, statutes
- Look up specific cases by AO number or case number
- Filter by respondent, regulatory/statutory citation, penalty amount range
- Offset-based pagination (up to 200 results per page)
---
### `openfec_lookup_elections`
Look up federal election races.
- **search**: Candidates in a race with financial totals
- **summary**: Aggregate race financial summary
- Office types: H (House), S (Senate), P (President)
- ZIP code lookup to find races covering a location
- Full election period expansion (4yr president, 6yr senate, 2yr house)
---
### `openfec_lookup_calendar`
Look up FEC dates and deadlines.
- **events**: FEC calendar events
- **filing_deadlines**: Report due dates by type and year
- **election_dates**: Upcoming and past election dates by state and office
- Date range filtering
## Resources
| URI Pattern | Description |
|:------------|:------------|
| `openfec://candidate/{candidate_id}` | Federal candidate profile with current financial totals. |
| `openfec://committee/{committee_id}` | Political committee profile with type, designation, and financial summary. |
| `openfec://election/{cycle}/{office}` | Presidential or at-large election race with candidate financial totals. |
| `openfec://election/{cycle}/{office}/{state}` | Senate or state-level election race with candidate financial totals. |
| `openfec://election/{cycle}/{office}/{state}/{district}` | House district election race with candidate financial totals. |
## Prompts
| Prompt | Description |
|:-------|:------------|
| `openfec_campaign_analysis` | Structured analysis of a candidate's financial position — fundraising trajectory, burn rate, cash reserves, donor composition, and opponent comparison. |
| `openfec_money_trail` | Framework for tracing the flow of money around a candidate or race — direct fundraising, PAC support, independent expenditures, and party spending. |
## Features
Built on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core):
- Declarative tool definitions — single file per tool, framework handles registration and validation
- Unified error handling across all tools
- Pluggable auth (`none`, `jwt`, `oauth`)
- Swappable storage backends: `in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`
- Structured logging with optional OpenTelemetry tracing
- Runs locally (stdio/HTTP) or via Docker from the same codebase
OpenFEC-specific:
- Type-safe client wrapping the [OpenFEC REST API](https://api.open.fec.gov/developers/)
- Multi-mode tools supporting both itemized records and aggregate breakdowns
- Keyset cursor pagination for high-volume Schedule A/B/E data
- Automatic retry with configurable timeout and max retries
- Error sanitization strips API keys from error messages; HTTP status errors enriched with actionable hints
- Two guided investigation prompts for campaign finance analysis workflows
## Getting Started
### Public Hosted Instance
A public instance is available at `https://openfec.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:
```json
{
"mcpServers": {
"openfec-mcp-server": {
"type": "streamable-http",
"url": "https://openfec.caseyjhand.com/mcp"
}
}
}
```
### Self-Hosted / Local
Add the following to your MCP client configuration file.
```json
{
"mcpServers": {
"openfec-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/openfec-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"FEC_API_KEY": "your-api-key"
}
}
}
}
```
Or with Docker:
```json
{
"mcpServers": {
"openfec-mcp-server": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "-e", "FEC_API_KEY=your-api-key", "ghcr.io/cyanheads/openfec-mcp-server:latest"]
}
}
}
```
For Streamable HTTP, set the transport and start the server:
```sh
MCP_TRANSPORT_TYPE=http MCPWhat 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 1 GitHub stars and was last updated today.
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 87/100 (tier: Trusted). 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 from today, with 4 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.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。