mcpField
A
Alabama Code

Alabama Code

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

关于 Alabama Code

Alabama Code 是用于查询和搜索阿拉巴马州现行法规的 MCP 服务,面向州法研究场景,实时访问州议会 API,并提供修订引文和已通过但尚未生效的版本。

主要功能

  1. 01按引文获取法规正文
  2. 02全文搜索法规条文
  3. 03返回修订历史引文
  4. 04显示已通过的待生效版本
  5. 05提供前后相邻条文引文

适用场景

  1. 01按引文查询阿拉巴马州法规
  2. 02按主题关键词查找条文
  3. 03核对修订历史及未来生效文本

MCP 相关

向 MCP 客户端提供法规查询和全文搜索工具,可作为本地 stdio 服务运行或通过 Pipeworx 网关连接。

配置

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

服务地址https://gateway.pipeworx.io/alabama-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/alabama-code

《1975 年阿拉巴马州法典》(阿拉巴马州法规)——按引文查询完整条文、进行真实的全文主题搜索,并查看修订历史。

属于 Pipeworx——连接 AI Agent 与 1872+ 个实时数据源的 MCP 网关。这是一项独立、非官方的集成,与上游提供方无关联、未获其认可,也非其发布。

工具

  • al_statute(citation) — 查询《阿拉巴马州法典》某一条款的完整现行文本(例如 "13A-6-2",谋杀),并提供条款标题、立法机构自己的修订历史引文列表(amendment_history)、废止/转移状态、前后相邻条款,以及——若某项法案已颁布但尚未生效——包含未来生效日期和文本的前瞻性 pending_version。
  • al_search(query, limit?) — 对实际条款正文进行真正的全文搜索(例如 "landlord"、"concealed pistol permit"),实时调用阿拉巴马州立法机构自己的搜索索引。与若干同类州法典包不同,本工具不局限于标题/条款标题。

认证

无需密钥。

数据源

  • https://alison.legislature.state.al.us/graphql — 阿拉巴马州立法机构自己的公开 GraphQL API,已确认无需密钥,且可从 Cloudflare Worker 出口访问(经过边缘探测,而非仅在笔记本电脑上测试)。两个工具都按请求实时调用此 API;没有任何数据是预置的。
    • query codeOfAlabamaSection($displayId: String!) — 查询某一条款的当前文本(以及存在时的待生效未来文本)、标题和修订历史字符串,并通过 codeOfAlabamaNeighbors 查询前后相邻的引文。
    • query searchCodeOfAlabama($query: String!, $limit: Int, $offset: Int) — 对条款正文 content 进行全文搜索(使用 fullTextQuery 参数),而不只是搜索标题;返回与 limit 无关的匹配总数 count。

已规避的陷阱:存在两个外观类似 GraphQL 的主机,但只有一个提供法规数据。 cms.alison.legislature.state.al.us 也会响应 POST /graphql(它提供网站的营销/CMS 内容——页面文案、徽标资源等),并会对每个法规查询返回一个看似合理的 400 错误(Cannot query field "codesOfAlabama" on type "Query"),因为它是另一项服务,使用不同的架构;这并非此工具包的查询格式有误。真正的法规 API 位于主站自己的域名 alison.legislature.state.al.us/graphql(此地址是在页面自身 HTML 中的普通内联 URL 引用里找到的,并非通过猜测构建配置就能发现),并通过从定义这些查询的 Next.js 分块包中直接提取 codeOfAlabamaSection/searchCodeOfAlabama 的查询文本予以确认。

已规避的陷阱:GraphQL 端点在查询级错误时仍会返回 HTTP 200。 查询格式错误或与架构不匹配时,响应状态仍为 200,但响应正文中会包含 errors 数组,而不是 4xx。al_statute/al_search 会读取响应正文并明确检查 errors,然后抛出明确指出 GraphQL 错误信息的错误;两个工具都不会将其改写为 found: false。

能力——三项现已可用,另有一项面向未来,而非回溯历史

  • 引文查询——al_statute。
  • 主题/全文搜索——al_search,搜索真实的条文正文 (已通过实时验证:"landlord" 匹配 88 个条文,其中包括标题中完全没有出现 "landlord" 的条文)。
  • 修正/制定历史——可用。每条现行有效条文的 history 字段都来自 API,是立法机构自己的法案引文列表 (例如 "(Acts 1977, No. 607, p. 812, §2005; Act 2016-29, §2.)"),并以 amendment_history 返回,其中的 §/& 实体已解码。
  • 历史版本(修正前的文本)——无法回溯。ALISON 仅发布当前现行有效的文本:没有按年份存档,也没有“查看截至某日版本”的日期选择器;对于某条引文,codeOfAlabamaSection 最多只会返回一条 过去 版本(已对若干经修正的条文进行实时检查)。但有时会返回一条 未来 版本——如果立法机构已经通过一项尚未生效的修正,同一查询就会返回第二个版本,其 effectiveDate 是该版本生效的日期。al_statute 会将其作为 pending_version 显示(已对 26-2-2 进行实时验证,该版本依据 Act 2026-488 于 2027-01-01 生效),并明确说明这是面向未来的版本,而非历史存档。

来源与结构——处理解析器前请先阅读

alison.legislature.state.al.us(“ALISON”)是一个 Next.js 单页应用——8 月的州法律调查(docs/state-law-probe.md)正确指出其 HTML 外壳“由客户端渲染或受到机器人屏蔽”(其中完全不包含任何法规文本),但调查止步于浅了一层的位置,就像它对 South Dakota 和 Utah 的调查结论有误一样。该单页应用由一个无需密钥的公开 GraphQL API 提供数据(与 South Dakota/North Dakota 不同,不是 REST)——通过下载网站自身的 /_next/static/chunks/*.js 代码包,并搜索 query codeOfAlabamaSection 找到该 API。此处正是本工具包 SECTION_QUERY/SEARCH_QUERY 常量所用查询文本的原始出处。

引文格式为标题-章-条(13A-6-2);标题可能带有尾随字母(13A、26-2A)。al_statute 的正则表达式接受 2 或 3 个以连字符分隔的部分,并允许带可选的小数后缀,与同系列工具包的验证格式一致。

与 mcps/south-dakota-code 或 mcps/north-dakota-code 不同,此工具包没有内置索引:ALISON 自带的 searchCodeOfAlabama 查询会对条文正文内容进行真正的全文搜索,因此无需构建索引——离线索引只会增加过时风险(《法典》会按照立法机构自己的时间表加入未来生效的待处理版本),却不会比实时查询更准确。

已知局限

  • 没有按年份存档的历史版本——参见上文“历史版本”。
  • al_search 会对正文内容进行全文搜索,但仍是关键词式搜索(不支持短语/布尔查询语言)——这是立法机构自己的搜索后端,不是 Pipeworx 的。

快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "alabama-code": {
      "url": "https://gateway.pipeworx.io/alabama-code/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/alabama-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/al_statute \
  -H 'Content-Type: application/json' \
  -d '{"citation":"13A-6-2"}'

首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/al_statute。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。

独立运行(无需网关账户)

此软件包也可以作为本地 stdio MCP 服务运行 — 无需 Pipeworx 账户,也无需往返网关:

{
  "mcpServers": {
    "alabama-code": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-alabama-code"]
    }
  }
}

或者直接运行以确认它能正常启动:

npx -y @pipeworx/mcp-alabama-code

它通过 stdin/stdout 使用 MCP 协议,并仅针对此工具包的工具响应 initialize/tools/list/tools/call — 不包含上述网关连接提供的任何共享元工具。相同的源码、相同的工具,但没有 ask_pipeworx 路由。

使用 ask_pipeworx

你可以用通俗的语言提问,而不是直接调用工具 — 这既适用于上面的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Alabama Code data" })

网关会选择合适的工具并自动填写参数。

更多内容

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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