mcpField
A
Arkansas Code

Arkansas Code

远程服务
pipeworx.io法律与政务06 天前更新

关于 Arkansas Code

Arkansas Code 是用于按引文查询阿肯色州法规、按主题搜索条目标题的 MCP 服务。它将截至 2020-11-06 的法规文本快照与单独列出的后续法案索引并置,且不会将后续法案合并进文本。

主要功能

  1. 01按引文获取法规文本和立法沿革
  2. 02搜索 28 个标题中的条目标题
  3. 03单独列出涉及该条文的后续法案
  4. 04标明快照与索引的日期
  5. 05免密访问并支持本地 stdio 模式

适用场景

  1. 01核查阿肯色州条文及其立法沿革
  2. 02通过官方条目标题关键词查找条文
  3. 03查看后续法案且不将其视为已合并文本
  4. 04将阿肯色州法规工具接入 MCP 客户端

MCP 相关

向 MCP 客户端提供 `ar_statute` 和 `ar_search`,支持托管网关端点及独立 stdio 服务。条文查询返回法规文本,并将后续法案索引单独列出。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/arkansas-code/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

43
参数类型必填说明
qstring否question 的别名。
askstring否question 的别名。
textstring否question 的别名。
inputstring否question 的别名。
packsarray否可选。将路由限制为这些包的 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(绝不会返回空答案)。
querystring否question 的别名。
promptstring否question 的别名。
messagestring否question 的别名。
questionstring是用自然语言表达的问题或请求。支持 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。