关于 Arkansas Code
Arkansas Code 是用于按引文查询阿肯色州法规、按主题搜索条目标题的 MCP 服务。它将截至 2020-11-06 的法规文本快照与单独列出的后续法案索引并置,且不会将后续法案合并进文本。
主要功能
- 01按引文获取法规文本和立法沿革
- 02搜索 28 个标题中的条目标题
- 03单独列出涉及该条文的后续法案
- 04标明快照与索引的日期
- 05免密访问并支持本地 stdio 模式
适用场景
- 01核查阿肯色州条文及其立法沿革
- 02通过官方条目标题关键词查找条文
- 03查看后续法案且不将其视为已合并文本
- 04将阿肯色州法规工具接入 MCP 客户端
MCP 相关
向 MCP 客户端提供 `ar_statute` 和 `ar_search`,支持托管网关端点及独立 stdio 服务。条文查询返回法规文本,并将后续法案索引单独列出。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/arkansas-code/mcpclaude mcp add --transport http pipeworx-io-arkansas-code https://gateway.pipeworx.io/arkansas-code/mcp{"mcpServers":{"pipeworx-io-arkansas-code":{"type":"http","url":"https://gateway.pipeworx.io/arkansas-code/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-arkansas-code":{"type":"http","url":"https://gateway.pipeworx.io/arkansas-code/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-arkansas-code":{"type":"http","url":"https://gateway.pipeworx.io/arkansas-code/mcp"}}}{"mcpServers":{"pipeworx-io-arkansas-code":{"serverUrl":"https://gateway.pipeworx.io/arkansas-code/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
43| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | question 的别名。 |
| ask | string | 否 | question 的别名。 |
| text | string | 否 | question 的别名。 |
| input | string | 否 | question 的别名。 |
| packs | array | 否 | 可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。 |
| query | string | 否 | question 的别名。 |
| prompt | string | 否 | question 的别名。 |
| message | string | 否 | question 的别名。 |
| question | string | 是 | 用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。 |
详细介绍
@pipeworx/arkansas-code
1987 年《阿肯色州法典》——按引文查找条文,以及按主题/关键词搜索官方标题。Fleet #2881,是剩余四个尚无 <state>-code 包的州之一(密西西比州现在也有了——fleet #2883)。无需密钥。
Pipeworx 的组成部分——一个将 AI Agent 连接到 1872+ 个实时数据源的 MCP 网关。这是一个独立、非官方的集成——与上游提供方无关联,未获其背书,也非由其发布。
工具
ar_statute(citation)— 按引文查询一条 Ark. Code Ann. 条文的文本("5-10-101",一级谋杀;"4-70-101";"Ark. Code Ann. § 5-10-101")。返回标题、正式法条文本、History.行(制定/修订该条文的法案),以及存在时的其他立法注释,还有later_acts叠加数据——阿肯色州议会自己的索引显示,自2020-11-06快照以来涉及此确切引文的每一项法案(fleet #2906,见下文“叠加数据”)。特意排除判例注释——对于经过大量诉讼的条文,这些注释可能长达数百 KB。ar_search(query, limit?)— 在全部 28 个标题的官方条文标题中按主题/关键词搜索(例如"capital murder"、"security deposit")。不是全文搜索——见“已知缺口”。
身份验证
无需密钥。调用双方均无需注册或登录。
数据源,以及这为什么不是 Lexis 调用
官方《阿肯色州法典》通过 LexisNexis 的“免费公共访问”门户发布(lexisnexis.com/hottopics/arcode -> advance.lexis.com)——已实时验证(2026-10-09):落地页需要真实浏览器 JS 才能通过 Cookie/指纹检查,而即使授予 Cookie,也只会重定向 302 到身份验证端点(/lnaccess/mip/authn?...),并返回带有 x-amzn-waf-action: captcha 的 HTTP 405。codes.findlaw.com/ar/ 和 law.justia.com/codes/arkansas/ 均将其实际标题/条文页面置于 Cloudflare 机器人验证挑战之后(cf-mitigated: challenge,HTTP 403)。
-
https://unicourt.github.io/cic-code-ar/ — 《阿肯色州法典》的 GitHub Pages 副本,由 UniCourt 代表 Public.Resource.Org 根据该法典官方发布的 RTF 卷册构建(
archive.org/download/gov.ar.code);根据该仓库自己的 README,此法典“属于公有领域,不保留任何权利”。每个标题对应一个 HTML 页面(gov.ar.code.title.{NN}.html,补零至 2 位,共 28 个标题),每次ar_statute调用时均实时获取——此包代理访问该内容,不会在仓库中附带法典副本(Pipeworx CLAUDE.md 许可部分中的mirror-needs-grant-proxy-does-not)。无论任何出版方如何声明其自身呈现形式的许可,基础法条文本都属于公法——制定成法的法律不受版权保护(Banks v. Manchester,128 U.S. 244 (1888);Veeck v. SBCCI,293 F.3d 791 (5th Cir. 2002) (en banc))。
坦诚说明局限。 该来源包含三个版本——r76(2020-04-20)、r77(2020-08-18)、r78(2020-11-06),已通过 GitHub contents API 实时确认(2026-10-09)——此包使用最新版本 r78。这是静态快照,并非持续更新的数据源:2020-11-06 之后通过的阿肯色州修正案未收录。每条响应都带有 current_through 和 data_as_of: "2020-11-06",而非默认采用“当前”日期。对于此后通过的任何内容,请向 LexisNexis 托管的官方法典或阿肯色州法典修订委员会核实。
(此包最初基于 2012 年 Public.Resource.Org XML 扫描版发布——当时已知唯一可由 Worker 访问的文本。同日后续版本改为指向这个更新的 UniCourt 镜像,新了 8 年以上;此更换已实时确认:Ark. Code Ann. § 5-10-101 的 History. 行现在延伸至“2019, No. 910, § 666”,而旧来源仅至 2011 年。)
覆盖层:只追加,不合并(fleet #2906)
Bruce 将 ar_statute 保留在冻结的 2020-11-06 快照上(“我们得想个办法”),而没有追求完全校准的现行法典。这个覆盖层是在该决定基础上最省力且诚实的改进——设计和测量见 docs/current-statute-routes.md(#2902)——也是计划中的三个覆盖层中的第一个(待验证可行后,密西西比州和田纳西州将各自构建索引)。
规则:绝不改写快照 text。只在旁边添加带日期、带链接的列表,并明确标注为未合并。 ar_statute 的响应包含:
later_acts— 自快照日期以来影响此精确引文的每项法案各一条:act_number、session(人类可读,例如“2025 - Regular Session, 2025”)、link(法案自己的 PDF)、bill(法案编号)、flags(EC/RP/NS/RN中的任意子集 — Emergency Clause / Repealed / New Section / Renumbered)、source: "arkleg"和merged: false。空值([])表示索引显示在已检查的所有届会中都没有影响此引文的后续法案,而不是覆盖层加载失败(KV 索引缺失或格式错误时会直接抛出错误,与下文ar_search的 catchline 索引相同)。sessions_checked— 索引覆盖的每个两年期/届会,即使later_acts为空也会列出,以便调用方区分“没有变化”和“我们没有检查”。later_acts_data_as_of— 覆盖层最近一次生成的时间。- 每项法案的
date: null,如实如此——来源索引提供届会、法案编号和 PDF 链接,而非每项法案的颁布日期(该信息位于每项法案自己的 PDF 中,而不在索引里);根据届会年份猜测日期,还不如坦言没有日期。
来源:阿肯色州议会自己的“Code Sections Amended”工具(arkleg.state.ar.us/Acts/CodeSectionsAmended)调用了一个无需密钥的端点——/Acts/CodeSection?section=<title>&ddBienniumSession=<session>——该端点会返回某个两年期/届会中被影响的所有引文:引文、修订法案的编号和 PDF 链接、EC/RP/NS/RN 标记,以及法案编号。已通过线上验证,以及在生产 Cloudflare 账户上用一次性 wrangler dev --remote 边缘探测验证(2026-10-09/10):与笔记本电脑上的 curl 返回字节完全一致,HTTP 200,没有机器人拦截,也不需要 JavaScript 渲染。我们调用的是该州已经维护的索引——代理形式(根目录 CLAUDE.md 中的 mirror-needs-grant-proxy-does-not),与上文 ar_statute 自己的实时抓取相同。
如果某个条文未出现在 Release-78 快照中,却出现在覆盖层里,则会特别标记:ar_statute 的 found: false 响应会包含 later_acts_if_created——如果议会的索引显示有法案影响某条在 2020 快照中不存在的引文,这可能意味着该条文是在快照日期之后新增的,不一定是引文错误。
密西西比州和田纳西州(下一步):复用,不要重新推导。 阿肯色州的情况很省力,因为议会直接发布了引文→法案索引;密西西比州和田纳西州没有(见 docs/current-statute-routes.md),因此它们的覆盖层需要从已签署法案的文本中抓取数据,自己构建索引,而不能依赖州维护的端点。可以直接沿用的内容包括:响应结构(later_acts/sessions_checked/later_acts_merged_into_text: false/“绝不改写 text”规则)、预生成索引 + KV 注入模式(将新导出追加到 catchline 索引已使用的同一个 src/<xx>-index-data.ts 文件——pack-baked-indexes.json 中每个 pack slug 对应一个文件,而不是新增第二条注册项)、优先发现届会而非硬编码的技巧(读取实时 <select>,而不是固定的届会列表,以便索引随新一届召开而自动扩展),以及用于刷新工作流的 scripts/bake-later-acts.mjs → scripts/<xx>-later-acts-refresh.yml 结构。
已知不足
ar_search只匹配官方标题行,不搜索完整法条文本——每次查询都获取全部 28 个数 MB 的标题页面并不可行。若某个主题只在章节正文中提及,而标题行中没有出现,就无法找到。- 每个响应都明确注明 Release 78(2020-11-06)。目前找不到任何免费发布的第 78 版之前(或 2012 年之前)的法条文本。
刷新内置索引
src/ar-index-data.ts 包含两个独立构建的表,它们都会通过 workers/gateway/src/pack-baked-indexes.json 从 KV 注入为一个组合的 _bakedIndex 对象,而不是打包在一起(fleet #2754:通过值导入的数 MB 表会加载到每个网关隔离区,无论它是否会为此包提供服务):
AR_SECTIONS/AR_TITLES—ar_search的标题行索引,共 28 个标题、37,369 行。使用node scripts/bake-index.mjs > src/ar-index-data.ts重新构建(会覆盖文件——见下文)。仅当unicourt.github.io/cic-code-ar发布高于 78 的版本时才重新运行。AR_LATER_ACTS/AR_LATER_ACTS_SESSIONS_CHECKED—ar_statute的覆盖索引(fleet #2906),约 8,900 行,涵盖自 2020-11-06 以来举行的 12 次会议。使用node scripts/bake-later-acts.mjs >> src/ar-index-data.ts重新构建(追加)。每次阿肯色州立法会议休会且法案签署后都要重新运行——定时版本见.github/workflows/arkansas-later-acts-refresh.yml。会议发现过程会自动运行(读取arkleg.state.ar.us/Acts/SearchByRange上的实时<select>),因此出现新会议时无需更改代码。
完整重新生成(两个表):
node scripts/bake-index.mjs > src/ar-index-data.ts
node scripts/bake-later-acts.mjs >> src/ar-index-data.ts
完成任一操作后(从仓库根目录)运行 node ../../scripts/check-baked-indexes.mjs——它会像 KV 上传器一样动态导入重新生成的文件,并在空导出数组进入部署流程前拒绝该文件。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"arkansas-code": {
"url": "https://gateway.pipeworx.io/arkansas-code/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/arkansas-code/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 都连接到同一个网关和相同的 1872+ 个数据源。唯一的区别是直接列出哪个包的工具;无论使用哪一个,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/ar_statute \
-H 'Content-Type: application/json' \
-d '{"citation":"5-10-101"}'
首次调用无需账号。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/ar_statute。查找工具:使用 {"query":"..."} 调用 POST https://gateway.pipeworx.io/v1/tools/search_packs。
独立运行(无需网关账号)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账号,也无需经由网关往返:
{
"mcpServers": {
"arkansas-code": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-arkansas-code"]
}
}
}
或者直接运行以确认它能启动:
npx -y @pipeworx/mcp-arkansas-code
它通过 stdin/stdout 使用 MCP 通信,并仅针对此包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接所添加的任何共享元工具。相同的源代码、相同的工具,不提供 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗的英语提问,而不是直接调用工具—— 这既适用于上方的 pack 端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Arkansas Code data" })
网关会选择合适的工具并自动填充参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。