OpenFEC MCP for AI. Analyze federal campaign finance data from any query.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
OpenFEC provides direct access to the Federal Election Commission's database. You can search candidates by state or party, pull aggregated financial totals for specific campaigns, and analyze detailed committee filings like individual receipts (`list_schedule_a`) and expenditures (`list_schedule_b`).
Get structured campaign finance data without manual database exports.
What your AI can do
Get candidate history
Gets the full record of filings and designation statuses for a specific candidate over time.
Get candidate
Retrieves detailed profile information for a single candidate using their unique FEC identifier.
Get candidate totals
Pulls the summarized financial data, including total receipts and disbursements, for one candidate.
Find individuals running for office using filters like state or party via functions such as list_candidates and search_candidates.
Retrieve the aggregated money counts—total receipts, total spending, and cash on hand—for a specific candidate or committee using tools like get_candidate_totals.
Access granular financial data by pulling structured records for individual contributions (list_schedule_a), spending (list_schedule_b), and loans (list_schedule_c).
View the operational history of political groups (PACs) using get_committee_history or analyze reporting from specific types of committees with list_reports.
Ask an AI about this
Waiting for input…
OpenFEC (Federal Election Commission) Server: 21 Tools
Use these tools to pull structured data on candidate profiles, committee filings, financial schedules, and historical records directly from the FEC database.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using OpenFEC (Federal Election Commission) on VinkiusGet Candidate History
Gets the full record of filings and designation statuses for a specific candidate over time.
Get Candidate
Retrieves detailed profile information for a single candidate using their unique FEC...
Get Candidate Totals
Pulls the summarized financial data, including total receipts and disbursements, for...
Get Committee History
Tracks the operational characteristics and metadata changes of a committee across...
Get Committee
Retrieves detailed profile information for a specific political committee using its...
Get Totals By Committee Type
Calculates overall financial totals based on the defined type of political committee (e.g., PAC vs. party group).
Get Totals By Entity
Aggregates and summarizes financial figures, allowing you to view spending tied to a candidate or specific committee.
Get Totals Officer Summary
Summarizes all reported financial data by the named officers associated with a...
List Candidates
Fetches an initial list of candidates, allowing you to apply filters like state or...
List Committees
Retrieves a list of political committees, enabling filtering by name or category.
List Filings
Lists all reported filings (both electronic and physical) for committees using...
List Reports
Fetches financial reports submitted by specific types of political committees.
List Schedule A
Lists itemized receipts, detailing contributions received from both individuals and other committees.
List Schedule B
Lists itemized disbursements, showing operational spending, transfers, or refunds...
List Schedule C
Provides information regarding loans that were either received or issued by the...
List Schedule D
Lists recorded debts and obligations—money owed to or by a committee.
List Schedule E
Details independent expenditures, which are funds spent supporting or opposing...
List Schedule F
Documents coordinated party expenditures, showing spending done in direct cooperation with a candidate's campaign.
List State Election Offices
Gets the necessary contact information for election offices at the state level.
Search Candidates
Searches for specific candidates using keywords or general attributes like name and...
Search Committees
Finds committees by searching their registered names or using a known FEC ID.
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with OpenFEC (Federal Election Commission), then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by OpenFEC. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 21 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Sifting through government databases shouldn't feel like a full-time job.
Today, getting campaign finance data means jumping between the FEC website, downloading large PDF reports, manually searching for committee IDs, and then copy-pasting numbers into a spreadsheet just to compare two years. It’s time-consuming, tedious, and prone to human error.
With this MCP server, you keep everything inside your agent. You simply ask: 'What did Candidate X report in 2023?' The agent executes the necessary calls—like `list_candidates` followed by `get_candidate_totals`—and spits out a clean, structured data object. No manual export required.
OpenFEC MCP Server: Get the full financial picture.
Instead of running five separate reports for one committee (one for receipts, one for spending, one for loans, etc.), you can use the agent to synthesize these calls. You ask for a combined view, and it pulls data from `list_schedule_a`, `list_schedule_b`, *and* `get_committee` in sequence.
It's about combining multiple distinct data sources into one logical answer. It means you get the complete story—from initial donation to final expenditure—without ever leaving your chat window.
What your AI can actually do with this
OpenFEC gives your agent direct access to the Federal Election Commission's database, pulling structured financial records from federal election filings. You don't have to manually export data or deal with messy PDFs; you just ask for what you need and get clean metrics back.
Candidate Research and Tracking
Need to track who's running? You can start by finding candidates using list_candidates or running a targeted search via search_candidates, letting you filter results by state or party. To dig deeper into one person, use get_candidate. This function pulls the full profile details for any candidate once you have their unique FEC ID.
Tracking a candidate's longevity is easy with get_candidate_history, which gathers every filing and designation status change they’ve had over time. For quick financial snapshots, run get_candidate_totals to pull the summary of total receipts and disbursements for one person.
Committee Oversight and Financial Aggregation
When you're tracking political groups—the PACs or party committees—you start with list_committees to get a list, or use search_committees if you know the name or FEC ID. Getting the deep profile is done with get_committee. To see how these organizations operate over time, run get_committee_history, which tracks operational characteristics and metadata changes across different reporting periods.
You can summarize spending by committee type (like PACs versus national party groups) using get_totals_by_committee_type, or aggregate total financial figures tied to either a candidate or an entire committee with get_totals_by_entity. If you need to know how money is allocated among the people running the group, use get_totals_officer_summary to summarize all reported financials by named officers.
Analyzing Detailed Financial Schedules
The real meat of the data lives in the schedules. You'll find a list of all filings using list_filings, and you can also pull financial reports for specific committee types using list_reports. For contributions, the most granular view comes from list_schedule_a, which itemizes every receipt, detailing money received from both individuals and other committees.
When it comes to spending, list_schedule_b provides an itemized breakdown of all disbursements—that's where you find operational spending, transfers, or refunds. You can also track loans with list_schedule_c, which lists any funds either issued by or received by the committee. To account for money owed, use list_schedule_d to detail recorded debts and obligations.
The system separates types of spending: list_schedule_e details independent expenditures—that's cash spent supporting or opposing candidates without direct coordination. Meanwhile, if the group was working with a campaign directly, you pull coordinated party spending from list_schedule_f, which documents that type of cooperation.
Utility and Search Functions
If you just need contact info for state-level election offices, use list_state_election_offices. You can also get an initial list of committees using list_committees by filtering on name or category. This toolset lets your agent handle complex research—you can pull specific details about a candidate's profile (get_candidate), track their operational history (get_committee_history), and understand exactly where every dollar came from or went with specialized schedules like contributions, disbursements, loans, debts, independent spending, and coordinated expenditures.
019e38ce-4f1b-71ec-8810-9a17fd3ace39 Here's how it actually works
The bottom line is that your AI client handles the connection, key management, and API calling, so you just ask a natural language question about election finance.
Subscribe to this server and input your OpenFEC API Key into the Vinkius Marketplace.
Ask your AI client to run a query, for example: 'What were the total receipts for candidate X in 2024?'
The agent calls the appropriate tool (like get_candidate_totals) and returns structured financial data directly to you.
Who is this actually for?
Anyone who works with structured public data. This means investigative journalists needing to verify campaign claims, political data analysts building trend models, or civic tech developers integrating government records into their own apps. If your job involves tracking money spent on politics, this is for you.
Verifying a campaign's reported spending claims by pulling raw data using list_schedule_b and cross-referencing committee details via get_committee.
Building trend graphs that show how specific PAC types are shifting their focus, comparing totals from different groups using get_totals_by_committee_type.
Integrating official, structured government data streams into an application backend without relying on manual CSV exports or web scraping.
What Changes When You Connect
Stop exporting CSVs. You get direct, structured access to financial totals by calling get_candidate_totals or get_committee_totals, keeping your workflow entirely within the agent interface.
Don't piece together records manually. Using tools like list_schedule_a (receipts) and list_schedule_b (spending) allows you to instantly compare exactly where money came from versus where it went.
Avoid siloed data views. The server lets you cross-reference a committee's general details (get_committee) with its historical activity (get_committee_history), giving a full lifecycle view of the group.
Go beyond surface searches. With list_candidates and filters, you quickly narrow down thousands of potential records to only those matching your required state or party for an election cycle.
Process complex reports without boilerplate code. You don't write SQL; you just ask your agent to combine data points from multiple tools—for example, getting candidate info (get_candidate) and their total spending (get_candidate_totals) in one go.
See it in action
Tracking a specific campaign's money flow.
A financial analyst needs to know the exact operating expenditures of a PAC. They ask their agent, and the agent calls list_schedule_b for that committee ID. This provides an itemized list of spending (disbursements), letting the analyst see exactly which programs or groups received funds.
Comparing election cycles.
A journalist wants to know if a candidate's financial footprint has grown since their last run. They use get_candidate_history and then compare the resulting data points against the current totals pulled by get_candidate_totals. This gives them a clear, longitudinal view of growth or decline.
Identifying campaign funding sources.
A researcher suspects a candidate is relying heavily on specific types of donations. They run list_schedule_a and filter the results by individual contribution type, then use get_totals_by_entity to aggregate that data for a quick overview.
Reviewing coordinated political spending.
A developer needs to build an app tracking specific campaign actions. They query the system using list_schedule_f, which focuses specifically on expenditures made in coordination with candidates, ensuring they capture a niche but critical data stream.
The honest tradeoffs
Treating financial totals as simple searches
A user asks the agent to 'Show me all money spent by PACs in Ohio.' They might mistakenly use search_committees and expect a total dollar amount, which is impossible.
To get spending amounts, you must first list committees using list_committees, identify the relevant ID, and then call get_totals_by_committee_type or get_totals_by_entity. Never assume a search function returns financial aggregates.
Forgetting data granularity
A user only asks for 'total money.' They might just call get_candidate_totals, which gives one number, but they can't tell if that cash came from receipts or loans.
To get the full picture, you need multiple calls: use list_schedule_a for all incoming receipts and list_schedule_c for any outstanding loan data. Combine those results manually in your workflow.
Using general search when specific IDs exist
A user knows a committee exists but only has the name, so they call search_committees. This is fine, but if they need detailed financial reporting, they'll get stopped at the ID stage.
Always try to find the unique FEC identifier first using search_committees, and then pass that specific ID into tools like get_committee or list_filings for reliable data retrieval.
When It Fits, When It Doesn't
Use this server if your core need is deep, verifiable financial forensics on US federal elections. You're building a system that requires knowing who spent the money (list_schedule_b), where it came from (list_schedule_a), and how much was ultimately reported (get_candidate_totals). The data model is complex because real-world finance is complex—it separates receipts, spending, loans, and independent expenditures. Don't use this if you just need basic contact info or general political news; for that, a standard web search or directory tool will be faster.
Don't use it if your goal is simply to track local city council funding. This server is strictly limited to FEC data. If the required metric isn't tied to an official federal filing (like list_schedule_e), this API won't have it. It’s a highly specialized toolset.
Questions you might have
How do I find a list of all candidates using OpenFEC MCP Server? +
You use list_candidates or search_candidates. These functions let you filter the entire pool of candidates by criteria like state, party, or election cycle to narrow down your search.
Can I compare spending across different PACs using OpenFEC MCP Server? +
Yes. You can use get_totals_by_committee_type to get aggregated totals for a whole group of committees, or run multiple calls with list_committees and then pull individual summaries using get_candidate_totals.
What is the difference between list_schedule_a and list_schedule_b? +
Schedule A tracks money coming in (receipts/contributions). Schedule B tracks money going out (disbursements/spending). You need both to understand a committee's financial health.
How do I check historical data for a candidate? Use OpenFEC MCP Server. +
You must use the get_candidate_history tool. This function specifically retrieves records of filings and designations over multiple election cycles, giving you context beyond just current totals.
If I need general metadata for a committee, how do I use the `get_committee` tool? +
The get_committee tool pulls detailed profile information beyond just finances. It provides core data like the committee's official name, status, and unique identifiers. This is useful when you don't know the specific financial metrics you need.
How do I calculate aggregated financial totals for multiple candidates or committees at once using `get_totals_by_entity`? +
This tool aggregates financial data across defined entities. You pass a list of candidate or committee IDs, and it returns the combined total receipts, disbursements, and cash on hand for all selected groups in one call.
What specific debt information can I get using the `list_schedule_d` tool? +
The list_schedule_d tool handles records of debts and obligations. You pull data detailing money owed by or to a committee, which helps you track liabilities separate from operational spending.
When using the `list_filings` tool, what type of filters should I use? +
You filter filings by date range, filing type (electronic vs. paper), and specific committee IDs. This allows you to narrow down massive datasets quickly so your agent only processes relevant reports.
Can I find out how much a specific candidate has raised in total for an election cycle? +
Yes! Use the get_candidate_totals tool with the candidate's ID and the desired cycle. It will return aggregated financial summaries including total receipts and disbursements.
How do I search for all candidates running for the Senate in a specific state? +
You can use the list_candidates tool and provide 'S' for the office and the two-letter state abbreviation (e.g., 'CA' for California) to filter the results.
Is it possible to see the history of a candidate's previous filings? +
Absolutely. The get_candidate_history tool allows you to retrieve historical data for a candidate, showing their filings and designations over time.
We've already built the connector for OpenFEC. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 21 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.