关于 Congress
Congress 是面向政策研究与立法信息查询的 MCP 服务,整合 congress.gov、GovInfo 等来源提供的美国联邦国会数据。可查询法案、法律、议员、委员会和唱名表决;调用需要免费的 api.data.gov 密钥。
主要功能
- 01搜索并查看联邦法案
- 02查询已颁布的公法
- 03查找议员与委员会信息
- 04获取众议院和参议院唱名表决
适用场景
- 01追踪特定法案的状态和发起人
- 02查找某届国会通过的法律
- 03研究议员或委员会成员信息
- 04核对国会唱名表决记录
MCP 相关
向 MCP 客户端提供美国国会法案、法律、议员、委员会及唱名表决查询工具。通过 Pipeworx 网关调用时密钥由其提供;直接调用需要 api.data.gov 密钥。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/congress/mcpclaude mcp add --transport http pipeworx-io-congress https://gateway.pipeworx.io/congress/mcp{"mcpServers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}{"mcpServers":{"pipeworx-io-congress":{"serverUrl":"https://gateway.pipeworx.io/congress/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
美国国会——法案、法律、议员(congress.gov)
通过国会图书馆的官方 congress.gov API 提供美国联邦法案(众议院和参议院)、已颁布的公法与私法,以及国会议员信息;另支持在 GPO 的 GovInfo 索引中对同一批法案文档进行全文关键词搜索。包括法案状态、提案人、已颁布的法律和议员名册。需要免费的 api.data.gov 密钥。
属于 Pipeworx 的一部分——一个将 AI Agent 连接到 1875+ 个实时数据源的 MCP 网关。这是一项独立的非官方集成,与上游提供方无关联,未经其认可,也非由其发布。
这对 AI Agent 为何重要
开展政策研究时,Agent 需要了解有哪些法案、由谁提出、法案处于立法流程的哪个阶段,以及哪些法案已实际颁布为法律。Congress.gov 是权威记录。可搭配 Federal Register(实施立法的规则)和 USAspending(授权后资金的去向)使用。
常见工作流:
- 搜索法案。“有哪些关于 AI 监管的待审法案?”→ 按关键词搜索,并按国会届次筛选。
- 法案详情。“HR 9876 的状态如何?”→ 获取包含提案人、当前状态及是否已成为法律的法案记录。
- 公法。“第 119 届国会颁布了多少部法律?最近一部是什么?”→
get_public_laws。 - 查询议员。“现任众议院议员”→
get_members。
身份验证
**需要 API 密钥。**免费的 api.data.gov 密钥(https://api.data.gov/signup/)可验证此工具包中的所有工具——同一密钥同时适用于 congress.gov 和 GovInfo。通过 Pipeworx 网关调用时会自动提供密钥;直接调用时,请将密钥作为 _apiKey 传递。
2026-10-16:不再使用 GovTrack
此工具包过去调用 GovTrack 的公共 API。现在,GovTrack 的所有端点——法案、议员、投票——都会返回由 Cloudflare 机器人验证页面生成的 HTTP 403,因此依赖它的所有工具每次调用都会失败。现在,search_bills、get_bill、get_recent_bills 和 get_members 改为调用官方来源(congress.gov,以及 search_bills 关键词搜索所用的 GovInfo——见下文)。get_votes 现在从 congress.gov 提供众议院投票信息,从 Congressional Record 提供参议院投票信息(见下文“唱名投票”)——在 #3164 到 #3183 期间,该工具曾一度完全拒绝服务,因为 congress.gov 的唱名投票端点仅支持众议院。
搜索排名(search_bills)
congress.gov 自身的法案列表完全没有全文搜索参数——只能按国会届次、类型和日期浏览或筛选。GPO 的 GovInfo 索引收录了同一批法案文档(congress.gov 自身的搜索框也基于该索引),并支持关键词查询,因此 search_bills 会在此搜索,并在本地重新排列结果:
- **候选结果。**进行一次 GovInfo 全文搜索(最多返回 100 条结果),其结果本身已按相关性合理排序。
- **去重。**同一法案会按已发布版本(提出、报告、正式通过、送交总统签署等)多次出现——这些结果会合并为每个(国会届次、法案类型、编号)一行,并保留得分最高的版本。
- **排名。**对每个候选结果的标题评分:精确匹配,然后是包含该短语的标题(越短越靠前),再然后是包含所有查询词(允许前缀匹配,因此“lower”可匹配“Lowering”),最后是部分匹配。每个返回的法案都包含
match(exact/phrase/all_words/partial/none)和matched_title。 - **
congress筛选器。**在搜索结果上本地应用(不是有文档记录的 GovInfo 查询字段)——如果某个匹配项不在 GovInfo 针对该查询返回的前 100 条结果中,就可能遗漏。传入此参数可缩小结果范围,但不能像旧版由 GovTrack 提供支持的版本那样保证全面覆盖某一届国会。 - 每条结果中的提案人、状态和提出日期均来自 congress.gov(对每个候选项额外查询一次),因为 GovInfo 的搜索结果只包含标题和日期。
公共法律(get_public_laws)——新增
GovTrack 从未提供已颁布法律的端点。congress.gov 提供了:传入国会届次编号(可选传入 law_type: "priv",用于私法),即可获取数量、最新法律和列表——按时间从新到旧排列。
委员会和小组委员会(committee_leadership、committee_members)
数据来自另一个公有领域来源(github.com/unitedstates/congress-legislators)——congress.gov 和 GovTrack 都完全没有委员会成员或委员会领导层端点。每个响应中的 data_as_of 都是该来源自己的最后更新日期。
committee_members 通过 committee_id(精确匹配)或 name 识别委员会或小组委员会。名称搜索(fleet #3203,2026-10-16)也会搜索小组委员会名称,而不仅是约 230 个顶层委员会——只输入“Cybersecurity”就能直接找到参议院军事委员会网络安全小组委员会(SSAS21);输入更完整的“Senate Armed Services Subcommittee on Cybersecurity”也可以(从而与众议院军事委员会自有的、名称中包含 Cyber 的小组委员会区分开来)。匹配按词语令牌进行(查询中的每个词都必须出现在候选词中,或是候选词的前缀/后缀),并优先精确匹配:即使存在多个较宽松的匹配,只要精确名称匹配唯一,就会直接采用;其他匹配会列为 alternatives,而不会被悄悄舍弃。如果名称只匹配到上级委员会(没有匹配到小组委员会),则返回该委员会,并设置 parent_only_match: true 并附上说明——绝不会将其呈现为更具体的小组委员会。小组委员会自己的记录始终会单独标明其上级委员会(parent_committee_id/parent_committee_name);其 chair/ranking_member 是根据小组委员会自己的名册解析得出,属于小组委员会本身,而不是上级委员会。
记名投票(get_votes)——两个来源,一个工具
(fleet #3183,2026-10-16——后续修复 #3164 的问题;#3164 曾导致此工具直接拒绝请求。)传入 chamber: "house" 或 "senate";两个议院的记名投票编号彼此独立,因此没有统一的合并列表。
- 众议院——通过 congress.gov 官方 API 获取众议院书记员自己的记名投票记录。需要与本套工具中其他工具相同的 API 密钥。
- 参议院——《国会记录》,由美国政府出版局发布(通过 GovInfo,使用与本套工具中其他工具相同的 API 密钥)。《国会记录》会刊载每次参议院记名投票的票数,以及赞成、反对、出席和未投票名单;本套工具会读取这些内容。参议院秘书自己的站点拒绝自动化请求(包括根页面在内,均返回 HTTP 403,这是由 Web 应用防火墙导致的),而 congress.gov 没有参议院记名投票端点,因此不会从该站点读取。
date是《国会记录》的刊期日期,也就是参议院的立法日:跨越午夜的立法日会记在较早的日期下(2025 年 7 月 1 日对 H.R. 1 的投票记在 6 月 30 日)。question和result是《国会记录》中的原句(The question is, Will the Senate advise and consent.../The nomination was confirmed.)。如果《国会记录》中没有可供本工具匹配的结果句,result就是null,并附带result_note——绝不会根据票数推断结果,因为终止辩论和条约投票需要的不只是简单多数。- 只有当某次记名投票区块中的赞成/反对名单与《国会记录》在两个位置公布的票数一致时,才会返回该区块。不一致的区块会列在
unparsed下并附上原因;返回的投票编号范围中若有缺口,则会在note中注明。 total是本届会议目前刊载的最高记名投票编号(参议院记名投票编号从 1 连续到 N),而不是本次调用读取的数量。- 每位参议员的立场、出席情况和党派一致投票比例由
congress-member-votes提供,参数为chamber: "senate"。 每个响应都会注明自己的chamber、congress、session和source。对于当前届次,省略congress/session;session(1 或 2——每届国会恰好有两次会议,每个日历年一次)只能针对当前届国会推断——如果指定其他届、已结束的国会却不提供会议编号,这属于命名参数错误,不能靠猜测处理。对于尚未发布任何内容的议院、国会或会议,会返回明确说明的原因,绝不会悄然返回空列表。
total(众议院)是 congress.gov 自己统计的本届会议投票数(pagination.count),无论 limit 为何都相同——众议院列表端点不提供排序功能,本工具包只会抓取并重新排序足以满足 limit 的记录,因此 total 取自 API 自己的计数,不会根据本次调用实际抓取的记录数补算(fleet #3215)。如果 congress.gov 未提供该计数,则完全不返回 total,而是附上 note,不会悄然把抓取到的记录数当作实际总数。众议院投票记录中的 other_votes 已移除(fleet #3215)——它原本是 present_votes + not_voting 的总和,但在所有观测到的实时投票中,其值都与单独的 not_voting 相同(弃权票很少见);如果需要该数值,请自行将两者相加。
众议院投票完全不会从列表端点读取,无论偏移量为何——已于 2026-10-17 在线确认:即使是从列表末尾抓取的页面(早先尝试修复时采用的方法),也可能有缺漏(某次真实会议的 limit:10 返回了 314..307, 304, 303——第 306 和 305 号唱名投票就这样从该页面中消失了)。众议院唱名投票编号在每届会议内从 1 连续编号至 pagination.count,因此会通过单项投票详情端点,按编号直接获取最新投票(count、count-1……)——不使用列表页,没有随机波动,也不会有缺漏。众议院每次调用最多获取 25 项(每项投票都会单独请求上游);如果 limit 更高,就会将其限制在上限并附上 note。如果 congress.gov 没有某个唱名投票编号的记录(该编号已作废/撤销且不会重用),则会跳过该编号,并在 note 中注明——total 本身不受影响,因为它取自 pagination.count,而不是根据成功抓取的记录数计算。
议员统计(member_legislative_stats)
member_legislative_stats({ bioguide_id, congress? }) 会返回一位议员在一届国会中的以下数据:
发起的法案数、共同发起的法案数、已成为法律的发起法案数,以及该议员最新发起的法案中(最多 60 项,以 bills_analysed 报告)至少有一名来自另一主要政党的共同发起人的占比。这些数据是 Pipeworx 根据美国国会图书馆记录计算出的数量,并非官方评分。不会计算 GovTrack 的成绩单数据(与另一政党议员共同加入的法案数、排名及百分位):这需要获取每位议员的记录,而 GovTrack 会阻止自动访问。响应会在 not_computed 中说明这一点。
国会届次编号
国会按顺序编号:第 119 届国会 = 2025-2027 年(于 2025 年 1 月开始),第 118 届 = 2023-2025 年,依此类推。法案会标注其所属国会届次——第 119 届的 HR1 与第 118 届的 HR1 是不同的法案。
法案类型前缀
| 前缀 | 含义 | 议院 |
|---|---|---|
| HR | 众议院法案 | 众议院 |
| HRES | 众议院决议(程序性) | 众议院 |
| HJRES | 众议院联合决议 | 众议院 |
| HCONRES | 众议院并行决议 | 众议院 |
| S | 参议院法案 | 参议院 |
| SRES | 参议院决议 | 参议院 |
| SJRES | 参议院联合决议 | 参议院 |
| SCONRES | 参议院并行决议 | 参议院 |
就“常规立法”而言,HR 和 S 是有实际意义的类型。决议没有法律效力(HRES、SRES)或受到限制(HJRES、SJRES——后者经批准后可以修订宪法)。
常见误区
- 法案状态的细微差别。“提出”只是开始。“经委员会报告”意味着取得了实质进展。“通过审议”/“在议院通过”很重要。“登记”/“提交总统”则意味着接近最终阶段。大多数法案都悄无声息地死在委员会中;单凭“提出”是个很弱的信号。每项法案的
status_label是 congress.gov 提供的自由文本latestAction,并非编码后的状态——应直接阅读,而不是尝试按模式匹配。 - **配套法案。**相同立法内容通常会以配对法案的形式在两院提出(HR 1234 + S 567)。两项法案都必须通过。
- 仅限唱名表决。
get_votes涵盖有记录的唱名表决——许多国会决策通过口头表决或一致同意作出,因此根本不会出现在任何一院的唱名表决记录中。 - **委员会转交。**一项法案可以转交给多个委员会(依次、联合或拆分转交)。要继续推进,必须通过所有委员会。委员会结构比提出法案本身更重要。
- **共同提案门槛很低。**议员很容易就会成为共同提案人。拥有 100 位共同提案人的法案意义重大;在有 435 名议员的众议院,只有 5 位共同提案人的法案则未必如此。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"congress": {
"url": "https://gateway.pipeworx.io/congress/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/congress/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 通用元工具——ask_pipeworx、discover_tools、search_within、remember/recall,以及网关级工具集中的其他工具。因此,你看到的工具数量会多于此表所列:目前,单个资源包端点除了该资源包自身的工具,还会列出约 30 个通用工具。连接的 initialize 响应会说明其确切范围,是了解当天实际情况的权威依据。
这是有意为之,并非意外的多路复用。元工具让限定范围的连接能够回答此资源包未涵盖的问题——通过 ask_pipeworx 路由到整个目录——而无需你添加第二个 MCP 服务。目前无法挂载不含这些元工具的资源包端点;如果额外的架构定义占用的上下文超过了路由带来的价值,可以只连接一次完整网关,而不是连接多个资源包端点。
或者,连接完整的 Pipeworx 网关,直接列出每个资源包的工具,而不只是此资源包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1875+ 个数据源。唯一的区别是哪个资源包的工具会被直接列出;从任一端点都可以通过 ask_pipeworx 访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/congress_search_bills \
-H 'Content-Type: application/json' \
-d '{"query":"Lower Energy Costs Act","limit":10}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/congress_search_bills。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关:
{
"mcpServers": {
"congress": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-congress"]
}
}
}
也可以直接运行,确认它能正常启动:
npx -y @pipeworx/mcp-congress
它通过 stdin/stdout 使用 MCP,并响应 initialize/tools/list/tools/call,但仅包含此资源包的工具——不包含上述网关连接额外提供的通用元工具。源码相同,工具相同,不提供 ask_pipeworx 路由。
使用 ask_pipeworx
你也可以用通俗的英语提问,而不是直接调用工具——此方式既适用于上文的资源包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Congress data" })
网关会自动选择合适的工具并填入参数。
更多内容
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。