关于 Alabama Code
Alabama Code 是用于查询和搜索阿拉巴马州现行法规的 MCP 服务,面向州法研究场景,实时访问州议会 API,并提供修订引文和已通过但尚未生效的版本。
主要功能
- 01按引文获取法规正文
- 02全文搜索法规条文
- 03返回修订历史引文
- 04显示已通过的待生效版本
- 05提供前后相邻条文引文
适用场景
- 01按引文查询阿拉巴马州法规
- 02按主题关键词查找条文
- 03核对修订历史及未来生效文本
MCP 相关
向 MCP 客户端提供法规查询和全文搜索工具,可作为本地 stdio 服务运行或通过 Pipeworx 网关连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/alabama-code/mcpclaude mcp add --transport http pipeworx-io-alabama-code https://gateway.pipeworx.io/alabama-code/mcp{"mcpServers":{"pipeworx-io-alabama-code":{"type":"http","url":"https://gateway.pipeworx.io/alabama-code/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-alabama-code":{"type":"http","url":"https://gateway.pipeworx.io/alabama-code/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-alabama-code":{"type":"http","url":"https://gateway.pipeworx.io/alabama-code/mcp"}}}{"mcpServers":{"pipeworx-io-alabama-code":{"serverUrl":"https://gateway.pipeworx.io/alabama-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/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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。