fec-mcp-server 是一个用于联邦竞选财务研究的命令行 Model Context Protocol(MCP)服务器。它没有网页界面,通过查询 OpenFEC API 并将结果格式化为文本返回给 MCP 客户端。
用途
该服务器面向需要以编程方式访问美国联邦竞选财务数据的用户,例如研究人员、记者或开发者,用于搜索候选人、追踪捐款、分析支出和监控 Super PAC 活动。
主要能力
服务器暴露八个工具:
- search_candidates:查找联邦候选人记录和主要委员会 ID。
- get_committee_finances:返回周期总额和最新最终报告余额。
- get_receipts:返回一个委员会的逐项 Schedule A 收入。
- get_disbursements:返回一个委员会的逐项 Schedule B 支出。
- get_independent_expenditures:返回一个委员会的 Schedule E 支出,或针对/支持某候选人的支出。
- get_committee_flags:列出一个委员会的 RFAI 和修正申报记录。
- search_donors:跨委员会搜索个人 Schedule A 记录。
- search_spending:跨委员会搜索 Schedule B 记录。
使用方式
安装 Node.js 20 或更高版本。从 OpenFEC 开发者网站获取 API 密钥并保密。在 MCP 服务器环境中设置 FEC_API_KEY。例如,Claude Desktop 配置可启动已安装的命令行服务器。也可以通过 npx fec-mcp-server 运行包。
在请求委员会级数据之前,先解析候选人或委员会。比较财务摘要与收入或支出时,保持 cycle 和 two_year_transaction_period 一致。
每个交易或搜索查询返回一页 OpenFEC 结果。显示的“showing”值是该响应中的行数。附带的计数来自 OpenFEC 分页,并不表示工具返回了所有匹配的申报。OpenFEC 限制每次 API 调用每页最多 100 条结果。接受 limit 的工具接受 1 到 100 的值,默认 20。大型 OpenFEC 结果计数可能不精确,在得出结论前应缩小查询范围。
以下工具支持继续:search_candidates、get_receipts、get_disbursements、get_independent_expenditures、search_donors 和 search_spending。当 OpenFEC 提供继续状态时,结果包含一个可直接粘贴的值,如 {"continuation":"fecp1..."}。在下一次调用中,将该令牌作为工具的 continuation 字段传入。继续令牌是无状态、不透明的游标,服务器将每个令牌绑定到有效过滤器和创建它的工具。如果更改过滤器或将令牌用于另一个工具,服务器会在调用 OpenFEC 之前拒绝请求。候选人继续使用 OpenFEC 页码,交易继续使用 OpenFEC 键集游标值。最终非空键集页可能包含另一个令牌。继续直到页脚显示 Continuation: none;终端响应可能不包含记录。候选人页面内容不保证在 OpenFEC 刷新后保持稳定。
页脚报告 OpenFEC 计数状态为 exact、approximate 或 unspecified。精确计数标记为 exact (N records)。近似计数标记为 approximate (N reported records)。缺失或未分类的计数标记为 unspecified(或当 OpenFEC 提供值时 unspecified (N reported records))。响应保留 OpenFEC 返回的源记录 ID 和 URL。将这些 ID 和 URL 视为上游证据,而非本包创建的值。
get_committee_finances 使用 /committee/{id}/totals/ 获取周期收入、支出、贡献类别和贷款值。它使用最新最终报告获取现金和债务余额。每个金额都按其周期模型标记。get_committee_flags 报告申报记录。RFAI 或修正案是审查线索,不是违规证据。
适用场景
适用于需要查询联邦竞选财务数据的命令行或 MCP 客户端环境,例如在 Claude Desktop 中集成使用。
限制
OpenFEC 每晚更新数据。其 API 缓存可能将刷新值延迟最多一小时。将结果视为带日期的 API 响应,而非实时账本。注册 API 密钥的基础限制为每小时 1,000 次请求。当前限制和 API 密钥规则请参阅 OpenFEC 文档和 api.data.gov 开发者手册。
将官方记录归属于联邦选举委员会和 OpenFEC。本包不改变记录来源。使用 API 前请查看 FEC 服务条款和 FEC 可接受使用政策。该政策限制竞选财务数据的商业使用。联邦法律还限制贡献者数据用于商业目的和捐款招揽。保持 API 密钥私密。将贡献者数据保持在批准的研究目的内。
可选分析师增强
get_receipts 和 get_disbursements 在显式设置 include_notable: true 时可以添加 flagged-notables 块。该块使用捆绑的第三方分析师参考数据。它不是 FEC 数据、法律发现或事实分类。将每个标记视为线索。在报告之前,用官方申报字段和独立来源确认。
四个捆绑的 CSV 快照派生自 DGA-Research/FEC_Coder_Project_Streamlit 下的 Databases/。来源清单记录了导入提交、日期、哈希、方法和记录的许可证状态。此包中源没有记录的许可证。在重新分发或刷新快照之前,请审查权利。
许可证
MIT。参见 LICENSE。