# sh-patterson/fec-mcp-server [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/sh-patterson/fec-mcp-server  
**GitHub Stars:** 4  
**npm Downloads (last month):** 54  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/sh-patterson-fec-mcp-server

## Description
Query FEC campaign finance data — search candidates, track donations, analyze spending, and monitor Super PAC activity via the OpenFEC API.

## Tools
Capabilities this server exposes over MCP:

- **search_candidates**
- **get_committee_finances**
- **get_receipts**
- **get_disbursements**
- **get_independent_expenditures**
- **get_committee_flags**
- **search_donors**
- **search_spending**

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "fec-mcp-server": {
    "command": "npx",
    "args": ["-y","fec-mcp-server"],
    "env": {
      "FEC_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `FEC_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What sh-patterson/fec-mcp-server MCP server does

The sh-patterson/fec-mcp-server MCP server provides MCP access to federal campaign-finance records from the OpenFEC API. It has no web interface; an MCP client starts the command-line process and receives formatted text responses.

Its tools cover candidate discovery, committee financial summaries, itemized receipts, itemized disbursements, independent expenditures, committee filing flags, donor searches, and spending searches. Candidate searches can return principal committee IDs, which can then be used for committee-level requests.

## How it works

The server sends requests to OpenFEC and presents the returned records, source IDs, and URLs in its responses. Financial summaries use committee totals for cycle-level receipts, disbursements, contribution categories, and loans, while cash and debt balances come from the latest final report. The response labels the period model used for each amount.

Each query returns one OpenFEC page rather than the complete matching dataset. Supported tools accept limits from 1 to 100, with a default of 20. Several search and transaction tools return continuation state. Pass the returned continuation value to the same tool with the same effective filters to retrieve later pages. Candidate continuation uses page numbers; transaction continuation uses OpenFEC keyset cursors.

Resolve a candidate or committee before requesting committee data. When comparing a financial summary with receipts or disbursements, keep the cycle and two-year transaction period aligned.

## Setup and configuration

The sh-patterson/fec-mcp-server MCP server requires Node.js 20 or later and an OpenFEC API key. Set the key in the process environment under `FEC_API_KEY`; keep it private. The package can be installed globally with `npm install -g fec-mcp-server`, or run through `npx fec-mcp-server`.

For Claude Desktop, configure an MCP entry that starts the `fec-mcp-server` command and supplies `FEC_API_KEY` in its environment. The project also includes a Dockerfile. Build it with `docker build -t fec-mcp-server .`, then run the image interactively while passing the API key as an environment variable.

## Tools and capabilities

Available tools include:

- `search_candidates` for federal candidate records and principal committee IDs.
- `get_committee_finances` for cycle totals and final-report balances.
- `get_receipts` and `get_disbursements` for itemized Schedule A and Schedule B records.
- `get_independent_expenditures` for Schedule E spending by, for, or against a candidate.
- `get_committee_flags` for RFAI and amended-filing records.
- `search_donors` for individual Schedule A records across committees.
- `search_spending` for Schedule B records across committees.

`get_receipts` and `get_disbursements` can optionally include a flagged-notables block. This analyst reference data is not FEC data or a legal determination and should be independently checked.

## Limitations and notes

OpenFEC updates data nightly, and API caching may delay refreshed values for up to one hour. A registered API key has a base limit of 1,000 requests per hour. Counts may be exact, approximate, or unspecified, so narrow queries before drawing conclusions from result totals.

An RFAI or amendment returned by `get_committee_flags` is a review lead, not proof of a violation. Campaign-finance records should be attributed to the Federal Election Commission and OpenFEC. Review applicable FEC terms, acceptable-use requirements, and restrictions on commercial use and contributor data before using the service. The package is licensed under MIT.

_Full upstream README: https://allmcps.com/mcp/sh-patterson-fec-mcp-server/readme_

