fec-mcp-server
FEC MCP Server
Ein Model Context Protocol (MCP)-Server für die Recherche und Transparenz der Wahlkampffinanzierung durch die Federal Election Commission (FEC). Dieser Server bietet Tools zur Suche nach Kandidaten, zum Abruf von Finanzberichten sowie zur Analyse von Beiträgen und Ausgaben aus offiziellen FEC-Daten.
Funktionen
search_candidates: Suche nach Bundeskandidaten nach Name, gefiltert nach Wahljahr, Amt, Bundesstaat oder Partei
get_committee_finances: Abruf von Finanzübersichten, einschließlich Einnahmen, Ausgaben, Barmitteln und Burn-Rate
get_receipts: Abruf von detaillierten Beiträgen (Schedule A) mit Spenderdetails
get_disbursements: Abruf von detaillierten Ausgaben (Schedule B) mit Empfänger- und Zweckdetails
Flagged-first notable analysis: Optionale bemerkenswerte Blöcke für Einnahmen/Ausgaben mit Referenzliste + heuristischen Flag-Gründen
get_independent_expenditures: Verfolgung von Super-PAC-Ausgaben für oder gegen Kandidaten (Schedule E)
get_committee_flags: Überprüfung auf RFAIs, Änderungen und damit verbundene Compliance-Warnsignale
search_donors: Suche nach einzelnen Spendern nach Name, Arbeitgeber oder Beruf über alle Komitees hinweg
search_spending: Suche nach Wahlkampfausgaben nach Beschreibung oder Empfänger über alle Komitees hinweg
Alle Daten stammen direkt von der offiziellen OpenFEC API.
Installation
Voraussetzungen
Node.js 20 oder neuer
Ein FEC-API-Schlüssel (kostenlos unter api.open.fec.gov)
Installation über npm
npm install -g fec-mcp-serverInstallation aus dem Quellcode
git clone <repository-url>
cd fecmcp
npm install
npm run buildKonfiguration
Setzen Sie Ihren FEC-API-Schlüssel als Umgebungsvariable:
export FEC_API_KEY=your-api-key-hereOder erstellen Sie eine .env-Datei im Stammverzeichnis Ihres Projekts:
FEC_API_KEY=your-api-key-hereVerwendung mit Claude Desktop
Fügen Sie den Server zu Ihrer Claude Desktop-Konfigurationsdatei hinzu:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fec": {
"command": "npx",
"args": ["fec-mcp-server"],
"env": {
"FEC_API_KEY": "your-api-key-here"
}
}
}
}Oder falls global installiert:
{
"mcpServers": {
"fec": {
"command": "fec-mcp-server",
"env": {
"FEC_API_KEY": "your-api-key-here"
}
}
}
}Tools
search_candidates
Durchsuchen Sie FEC-Datensätze nach Kandidaten anhand des Namens.
Parameter:
q(erforderlich): Zu suchender Kandidatennameelection_year(optional): Filtern nach Wahljahr (z. B. 2024)office(optional): Filtern nach Amt - H (Repräsentantenhaus), S (Senat), P (Präsident)state(optional): Filtern nach Bundesstaat (2-Buchstaben-Code)party(optional): Filtern nach Parteicode (z. B. "DEM", "REP")
Beispiel:
Search for candidates named "Smith" running for Senate in 2024get_committee_finances
Abruf der Finanzübersicht für ein Wahlkampfkomitee.
Parameter:
committee_id(erforderlich): FEC-Komitee-ID (z. B. "C00401224")cycle(optional): Zweijähriger Wahlzyklus (z. B. 2024)
Rückgabewerte:
Gesamteinnahmen und -ausgaben
Barmittel
Schulden
Burn-Rate (Verhältnis von Ausgaben zu Einnahmen)
Aufschlüsselung der Beiträge (Einzelpersonen, PAC, Partei)
Prozentsatz der Kleinspender
Beispiel:
Get the financial summary for committee C00401224get_receipts
Abruf von detaillierten Beiträgen (Schedule A), die von einem Komitee erhalten wurden.
Parameter:
committee_id(erforderlich): FEC-Komitee-IDmin_amount(optional): Mindestbetrag des Beitrags (Standard: $1.000)two_year_transaction_period(optional): Wahlzyklus (z. B. 2024)cycle(optional): Alias fürtwo_year_transaction_period; gleicht Einnahmen automatisch mit der Nutzung des Finanzzyklus abcontributor_type(optional): "individual" oder "committee"include_notable(optional): Beinhaltet den "Flagged-first notable"-Block (Standard:true)fuzzy_threshold(optional): Schwellenwert für die Fuzzy-Suche bei Referenzlisten-Flags (Standard:90, Bereich:80-99)limit(optional): Anzahl der Ergebnisse (Standard: 20, max: 100)sort_by(optional): "amount" oder "date" (Standard: "amount")
Beispiel:
Show the top 10 contributions over $5,000 to committee C00401224get_disbursements
Abruf von detaillierten Ausgaben (Schedule B), die von einem Komitee getätigt wurden.
Parameter:
committee_id(erforderlich): FEC-Komitee-IDmin_amount(optional): Mindestbetrag der Ausgabe (Standard: $1.000)two_year_transaction_period(optional): Wahlzykluscycle(optional): Alias fürtwo_year_transaction_period; gleicht Ausgaben automatisch mit der Nutzung des Finanzzyklus abpurpose(optional): Filtern nach Zweck-Schlüsselwort (z. B. "MEDIA", "CONSULTING")include_notable(optional): Beinhaltet den "Flagged-first notable"-Block (Standard:true)fuzzy_threshold(optional): Schwellenwert für die Fuzzy-Suche bei Referenzlisten-Flags (Standard:90, Bereich:80-99)limit(optional): Anzahl der Ergebnisse (Standard: 20, max: 100)sort_by(optional): "amount" oder "date" (Standard: "amount")
Beispiel:
Show media-related spending over $10,000 by committee C00401224get_independent_expenditures
Abruf unabhängiger Ausgaben (Schedule E) – Geld, das von PACs und Super PACs ausgegeben wurde, um Kandidaten zu unterstützen oder zu bekämpfen.
Parameter:
candidate_id(optional): FEC-Kandidaten-ID, um Ausgaben zu sehen, die auf sie abzielencommittee_id(optional): FEC-Komitee-ID, um deren unabhängige Ausgaben zu sehensupport_oppose(optional): Filtern nach "support" oder "oppose"min_amount(optional): Mindestbetrag der Ausgabecycle(optional): Zweijähriger Wahlzykluslimit(optional): Anzahl der Ergebnisse (Standard: 20)
Hinweis: Entweder candidate_id oder committee_id ist erforderlich.
Beispiel:
Show independent expenditures opposing candidate P00009423get_committee_flags
Überprüfung eines Wahlkampfkomitees auf Compliance-Warnsignale, einschließlich RFAIs und Änderungen.
Parameter:
committee_id(erforderlich): FEC-Komitee-IDcycle(optional): Zweijähriger Wahlzyklus
Rückgabewerte:
Anzahl und Details zu RFAI (Request for Additional Information)
Anzahl und Details zu Änderungen
Aktuelle Compliance-Probleme
Beispiel:
Check committee C00401224 for any compliance flagssearch_donors
Suche nach einzelnen Spendern in allen FEC-Einreichungen nach Name, Arbeitgeber oder Beruf.
Parameter:
contributor_name(optional): Zu suchender Spendernamecontributor_employer(optional): Arbeitgebername (z. B. "Goldman Sachs")contributor_occupation(optional): Beruf (z. B. "Lobbyist")contributor_state(optional): 2-Buchstaben-Code des Bundesstaatesmin_amount(optional): Mindestbetrag des Beitrags (Standard: $200)cycle(optional): Zweijähriger Wahlzykluslimit(optional): Anzahl der Ergebnisse (Standard: 20)
Hinweis: Mindestens einer der Parameter contributor_name, contributor_employer oder contributor_occupation ist erforderlich.
Beispiel:
Find contributions from employees of "Meta" in Californiasearch_spending
Suche nach Wahlkampfausgaben (Schedule B) über alle Komitees hinweg nach Beschreibung oder Empfänger.
Parameter:
description(optional): Schlüsselwort in der Ausgabenbeschreibung (z. B. "travel", "consulting")recipient_name(optional): Name des Empfängers/Anbietersrecipient_state(optional): 2-Buchstaben-Code des Bundesstaatesmin_amount(optional): Mindestbetrag (Standard: $500)cycle(optional): Zweijähriger Wahlzykluslimit(optional): Anzahl der Ergebnisse (Standard: 20)
Hinweis: Mindestens einer der Parameter description oder recipient_name ist erforderlich.
Beispiel:
Find spending on "golf" or "resort" across all committeesEntwicklung
Einrichtung
npm installTests ausführen
npm test # Watch mode
npm run test:run # Single run
npm run test:coverage # With coverageBuild
npm run buildTypüberprüfung
npm run typecheckLive-Akzeptanzprüfungen
npm run acceptance:fec-day
npm run acceptance:notableAPI-Ratenbegrenzungen
Die FEC-API erlaubt 1.000 Anfragen pro Stunde mit einem API-Schlüssel. Für höhere Limits (bis zu 7.200 Anfragen/Stunde) kontaktieren Sie die FEC.
Timeouts & API-Latenz
Das Standard-Timeout für Anfragen beträgt 30 Sekunden. Die Such-Tools (search_candidates, search_donors, search_spending) verwenden ein 60-Sekunden-Timeout, da diese FEC-API-Endpunkte umfangreiche Datenbankscans durchführen und von Natur aus langsamer sind.
Um das Standard-Timeout global zu überschreiben, setzen Sie die Umgebungsvariable FEC_API_TIMEOUT_MS:
export FEC_API_TIMEOUT_MS=45000 # 45 secondsDocker
Erstellen Sie das Container-Image lokal:
docker build -t fec-mcp-server .Führen Sie es mit Ihrem zur Laufzeit bereitgestellten API-Schlüssel aus:
docker run --rm -i \
-e FEC_API_KEY=your-api-key-here \
fec-mcp-serverReleases
Glama-Prüfungen erwarten ein GitHub-Release. Erstellen und veröffentlichen Sie nach dem Zusammenführen Ihrer nächsten Repo-Änderungen ein Tag wie v1.0.0 über GitHub oder mit:
git tag v1.0.0
git push origin v1.0.0Lizenz
MIT
Haftungsausschluss
Dieses Tool wurde für die Forschung zur Transparenz der Wahlkampffinanzierung entwickelt. Es bietet Zugang zu öffentlichen FEC-Daten auf neutrale, überparteiliche Weise. Das Tool und seine Ergebnisse sollten nicht dazu verwendet werden, Kandidaten oder politische Parteien zu fördern oder zu bekämpfen.
Ressourcen
Referenzlisten-Attribution:
github/DGA-Research/FEC_Coder_Project_Streamlit(gebündelte Snapshots unterresources/reference-lists/)
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sh-patterson/fec-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server