关于 Harris County
Harris County 是针对哈里斯县民事案件档案的未启用 Pipeworx 集成。数据下载、解析与解码已实现并验证,但工具尚未接入,且档案尚未加载到数据库。
主要功能
- 01下载每日及每周案件文件
- 02解析定宽记录并解码字段
- 03校验每周文件列布局
- 04案件数据写入和工具尚未启用
适用场景
- 01验证案件文件下载与解析流程
- 02为后续案件检索集成准备结构化数据
MCP 相关
README 表明该集成尚未接入 MCP_PACKS,工具未启用,当前没有可路由的 MCP 功能。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/harris-county/mcpclaude mcp add --transport http pipeworx-io-harris-county https://gateway.pipeworx.io/harris-county/mcp{"mcpServers":{"pipeworx-io-harris-county":{"type":"http","url":"https://gateway.pipeworx.io/harris-county/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-harris-county":{"type":"http","url":"https://gateway.pipeworx.io/harris-county/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-harris-county":{"type":"http","url":"https://gateway.pipeworx.io/harris-county/mcp"}}}{"mcpServers":{"pipeworx-io-harris-county":{"serverUrl":"https://gateway.pipeworx.io/harris-county/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
harris-county — 哈里斯县(TX)地区书记员民事案件索引
状态:孵化中。尚未接入 MCP_PACKS,因此没有流量会路由到这里。
Fleet #1085。此包包含已完成并经过测量的两个部分;工具尚未编写,因为它们要读取一张尚不存在的镜像表。请参阅 ../README.md 中的晋级检查清单。
本项目属于 Pipeworx — 一个将 AI Agent 连接到 1881+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关,未获其认可,也未由其发布。
语料库可以回答什么
“X 公司是否在哈里斯县州法院被起诉?原告是谁?”这是 court-listener 从结构上无法回答的问题——它涵盖联邦案件索引和上诉法院判决,不包括德克萨斯州的民事立案。哈里斯县是我们能够通过获准的批量渠道访问的最大单县州级民事案件语料库。
根据 20260829 周度索引测得:AMAZON LOGISTICS INC 12 起案件、KROGER 21 起、WALMART INC 15 起、HALLIBURTON COMPANY 3 起、SYSCO HOUSTON INC 3 起。
文件内容
| 文件 | 功能 |
|---|---|
src/bulk.ts | 获取文件。使用 ASP.NET WebForms 回发,需发送两个请求,没有静态 URL。 |
src/parse.ts | 解析两个文件并解码编码字段。 |
src/field-codes.json | 书记员提供的数据字典,共 14 张工作表、约 5,000 个代码。生成文件。 |
scripts/regen-field-codes.mjs | 从实时文件 FIELD_CODES.xlsx 重新生成该 JSON。无需 API 密钥,也无依赖项。 |
已验证,无需重复推导
以下内容均于 2026-09-02 根据实际文件测得,并非推断所得。
可从已部署的 Cloudflare Worker 访问 — 通过。 在已部署的 registry-api 上(不是 wrangler dev,也不是笔记本电脑)请求 GET /admin/harris_probe:
egress: cloudflare-worker, elapsed 2,244ms, 164 datasets advertised, 144 civil
daily 200 content-disposition: attachment;filename=2026-08-31 CivilHistoricalDaily.txt 207,352 B 1,385 lines
weekly 200 content-disposition: attachment;filename=Civil Case Index JWEB 20260829.txt 20,783,741 B 31,540 lines
周度定宽布局 — 42 个字段,31,539 行中有 0 行错位。
偏移量根据表头标签的位置得出,并由 assertWeeklyHeader() 在每次解析时验证。228 个案件编号以字母结尾,这是合理情况(分离/附属事项)。
字段解码 — 文件中出现的 17 种状态代码均已映射,无未映射项:A ACTIVE 12,861 · D DISPOSED (FINAL) 12,454 · E READY DOCKET 3,342 · H HOLD FOR JUDGMENT 1,317 · O POST JUDGMENT 868 · IP INACTIVE (PENDING) 63 · … 原始代码 D 不是人们能看懂的案件状态;这就是 FIELD_CODES.xlsx 的用途。
三个陷阱,都会返回 HTTP 200
- 回发控件名称中的
$必须以%24形式发送。 如果处理错误,服务器仍会返回 200,但重新渲染页面——本应是文件的位置会得到一份 224 KB 的 HTML 文档。curl --data-urlencode会保留$字面值;URLSearchParams则会对其进行编码。downloadHarrisFile会检查Content-Disposition: attachment,而不是状态码。 - 列发生偏移不会报错。 每个字段仍会被切片,只是切到错误的字符,于是你会把半截街道名称当成被告录入。
assertWeeklyHeader()是防止这种情况进入数据库的唯一保障——导入时调用summarizeWeekly(),并要求misaligned === 0。 ***** NO DEFENDANT RECORD found *****是哨兵值,不是姓名。 787 行都包含该值。若按原样导入,它会成为哈里斯县被起诉次数第三多的当事方,排名甚至高于休斯敦市。parseWeeklyLine会将其清空。
剩余工作
除实际加载外,一切都已编写并通过类型检查:架构、 数据导入、手动触发器和四个工具。剩下的工作需要数据库凭据, 而编写这些内容的机器并不具备这些凭据,因此它停在最后一个 能够如实验证的步骤,而不是留下一个只加载了一半的表。
操作员运行手册——确切的变量名称、加载流程和晋级检查清单——位于 docs/harris-county-handoff.md。 它放在那里而不是这里,
是因为这份 README 随公开的独立仓库一起发布。
| 组成部分 | 位置 |
|---|---|
| 架构,2 张表 + trigram 索引 | supabase/migrations/dockets_004_harris_civil.sql |
| 数据导入,批量 upsert + dry-run 模式 | workers/registry-api/src/harris_civil.ts |
| 手动触发器,由内部密钥控制 | registry-api 上的 POST /admin/harris_civil_sync |
| 四个工具 | src/tools.ts — 作为 pack 默认项导出,目前仍未启用 |
已于 2026-09-02 在本地用真实文件验证——从下载到解析和解码,再到将要写入的确切行对象,整个流程都已验证,也就是说,除了实际写入外的每一步:
daily 200 content-disposition: attachment;filename=2026-08-31 CivilHistoricalDaily.txt
207,352 B 1,384 rows 0 columns holding the literal string "NULL"
weekly 200 content-disposition: attachment;filename=Civil Case Index JWEB 20260829.txt
20,783,741 B 31,539 rows header assertion PASS
misaligned 0 · unmapped status codes none · 787 sentinel defendants blanked
0 duplicate case numbers
decode case_status_code "D" -> "DISPOSED (FINAL)" · filed_date 19981005 -> 1998-10-05
defendants KROGER 21 · WALMART 15 · AMAZON LOGISTICS 6 · HALLIBURTON 3
最后一行正是这个 pack 要回答的问题,答案来自已解析的语料。它并不能替代晋级检查清单要求的线上冒烟测试——该测试需要表已存在。
加载者须知
- 数据导入程序遇到布局错误时会拒绝写入,而不是写入看似正常的行。
misaligned必须为 0;即使列位置变了,切片仍然正常,因此其他检查都无法发现这一问题。 - 每周索引是一个滚动活动窗口,因此案件表会在多次运行中累积数据,记录缺失绝不意味着“没有此案件”。每个工具响应都会带上这一说明——不要为了让输出更整洁而删除它。
- 两个文件都会出现自身冲突。 每日文件可能会重新发布修订后的当事人行,而与自身冲突的批次会被直接拒绝,因此两个循环都会在写入前根据表自身的键去重。
- 内存: 每周下载文件是一个 20.8 MB 的字符串,在整个运行期间都会保留在内存中。行会以每批 500 条的方式写入,而不是全部累积起来,这样 128 MB 的 Worker 就不必同时持有 31k 个包含 42 个字段的对象。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"harris-county": {
"url": "https://gateway.pipeworx.io/harris-county/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/harris-county/mcp 上的 tools/list 会返回上表中的工具,以及共享的 Pipeworx 元工具——ask_pipeworx、
discover_tools、search_within、remember/recall,以及网关范围内的其他工具。因此,你看到的工具数量会多于这张表:目前,单个 pack 端点除了该 pack 自有工具外,还会列出大约 30 个共享工具。连接的 initialize 响应会说明其确切范围,也是判断某一天实际情况的权威依据。
这是有意如此,并非意外的多路复用。元工具可以让范围受限的连接通过 ask_pipeworx(它会在整个目录中路由),回答本 pack 未涵盖的问题,而无需你再添加第二个 MCP 服务。目前无法挂载不含这些工具的 pack 端点;如果这些额外架构占用的上下文比路由带来的收益还多,请连接一次完整网关,而不是连接多个 pack 端点。
或者连接完整的 Pipeworx 网关,直接列出所有 pack 的工具,而不只是当前 pack 的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1881+ 个数据源。唯一的区别是哪些 pack 的工具会被直接列出;无论使用哪个 URL,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/harris_civil_search_party \
-H 'Content-Type: application/json' \
-d '{"name":"KROGER","role":"defendant","limit":3}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/harris_civil_search_party。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需与网关往返通信:
{
"mcpServers": {
"harris-county": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-harris-county"]
}
}
}
也可以直接运行,确认它能够启动:
npx -y @pipeworx/mcp-harris-county
它通过 stdin/stdout 使用 MCP 通信,并响应 initialize/tools/list/tools/call,但仅提供此软件包的工具——不包含上文网关连接所添加的任何共享元工具。相同的源代码,相同的工具,无需 ask_pipeworx 路由。
使用 ask_pipeworx
除了直接调用工具,你也可以用通俗易懂的英语提问——此方式既适用于上述软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Harris County data" })
网关会选择合适的工具,并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。