fec-mcp-server
FEC MCP Server
連邦選挙委員会(FEC)の選挙資金調査および透明性のためのModel Context Protocol(MCP)サーバーです。このサーバーは、公式のFECデータから候補者の検索、財務報告書の取得、寄付や支出の分析を行うためのツールを提供します。
機能
search_candidates: 名前、選挙年、役職、州、または政党で連邦候補者を検索
get_committee_finances: 収入、支出、手元資金、バーンレート(資金燃焼率)を含む財務概要を取得
get_receipts: 寄付者詳細を含む項目別の寄付金(スケジュールA)を取得
get_disbursements: 受取人および目的の詳細を含む項目別の支出(スケジュールB)を取得
Flagged-first notable analysis: 参照リストとヒューリスティックなフラグ理由を含む、寄付金/支出の注目すべきブロック(オプション)
get_independent_expenditures: 候補者を支持または反対するためのスーパーPACの支出(スケジュールE)を追跡
get_committee_flags: RFAI(追加情報要求)、修正事項、および関連するコンプライアンス上の懸念事項を確認
search_donors: すべての委員会を対象に、名前、雇用主、または職業で個人の寄付者を検索
search_spending: すべての委員会を対象に、説明や受取人で選挙運動の支出を検索
すべてのデータは、公式のOpenFEC APIから直接取得されます。
インストール
前提条件
Node.js 20以降
FEC APIキー(api.open.fec.govから無料で取得可能)
npmからのインストール
npm install -g fec-mcp-serverソースからのインストール
git clone <repository-url>
cd fecmcp
npm install
npm run build設定
FEC APIキーを環境変数として設定します:
export FEC_API_KEY=your-api-key-hereまたは、プロジェクトのルートに.envファイルを作成します:
FEC_API_KEY=your-api-key-hereClaude Desktopでの使用
Claude Desktopの設定ファイルにサーバーを追加します:
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"
}
}
}
}または、グローバルにインストールされている場合:
{
"mcpServers": {
"fec": {
"command": "fec-mcp-server",
"env": {
"FEC_API_KEY": "your-api-key-here"
}
}
}
}ツール
search_candidates
名前で候補者のFEC記録を検索します。
パラメータ:
q(必須): 検索する候補者名election_year(任意): 選挙年でフィルタリング (例: 2024)office(任意): 役職でフィルタリング - H (下院), S (上院), P (大統領)state(任意): 州でフィルタリング (2文字のコード)party(任意): 政党コードでフィルタリング (例: "DEM", "REP")
例:
Search for candidates named "Smith" running for Senate in 2024get_committee_finances
選挙運動委員会の財務概要を取得します。
パラメータ:
committee_id(必須): FEC委員会ID (例: "C00401224")cycle(任意): 2年間の選挙サイクル (例: 2024)
戻り値:
収入および支出の合計
手元資金
負債
バーンレート(支出/収入比率)
寄付の内訳(個人、PAC、政党)
小口寄付者の割合
例:
Get the financial summary for committee C00401224get_receipts
委員会が受け取った項目別の寄付金(スケジュールA)を取得します。
パラメータ:
committee_id(必須): FEC委員会IDmin_amount(任意): 最小寄付金額 (デフォルト: $1,000)two_year_transaction_period(任意): 選挙サイクル (例: 2024)cycle(任意):two_year_transaction_periodのエイリアス。財務サイクルに合わせて寄付金を自動調整しますcontributor_type(任意): "individual" または "committee"include_notable(任意): フラグ付きの注目ブロックを含める (デフォルト:true)fuzzy_threshold(任意): 参照リストフラグのあいまい一致しきい値 (デフォルト:90, 範囲:80-99)limit(任意): 結果の数 (デフォルト: 20, 最大: 100)sort_by(任意): "amount" または "date" (デフォルト: "amount")
例:
Show the top 10 contributions over $5,000 to committee C00401224get_disbursements
委員会が行った項目別の支出(スケジュールB)を取得します。
パラメータ:
committee_id(必須): FEC委員会IDmin_amount(任意): 最小支出額 (デフォルト: $1,000)two_year_transaction_period(任意): 選挙サイクルcycle(任意):two_year_transaction_periodのエイリアス。財務サイクルに合わせて支出を自動調整しますpurpose(任意): 目的のキーワードでフィルタリング (例: "MEDIA", "CONSULTING")include_notable(任意): フラグ付きの注目ブロックを含める (デフォルト:true)fuzzy_threshold(任意): 参照リストフラグのあいまい一致しきい値 (デフォルト:90, 範囲:80-99)limit(任意): 結果の数 (デフォルト: 20, 最大: 100)sort_by(任意): "amount" または "date" (デフォルト: "amount")
例:
Show media-related spending over $10,000 by committee C00401224get_independent_expenditures
独立支出(スケジュールE)を取得します。これは、PACやスーパーPACが候補者を支持または反対するために費やした資金です。
パラメータ:
candidate_id(任意): ターゲットとなっている候補者のFEC IDcommittee_id(任意): 独立支出を行った委員会のFEC IDsupport_oppose(任意): "support" または "oppose" でフィルタリングmin_amount(任意): 最小支出額cycle(任意): 2年間の選挙サイクルlimit(任意): 結果の数 (デフォルト: 20)
注: candidate_id または committee_id のいずれかが必須です。
例:
Show independent expenditures opposing candidate P00009423get_committee_flags
RFAIや修正事項を含む、選挙運動委員会のコンプライアンス上の懸念事項を確認します。
パラメータ:
committee_id(必須): FEC委員会IDcycle(任意): 2年間の選挙サイクル
戻り値:
RFAI(追加情報要求)の数と詳細
修正事項の数と詳細
最近のコンプライアンス問題
例:
Check committee C00401224 for any compliance flagssearch_donors
名前、雇用主、または職業で、すべてのFEC提出書類を対象に個人の寄付者を検索します。
パラメータ:
contributor_name(任意): 検索する寄付者名contributor_employer(任意): 雇用主名 (例: "Goldman Sachs")contributor_occupation(任意): 職業 (例: "Lobbyist")contributor_state(任意): 2文字の州コードmin_amount(任意): 最小寄付金額 (デフォルト: $200)cycle(任意): 2年間の選挙サイクルlimit(任意): 結果の数 (デフォルト: 20)
注: contributor_name、contributor_employer、または contributor_occupation のいずれか1つ以上が必須です。
例:
Find contributions from employees of "Meta" in Californiasearch_spending
説明や受取人で、すべての委員会を対象に選挙運動の支出(スケジュールB)を検索します。
パラメータ:
description(任意): 支出説明のキーワード (例: "travel", "consulting")recipient_name(任意): 受取人/ベンダー名recipient_state(任意): 2文字の州コードmin_amount(任意): 最小金額 (デフォルト: $500)cycle(任意): 2年間の選挙サイクルlimit(任意): 結果の数 (デフォルト: 20)
注: description または recipient_name のいずれか1つ以上が必須です。
例:
Find spending on "golf" or "resort" across all committees開発
セットアップ
npm installテストの実行
npm test # Watch mode
npm run test:run # Single run
npm run test:coverage # With coverageビルド
npm run build型チェック
npm run typecheckライブ受け入れテスト
npm run acceptance:fec-day
npm run acceptance:notableAPIレート制限
FEC APIは、APIキーを使用すると1時間あたり1,000リクエストを許可します。より高い制限(1時間あたり最大7,200リクエスト)については、FECにお問い合わせください。
タイムアウトとAPIレイテンシ
デフォルトのリクエストタイムアウトは30秒です。検索ツール(search_candidates、search_donors、search_spending)は、FEC APIエンドポイントが広範なデータベーススキャンを実行するため本質的に低速であることから、60秒のタイムアウトを使用しています。
デフォルトのタイムアウトをグローバルに上書きするには、FEC_API_TIMEOUT_MS環境変数を設定します:
export FEC_API_TIMEOUT_MS=45000 # 45 secondsDocker
コンテナイメージをローカルでビルドします:
docker build -t fec-mcp-server .実行時にAPIキーを指定して実行します:
docker run --rm -i \
-e FEC_API_KEY=your-api-key-here \
fec-mcp-serverリリース
GlamaのチェックはGitHubリリースを想定しています。次のリポジトリ変更をマージした後、GitHubから、または以下を使用して v1.0.0 などのタグを作成して公開してください:
git tag v1.0.0
git push origin v1.0.0ライセンス
MIT
免責事項
このツールは、選挙資金の透明性に関する調査を目的として設計されています。中立かつ非党派的な方法で公開FECデータへのアクセスを提供します。このツールおよびその出力は、特定の候補者や政党を促進または反対するために使用されるべきではありません。
リソース
参照リストの帰属:
github/DGA-Research/FEC_Coder_Project_Streamlit(resources/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