关于 Court Listener
Court Listener 将 Free Law Project 的 CourtListener 案例和诉讼文件数据提供为 MCP 工具,面向法律研究及案件检索。它支持按案名、引证和主题查找意见,并可检索 docket 与文件;部分上游搜索受限流影响。
主要功能
- 01按案名或引证查找案件
- 02搜索判决意见并获取全文
- 03查询 docket 及诉讼文件
- 04关联专利诉讼与专利信息
- 05支持无密钥查询判决文本
适用场景
- 01根据引证定位并阅读判决
- 02检索案件 docket 和已收录文件
- 03核查专利诉讼中的专利编号
MCP 相关
向 MCP 客户端提供美国法院判决意见、案件 docket、诉讼文件和专利交叉查询工具。可通过 Pipeworx 网关连接,也可运行仅包含此套工具的本地 stdio MCP 服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/court-listener/mcpclaude mcp add --transport http pipeworx-io-court-listener https://gateway.pipeworx.io/court-listener/mcp{"mcpServers":{"pipeworx-io-court-listener":{"type":"http","url":"https://gateway.pipeworx.io/court-listener/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-court-listener":{"type":"http","url":"https://gateway.pipeworx.io/court-listener/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-court-listener":{"type":"http","url":"https://gateway.pipeworx.io/court-listener/mcp"}}}{"mcpServers":{"pipeworx-io-court-listener":{"serverUrl":"https://gateway.pipeworx.io/court-listener/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
CourtListener — 美国判例法
来自 Free Law Project 的 CourtListener 的美国法院判决:830 万份判决, 覆盖 3,361 个法院,可追溯至 1761 年。这是美国最大的免费、结构化判例法数据库。
它是 Pipeworx 的一部分——一个将 AI Agent 连接到 1875+ 个实时数据源的 MCP 网关。这是一个独立、非官方的集成,与上游提供方无关,也未获得其认可或发布。
其中大部分是州法。这一点常让人意外,但这正是重点:
| 判决数量 | 占比 | |
|---|---|---|
| 州(最高法院、上诉法院、审判法院) | 6,219,869 | 71% |
| 联邦(含 SCOTUS 的 498,145 份) | 2,440,856 | 28% |
| 属地、军事、部落 | 86,691 | 1% |
联邦上诉法院判例法很容易在其他地方找到。六百万份州法院判决,既已汇集,也可供查询,却并非如此。
身份验证
无需身份验证即可查找案件和判决文本——无需密钥、无需注册,也没有速率限制。
search_opinions 和 search_dockets 会按主题搜索上游数据,并受 CourtListener 的限流机制约束。获取 Free Law Project 的免费令牌即可解除限制。
find_case_patents 可选用 USPTO Open Data Portal 平台密钥(与 patents 工具包使用的密钥相同)来附加专利元数据——无论是否配置密钥,它都会返回主张的专利编号;未配置密钥时则不含标题和日期。
工具
| 工具 | 适用场景 |
|---|---|
find_case | 你知道案件的名称——“Roe v. Wade”,或只知道“Sullivan” |
lookup_citation | 你有判例引证——“410 U.S. 113” |
list_case_opinions | 你有一个案件,想查看其多数意见、协同意见和异议意见 |
get_opinion | 你有判决意见 ID,想获取完整文本 |
search_opinions | 按名称、法官或类别搜索案件(优先使用镜像;指定 court 代码时会实时搜索) |
search_dockets | 在上游搜索案卷 |
list_docket_filings | 你有 docket_id,想查看案卷清单——提交了哪些文件、何时提交 |
get_docket_filing | 你有 document_id,想获取相应文件及其 PDF |
search_court_filings | 你想搜索诉状、辩护状、裁定等提交文件文本,而非判决意见 |
find_case_patents | 专利案件 → 其主张的专利编号(含 USPTO 元数据)→ 被告,一次调用即可完成 |
诉讼文件的查询流程为 search_dockets → list_docket_filings →
get_docket_filing。每个文件工具都以 docket_id 为键,且只有
search_dockets 会生成该 ID;PACER 案件编号无法解析。
find_case_patents — 专利诉讼交叉引用
将 RECAP 案件记录(Free Law Project / CourtListener)与专利元数据(美国专利商标局,Open Data Portal)关联。传入 case_name(可选 court),或传入已通过 search_dockets 获得的 docket_id:
{"case_name": "TurboCode LLC v. Quectel Wireless Solutions", "court": "txed"}
返回案件记录、从案件标题中读取的原告和被告,以及案件记录自身提交文件文本中出现的每个专利编号;每个编号都注明发现它的提交文件,以及它前面出现的确切标签(例如 "United States Patent No.")。配置 USPTO 平台密钥后(与 patents 包使用的 PLATFORM_USPTO_KEY 相同),每个编号都会附带标题、状态、授权日期和第一发明人;未配置密钥时仍会返回编号,并通过 metadata_unavailable_reason 说明原因。
按设计,这只是轻量交叉引用——绝不会购买 PACER 文档。
专利编号仅来自 RECAP 已索引的文本:书记员撰写的案件记录条目描述(例如,作为证据提交的 "United States Patent No.
6,813,742" 可直接从条目中读取,无需购买),以及其他人已经从 PACER 购买的任何文档文本摘录。若某项专利仅在尚未购买的起诉状 PDF 中被主张,就不会显示出来——响应会说明扫描了多少份提交文件,以及从未获取 pdf_available 文档,而不会声称结果完整。
此处特意采取保守的提取方式:只有源文本中单词 "Patent" 紧接在 "No./Nos./Number(s)" 前面时,该编号才会被视为主张的专利——附近的费用、收据编号、PageID 或附件索引不会仅仅因为它们是数字且靠近另一个数字就被匹配。被告来自 CourtListener 编入索引的案件标题(而非经身份验证的 PACER 当事人表),仅按 ";" / " and " 拆分——绝不按单独的逗号拆分,因为公司后缀("Co., Ltd"、"Inc.,")中经常包含逗号,按逗号拆分会把同一被告的名称拆成两部分。对于含有 "et al." 的标题,会报告 defendants_truncated: true,而不会悄悄丢弃这些信息。
判决意见和提交文件回答的是不同的问题:判决意见说明法院作出了什么裁决,提交文件说明当事人提交了什么。
search_opinions 无论由哪条路径(镜像或实时服务)提供结果,都会返回相同的 cases 结构;引用次数最多的案件会内嵌其主判决意见的 excerpt——包括开篇、裁决表述和查询匹配内容——因此,仅凭搜索结果就能回答“法院裁定了什么”;get_opinion 则会读取全文。
常见流程是 find_case → list_case_opinions → get_opinion。find_case 和 lookup_citation 的结果按引用次数排序,因为对于名称相同的案件,后来的法院实际引用的案件几乎总是用户要找的那个——搜索 "roe wade" 时,1973 年最高法院裁决(5,581 次引用)会排在 1970 年地区法院案件(53 次引用)之前。
缩写和复制粘贴的案件名称
名称匹配采用对所有词元取 AND 的方式,因此,语料库中没有的一个词元就会导致整个查询失败。过去,这意味着 find_case 对 Bell Atl. Corp. v. Twombly 返回空结果——语料库存储的是 "Bell Atlantic Corp.",而 atl 不会词干化为 atlant——而对于从法律文书中连同格式框架一起粘贴的名称(TABLE OF AUTHORITIES Bowers v. Hardwick),也会返回空结果。
如果给定名称未匹配到任何内容,find_case 现在会使用 Bluebook 缩写、引文框架和公司后缀进行一次重试,并将它们删除(绝不扩展或猜测——在 AND 语义下,删除词元只会扩大匹配范围)。通过这种方式找到的结果会标记为:
{ "matched": "relaxed", "matched_query": "Bell v Twombly", "note": "…" }
将 matched: "relaxed" 的命中视为对格式杂乱引文的尽力解析,并检查返回的 case_name 是否是你想找的案件。精确匹配不会携带此字段;首次查询就匹配的名称仍然只需一次查询。
覆盖范围
无需密钥: 意见全文、案件名称、立案日期、法官、判例效力状态、引用次数、判例汇编引文。
上游,受限流: 全文主题搜索,以及全部三种立案工具。 按主题查找案件可能会失败,但按名称或引文查找不会。
RECAP 立案文件(PACER 文档)——无需密钥,仅通过搜索访问。 约 970 万份文档。你可能会尝试访问的 REST 端点 /recap-documents/ 和 /docket-entries/ 都会返回 “Authentication credentials were not provided”;/search/?type=rd 无需令牌,也是立案工具使用的路径。范围限定要通过 q 字段查询(q=docket_id:71886217)——将 ?docket_id= 作为参数传入会被静默忽略,然后返回整个 6170 万份文档的语料库,而不是报错。
值得告知用户的注意事项
- 没有 PDF 的立案记录仍是真实的立案记录。 RECAP 保存的案卷文本远多于文档,因为只有在有人付费从 PACER 获取 PDF 后,PDF 才会存在。每份立案记录都会报告
pdf_available;在典型的案卷中,大多数条目只有元数据。缺少 PDF 应理解为“没人买过这份文件”,绝不能理解为“这份文件没有提交”。 - 立案工具会消耗稀缺的请求额度。 它们会访问 CourtListener 的
/search/上游接口;无令牌时,该接口每天大约限流至 125 次请求——这与意见镜像旨在规避的限流相同。RECAP 没有镜像。额度耗尽时,工具会明确说明,而不是返回空案卷;意见工具不受影响。 - 时效性。 响应会附带
snapshot_date;在此日期之后提交的意见会转由上游搜索处理。 - 语料库中有 14.2% 是扫描卷的 OCR 文本,因此可读性相应受影响。 响应会设置
extracted_by_ocr,以便将乱码归因于扫描件,而非我们。 date_created不是立案日期。 它指记录进入 CourtListener 的时间——一份 1946 年的意见可能显示为 2020 年。date_filed是从判例集群关联得出的日期,表示法院实际裁决的时间。- 引用次数仅统计 CourtListener 语料库内的数据,并非衡量重要性的普遍标准。
署名
数据来自 CourtListener / Free Law Project,以 Public Domain Mark 发布。Free Law Project 为该语料库提供资金并负责维护。如果这个工具包对你有用,可以通过 https://free.law/donate/ 捐款支持他们。
find_case_patents 的专利元数据来自美国专利商标局的 Open Data Portal——属于美国政府作品,处于公共领域。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"court-listener": {
"url": "https://gateway.pipeworx.io/court-listener/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/court-listener/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/search_opinions \
-H 'Content-Type: application/json' \
-d '{"query":"Air France v. Saks"}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/search_opinions。查找工具:POST https://gateway.pipeworx.io/v1/tools/search_packs,并使用 {"query":"..."}。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需通过网关往返调用:
{
"mcpServers": {
"court-listener": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-court-listener"]
}
}
}
或者直接运行,确认它能启动:
npx -y @pipeworx/mcp-court-listener
它通过 stdin/stdout 使用 MCP 通信,并响应 initialize/tools/list/tools/call,仅提供此软件包的工具——不包含上述网关连接额外提供的任何共享元工具。相同的源代码,相同的工具,不经过 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗的英语提问,而不必直接调用工具——这不仅适用于上述软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Court Listener data" })
网关会选择合适的工具并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。