关于 Crs Reports
Crs Reports 为政策研究者、立法工作人员及法律从业者提供国会研究服务(CRS)报告的搜索与全文读取。响应标明报告的权威属性、引用、许可和更新时间,并区分托管语料库与实时 API 的数据范围。
主要功能
- 01按主题和条件检索报告
- 02读取报告全文及相关立法
- 03查看近期发布或修订内容
- 04浏览 CRS 主题分类
- 05标明权威属性与许可信息
适用场景
- 01查找国会对某项政策或法规的分析
- 02阅读报告并核对其引用的法案和公法
- 03跟踪 CRS 对议题的近期更新
MCP 相关
它通过 `crs_search`、`crs_report`、`crs_recent` 和 `crs_topics` 等 MCP 工具提供 CRS 报告数据。可经 Pipeworx 网关连接,或作为本地 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/crs-reports/mcpclaude mcp add --transport http pipeworx-io-crs-reports https://gateway.pipeworx.io/crs-reports/mcp{"mcpServers":{"pipeworx-io-crs-reports":{"type":"http","url":"https://gateway.pipeworx.io/crs-reports/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-crs-reports":{"type":"http","url":"https://gateway.pipeworx.io/crs-reports/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-crs-reports":{"type":"http","url":"https://gateway.pipeworx.io/crs-reports/mcp"}}}{"mcpServers":{"pipeworx-io-crs-reports":{"serverUrl":"https://gateway.pipeworx.io/crs-reports/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/crs-reports
国会研究服务处(CRS)报告——国会对法规、联邦计划和政策选项进行的非党派分析——可按主题搜索,也可阅读全文;每条报告的权威性、引文、许可和时效都会在每次响应中注明。
属于 Pipeworx — 一个将 AI agents 连接到 1679+ 个实时数据源的 MCP 网关。
工具
crs_search(query?, topic?, product_class?, author?, published_since?, published_before?, limit?)— 对报告标题和 CRS 随报告发布的摘要进行排序搜索。 返回标题、报告编号、CRS 主题分类、作者、发布日期 和摘要片段。仅对标题和摘要排序,不搜索报告正文 — 每条响应都会通过searched说明这一限制, 否则搜索无结果可能会被误解为“CRS 从未写过相关内容”。crs_report(report_id, include_text?, max_chars?)— 按报告编号(R43255、IF13006、LSB10123)获取一份完整报告。返回当前版本的完整文本,以及作者、主题、报告引用的法案和公法,还有报告时效。crs_recent(days?, topic?, product_class?, limit?)— 查看 CRS 最近发布或修订的内容,按时间从新到旧排列。变更动态可用于追踪后续跟进法案或规则的分析。crs_topics(facet?, limit?)— CRS 自有的主题分类体系及各术语的计数,还有分析师和产品类别。筛选前请先调用:CRS 使用U.S. Trade Policy,猜测使用Trade会匹配不到任何结果。
身份验证
使用 Pipeworx 网关:无需密钥。 网关会注入语料库 — 报告索引和提取出的报告文本 — 因此调用网关时,调用方无需提供任何内容。
独立安装(npm i @pipeworx/mcp-crs-reports):请准备 api.data.gov 密钥。 独立安装不包含语料库的任何部分,因此该软件包会回退到国会图书馆自己的 API,并需要密钥才能调用。可在任意工具调用中通过 _apiKey 传入密钥;可在 https://api.data.gov/signup/ 免费获取,且一个密钥可用于所有由 api.data.gov 提供前置服务的 API。如果没有语料库和密钥,所有工具都会返回 {found: false, reason: "corpus_unavailable"} 并说明情况。
两种模式会明确标注,因为它们返回的结果并不相同
每条响应都包含 mode:corpus(托管模式)或 live_api(独立安装并提供密钥)。实时模式无法完成的操作会在响应中明确说明,而不会静默降级:
mode: "corpus" | mode: "live_api" | |
|---|---|---|
crs_report 文本 | 完整提取的报告文本,并经过校验和验证 | 仅提供 CRS 自己的 summary,绝不会以 text 命名;正文仍保存在 pdf_url 指向的 PDF 中 |
crs_search 范围 | 对所有标题和摘要进行排序 | 仅搜索标题,从最近更新的一端开始扫描(列表端点完全没有查询参数);响应会说明已读取的数量及语料库总量 |
topic / author 筛选 | 支持 | 按名称拒绝 — 这些字段只存在于单份报告记录中,若要应用筛选,就需要对 14,000 份报告逐一请求 |
crs_topics | 完整词汇表及各术语的计数 | 仅提供 product_class,不含计数 |
这些拒绝是有意为之。针对筛选问题返回未筛选的列表,只是披着正确标签的错误答案;而将一份 3,700 字符的摘要放到本应容纳 61,000 字符报告的字段中,则是调用方最难察觉的替代行为。
如果语料库在调用过程中发生故障,且调用方提供了 _apiKey,则会改用实时 API 返回结果,并通过 degraded_from_corpus 说明情况。
数据源
- https://api.congress.gov/v3/crsreport — 国会图书馆为每份报告提供的记录:标题、发布日期、当前版本、作者、CRS 主题分类、相关法案和公法,以及 CRS 自己的摘要。由 api.data.gov 提供前置服务。
- https://www.congress.gov/crs_external_products/ — API 所指向的报告 PDF;文本取自每份报告的当前版本。
数据说明了什么、没有说明什么
CRS 分析具有说服力,但不具约束力。 它不是法律,对任何法院和机构都没有约束力,只作为背景和立法语境引用。每条响应都带有 authority.binding_status: "persuasive" 和一段用文字说明这一点的 binding_note,因此下游 Agent 不会把 CRS 对某项法规的解释误认为法规本身。
这是一组当前有效的报告,范围从 2018 年至今——撰写本文时共有 14,115 份报告,这是 CRS 目前列为有效的报告,而非完整的历史存档。CRS 撤回或取代的报告会从该集合中移除。
无需许可。 CRS 报告属于美国联邦政府作品,根据 17 U.S.C. §105 不受版权保护,因此 license_terms.encumbered 为 false,且无需署名。只有一个注意事项,CRS 本身也会注明,本工具包在 license_caveat 中也会重复说明:个别报告可能转载第三方图表或照片,而 §105 不适用于这些内容。
陷阱,测于 2026-09-15
操作导入流程(scripts/ingest-crs-reports.mjs)前,值得了解以下事项:
sort参数会被接受,但会被忽略。sort=updateDate+asc、sort=updateDate+desc和无意义的参数都会返回相同的首行。列表始终按updateDate从新到旧排列。请求不会报错,因此基于sort构建的排序是错误的,却看似正确。fromDateTime/toDateTime确实有效,并且会根据updateDate进行筛选——未筛选时有 14,115 条,使用fromDateTime=2026-09-01时有 585 条。这两个参数组成变更源,可让每日运行保持增量更新。updateDate是带着Z的 America/New_York 墙上时间。 对 14 份抽样报告进行检查后发现,每份报告的 PDFLast-Modified时间都恰好比updateDate晚 4 小时(EDT)或 5 小时(EST),精确到秒;这种与夏令时的关联排除了固定发布延迟的可能。PDF 标头记录的是同一事件的真实 UTC 时间,并会存储该时间。- 遍历一次列表无法获取整个语料库。 列表恰好返回其声称的 14,115 行,但只有 14,097 个不同的 ID:其中 18 个 ID 各出现两次,每对重复项的
updateDate都相同(2025-09-08T11:20:24Z)。这是一个不稳定的次级排序问题——列表仅按updateDate排序,而数千条记录共享同一批量重新发布的时间戳——因此会漏掉大约与重复数量相同的报告,尽管总数看起来完全正确。导入流程会合并重复项并再次遍历。 - 列表行落后于其自身的详情记录。 IF12988 的两条记录仅相隔数秒:
list.version为 1、list.updateDate为 22:09:04,而currentVersion为 6、updateDate为 22:38:57。用列表枚举;所有值都以详情记录为准。 - HTML 版本无法访问,但 PDF 正常。
/crs_external_products/<T>/HTML/<id>.html路径从 Worker 出口和笔记本电脑访问时都会返回 403,并带有Cf-Mitigated: challenge;无论是否提供完整的浏览器标头,结果都一样。PDF 路径在两处都返回 200。对 PDF 发起普通HEAD请求会得到 403,而GET请求会得到 200,因此仅通过HEAD探测会误判这个可用路径。 - 短篇产品的
summary是全文,长篇产品的summary则仅包含摘要。 R43255 的摘要有 3,754 个字符,而报告全文有 61,691 个字符。每条响应中的text_source都会说明文本来自哪个版本。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"crs-reports": {
"url": "https://gateway.pipeworx.io/crs-reports/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/crs-reports/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 都会连接到同一个网关和同一批 1679+ 个数据源。唯一的区别是哪些工具包的工具会被直接列出;无论连接哪个,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/crs_search \
-H 'Content-Type: application/json' \
-d '{"query":"tariffs"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/crs_search。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经由网关往返:
{
"mcpServers": {
"crs-reports": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-crs-reports"]
}
}
}
或者直接运行,以确认它能正常启动:
npx -y @pipeworx/mcp-crs-reports
它通过 stdin/stdout 使用 MCP 协议,并响应 initialize/tools/list/tools/call,但仅提供此工具包的工具——不包含上述网关连接额外提供的共享元工具。代码相同,工具相同,但没有 ask_pipeworx 路由功能。
使用 ask_pipeworx
你也可以用通俗的英语提问,而不是直接调用工具——这既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Crs Reports data" })
网关会自动选择合适的工具并填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。