关于 Michigan Code
Michigan Code 按引文查询密歇根州编纂法,适用于需要查阅州法规原文的用户。它提供章节文本,并标注数据来源与时效;存储副本无法回答时会尝试实时读取。
主要功能
- 01按法规引文查询章节
- 02提供法规条文与标题
- 03标注存储副本或实时来源
- 04返回数据日期与缓存状态
- 05缺少存储内容时回退实时读取
适用场景
- 01按编号查阅密歇根州法条
- 02检查法规文本及标题
- 03确认所用文本的日期与来源
- 04在存储副本无条文时请求实时内容
MCP 相关
向 MCP 客户端提供密歇根州法规查询工具,可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/michigan-code/mcpclaude mcp add --transport http pipeworx-io-michigan-code https://gateway.pipeworx.io/michigan-code/mcp{"mcpServers":{"pipeworx-io-michigan-code":{"type":"http","url":"https://gateway.pipeworx.io/michigan-code/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-michigan-code":{"type":"http","url":"https://gateway.pipeworx.io/michigan-code/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-michigan-code":{"type":"http","url":"https://gateway.pipeworx.io/michigan-code/mcp"}}}{"mcpServers":{"pipeworx-io-michigan-code":{"serverUrl":"https://gateway.pipeworx.io/michigan-code/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Michigan Compiled Laws
按引文查询 Michigan Compiled Laws。无需密钥。750.316 是一级谋杀罪。
属于 Pipeworx 的一部分 — 一个将 AI Agent 连接到 1882+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方无关联、未获其认可,也非由其发布。
请参阅 docs/state-law-probe.md,了解如何验证此数据源:每个州级数据包在发布前都会确认 MISS 与 HIT 可以区分,因为有几个州的网站会对不存在的法规返回 HTTP 200。
text 包含什么(fleet #3598)
text 是法规条文:Michigan Legislature 发布的 Compiled Laws 中该条款的标题和正文。不包含 History 行(制定或修订该条款的公共法案及其生效日期)、编辑注释或评论。过去每次调用都是实时读取时,这些内容会包含在 text 中,因此现在解析 History 行的调用方获取的内容会比以前少;法规本身没有任何内容丢失。每个回答都带有 text_scope 字段,说明文本范围:存储副本(served_from: "stored-copy")仅包含法规文本,而实时回退会返回从条款编号开始的页面文本,仍可能包含 History 和编辑注释。废止条款存储时会将废止说明作为其文本。
存储副本和 data_as_of(fleet #3546)
Legislature 的网站可响应美国数据中心的请求,但会拒绝或延迟来自新加坡的请求:在 7 天内,外部调用方从新加坡发出的请求仅成功 3 次,另有 98 次显示“down”、23 次显示“forbidden”。缓存无法帮助首次访问,因此系统会存储 Michigan Compiled Laws:每个 MCL 章节编号(引文中点号前的部分)对应一个 JSON 对象,存放在共享法规存储(R2,statutes/mi/)中;Illinois、Indiana、North Carolina、Wisconsin 和 Wyoming 数据包也使用此存储。网关将其 R2 绑定交给数据包,数据包只读取调用指定的对象(非常大的章节会拆分为一个小型头部和多个部分;一次调用读取头部和其中一个部分)。在此找到的条款无需请求上游即可返回;响应会标注 served_from: "stored-copy",并附带 data_as_of(该章节最近一次从数据源读取的时间)。副本无法提供答案的条款(章节缺失、对象无法读取,或条目存在但没有存储文本)会回退到实时读取。系统绝不记录内容缺失的结果:章节稍后发布后,只要存在,就会立即提供。
不会在模块作用域加载任何内容:数据不会进入网关构建包。
刷新
node mcps/michigan-code/scripts/bake-chapters.mjs # all chapters -> mcps/michigan-code/.bake/
node mcps/michigan-code/scripts/bake-chapters.mjs --only X # one chapter
node mcps/michigan-code/scripts/bake-chapters.mjs --resume # keep source pages already fetched
node mcps/michigan-code/scripts/upload-chapters.mjs # publish to R2 (statutes/mi/), changed files only
数据源是 Legislature 发布的 Compiled Laws 文本,每个章节一个文件;读取遵守其自动采集政策(最多每秒一次请求;此次刷新对每个章节文件发出一次请求,每次间隔两秒)。废止条款存储时会附带废止说明。按顺序执行请求,每次请求之间都有延迟,使用真实的用户代理,限制重试次数,并在首次遇到 429/403/451 时停止。只有在所有章节都已获取并解析,且总数达到下限(默认 200 个章节、15,000 个含文本的条款)时,才以状态码 0 退出;不满足时以状态码 1 退出并显示数量。文本未变的章节会保留此前的 data_as_of。烘焙文件是工作副本,不会提交(.bake/ 已加入 gitignore);upload-chapters.mjs 只会写入内容哈希与 statutes/mi/_manifest.json 中记录值不同的文件,因此如果刷新没有发现新内容,就不会写入任何内容。它会在操作员登录状态下使用 wrangler r2 object put --remote;无需 API 令牌。
数据源
Michigan Legislature,Michigan Compiled Laws。Michigan 法规属于公共记录。
实时回退的数据新鲜度
在实时路径中,每个章节每天最多读取一次。如果无法访问立法网站,则会使用同一章节的较早副本作答,并在响应中说明这一点(served_from: "stale-cache"、stale: true、data_as_of)。如果某章节没有较早副本,则会返回错误,其中会将防火墙拦截列为可能原因之一。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"michigan-code": {
"url": "https://gateway.pipeworx.io/michigan-code/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/michigan-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 都连接到同一个网关和同样的 1882+ 个数据源。唯一的区别是直接列出哪个工具包的工具;从任一端点都可以通过 ask_pipeworx 访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/mi_compiled_law \
-H 'Content-Type: application/json' \
-d '{"section":"750.316"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/mi_compiled_law。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需通过网关中转:
{
"mcpServers": {
"michigan-code": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-michigan-code"]
}
}
}
或者直接运行,确认它可以启动:
npx -y @pipeworx/mcp-michigan-code
它通过 stdin/stdout 使用 MCP,并针对仅此工具包的工具响应 initialize/tools/list/tools/call——不包含上方网关连接额外提供的共享元工具。数据源相同,工具相同,但没有 ask_pipeworx 路由功能。
与 ask_pipeworx 配合使用
你也可以用日常语言提问,而不是直接调用工具——此功能既适用于上方的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Michigan Code data" })
网关会自动选择合适的工具并填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。