Openfec MCP Server

Access FEC campaign finance data. Query data about candidates, money trails, and election filings.

Remote serverstreamable-http

What is the Openfec MCP server?

Access FEC campaign finance data. Query data about candidates, money trails, and election filings. That is what the openfec mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

  • 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

Getting it running

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

The tools it exposes

The server publishes 14 tools. What each one is for:

  • 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_get_committee_totals — Get pre-aggregated committee financial totals for one committee, or rank committees of one entity type
  • 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_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 election races and candidate financial summaries
  • openfec_search_legal — Search FEC legal documents: advisory opinions, enforcement cases, and administrative fines
  • openfec_get_legal_document — Fetch one legal document in full, including the arrays legal search trims away
  • openfec_lookup_calendar — Look up FEC calendar events, filing deadlines, and election dates

What it needs from you

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, FEC_API_KEY, DEMO_KEY, FEC_BASE_URL, MCP_HTTP_HOST. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Bun v1.3.0 or higher (or Node ≥24) - (Optional) A free OpenFEC API key for higher rate limits (1,000 req/hr vs 30 req/hr with the default DEMO_KEY)

Things to watch

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Openfec.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

This sits in the cloud and infrastructure group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Openfec's toolset — openfec_search_candidates, openfec_search_committees, openfec_get_committee_totals and 11 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Available tools

ToolWhat it does
openfec_search_candidatesFind federal candidates by name, state, office, party, or cycle.
openfec_search_committeesFind political committees by name, type, candidate affiliation, or state.
openfec_get_committee_totalsGet pre-aggregated committee financial totals for one committee, or rank committees of one entity type.
openfec_search_contributionsSearch itemized individual contributions or aggregate breakdowns by size, state, employer, or occupation.
openfec_search_disbursementsSearch itemized committee spending or aggregate breakdowns by purpose or recipient.
openfec_search_expendituresSearch independent expenditures supporting or opposing federal candidates.
openfec_search_coordinated_expendituresSearch coordinated party expenditures (Schedule F) made on behalf of a candidate.
openfec_search_filingsSearch FEC filings and reports by committee, candidate, form type, or date range.
openfec_lookup_electionsLook up election races and candidate financial summaries.
openfec_search_legalSearch FEC legal documents: advisory opinions, enforcement cases, and administrative fines.
openfec_get_legal_documentFetch one legal document in full, including the arrays legal search trims away.
openfec_lookup_calendarLook up FEC calendar events, filing deadlines, and election dates.
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Openfec MCP server

{
  "mcpServers": {
    "openfec-mcp-server": {
      "type": "streamable-http",
      "url": "https://openfec.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3.0 or higher (or Node ≥24) - (Optional) A free OpenFEC API key for higher rate limits (1,000 req/hr vs 30 req/hr with the default DEMO_KEY)
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
FEC_API_KEYCredential the server authenticates with.Yes
DEMO_KEYCredential the server authenticates with.Yes
FEC_BASE_URLEndpoint or connection string the server talks to.Yes
MCP_HTTP_HOSTEndpoint or connection string the server talks to.Optional

Example prompts to try

  • Use Openfec to openfec search candidates.
  • Use Openfec to openfec search committees.
  • Use Openfec to openfec get committee totals.

Frequently asked questions

It connects Openfec to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (openfec_search_candidates, openfec_search_committees, openfec_get_committee_totals, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Openfec directly.