mcpField
C
colregs-mcp

colregs-mcp

本地服务
github.com/mark-brannan法律与政务02 天前更新

关于 colregs-mcp

colregs-mcp 是回答 COLREGS 规则问题的 MCP 服务,适用于查询国际规则文本与船舶灯号判定。回答附段落引用和逐字规则文本;这是使用预发布规则数据的预览版本,明确不可用于航行决策。

主要功能

  1. 01评估船舶情境与规则义务
  2. 02列出合法灯号组合及其情态
  3. 03返回遭遇判断和合规状态
  4. 04按条款检索逐字规则文本
  5. 05查询灯具定义与布置

适用场景

  1. 01核对特定情境适用的 COLREGS 条款
  2. 02查看灯号颜色、弧度和位置定义
  3. 03追溯评估结果引用的规则原文

MCP 相关

作为 MCP 服务向客户端提供 evaluate、rule_text 和 light 工具。评估结果附有条款引用及对应的逐字规则文本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mark-brannan-colregs": {
"command": "npx",
"args": [
"-y",
"colregs-mcp"
]
}
}
}
启动命令npx -y colregs-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcolregs-mcp0.0.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

colregs-mcp

警告

请勿用于航行。 这是一个基于预发布规则数据构建的预览版(0.0.x)。 请勿依据其输出决定在水面上采取何种行动。 工具接口可能随时变更,恕不另行通知。

一个回答《国际海上避碰规则》(COLREGS)相关问题的 MCP 服务。每个回答都附有段落引用,以及这些引用所对应的规则原文,确保大模型无法悄然简化内容。规则由 colregs-engine 评估;此软件包只负责决定如何写出答案。

试用

Claude Code:

claude mcp add colregs -- npx -y colregs-mcp

Claude 连接器目录: 在 Claude 中打开“设置”→“连接器”, 搜索 COLREGS 并点击“连接”。无需配置。

其他 MCP 客户端: 命令为 npx,参数为 -y colregs-mcp,无需 环境变量。

从克隆的仓库运行:

git clone https://github.com/mark-brannan/colregs-mcp && cd colregs-mcp && npm install && npm run build

然后运行命令 node,参数为 /absolute/path/to/colregs-mcp/dist/cli.js。

工具

工具输入返回内容
evaluatecircumstances一次评估:appraisal、signals、indicated、compliance
rule_textciteCOLREGS 段落原文
lightid一种灯的定义:颜色、特征、弧度、位置
evaluate

circumstances 表示一艘船舶所处的整体情况:self(本船的事实)、others(其他每艘船舶,以及已知或观察到的相关情况)和 conditions(能见度、环境)。一次调用会评估整体情况;响应会提供四种解读。

  • signals:self 可以显示的所有完整且合法的灯光组合。每盏灯都附有其情态(shall、may、shall-if-practicable)及规定该灯的段落。
  • appraisal:规则对 self 单独适用时的要求,以及针对每艘其他船舶的要求:会遇类型、是否断定存在碰撞危险,以及各船舶的责任(直航、让路、不得妨碍)。
  • indicated:对每艘其他船舶而言,其观察到的灯光、号型和声响所表明的可能船舶类型。
  • compliance:针对一段按时间采样的情况轨迹,按船舶和已触发的义务分别给出一个判定:已遵守、已违反或待定。

每个 id 都附有对应段落的引用,而 cited_paragraphs 则包含响应引用的每个段落的原文。输入词汇表在启动时由 colregs 数据包生成。任何不在词汇表内的键或值都会报错,不会返回空答案。

rule_text

接受段落路径,例如 25(b) 或 26(c)(i);也接受裸规则编号,例如 25(表示该规则的所有段落);还接受范围,例如 24(a)(ii)-(iv)。返回从美国海岸警卫队(USCG)汇编版《航行规则》中转录的国际规则文本,并附上来源和检索日期。

light

接受响应中出现的灯具 id,例如 light:sidelights 或 light:all_round。返回规则 21 的定义:颜色、特征、以度为单位的弧度和位置。

示例

一艘正在航行、单独航行的 12 m 单桅帆船。

{
  "circumstances": {
    "self": {
      "fact:propulsion": "propulsion:sail",
      "fact:activity": "activity:none",
      "fact:position": "position:underway",
      "fact:length_m": 11.6
    }
  }
}

精简后的响应:

{
  "colregs": { "version": "0.3.4" },
  "signals": {
    "applied": [
      { "id": "rule:25a", "cite": "25(a)", "modality": "modality:shall" },
      { "id": "rule:25b", "cite": "25(b)", "modality": "modality:may" },
      { "id": "rule:25c", "cite": "25(c)", "modality": "modality:may" }
    ],
    "lawful_displays": {
      "count": 3,
      "relation": "any_one_of",
      "options": [
        {
          "option": 1,
          "of": 3,
          "lights": [
            {
              "light": "light:sidelights",
              "modality": "modality:shall",
              "prescribed_by": { "id": "rule:25a", "cite": "25(a)" }
            },
            {
              "light": "light:sternlight",
              "modality": "modality:shall",
              "prescribed_by": { "id": "rule:25a", "cite": "25(a)" }
            }
          ]
        },
        { "option": 2, "of": 3, "...": "..." },
        { "option": 3, "of": 3, "...": "..." }
      ]
    },
    "modality_key": { "modality:shall": "mandatory", "modality:may": "permitted alternative" },
    "cited_paragraphs": {
      "25(a)": "A sailing vessel underway shall exhibit: (i) sidelights; (ii) a sternlight.",
      "25(b)": "…",
      "25(c)": "…"
    }
  },
  "appraisal": { "self": { "...": "..." }, "others": [] },
  "indicated": []
}

这艘单桅帆船有三种合法的灯光组合,因为规则赋予了选择权,而输入内容无法确定应采用哪一种。

docs/demo.md 使用相同的问题询问同一个模型,分别展示未使用和使用此服务时捕获的答案。

响应结构

每个响应都具备以下三个特性:

  1. 引用原文。 每个条目 ID 都与其段落引文一同提供,且 cited_paragraphs 包含每个被引用段落的文本。响应中唯一的句子来自规则本身。
  2. 每个灯号单独标注情态。 每个灯号都保留 shall、may 和 shall-if-practicable,不按整个显示内容归纳。modality_key 是一行简明词汇表,列出响应使用的情态。
  3. 设计上支持多个选项。 lawful_displays 先列出 count 和 relation,再显示任何灯号;每个选项都自行标注 n of count。顶层没有容易被误认为答案的 lights 字段。

依法无需显示任何灯号的船舶,会得到一个空显示选项,而非错误。只有输入超出词汇范围时才会返回错误。

每个响应都包含 colregs.version。如果服务器自带的 colregs 与引擎所用版本不一致,服务器将拒绝启动。

依赖项

colregs-engine 和 colregs 都从 GitHub main 安装,而非从 npm 发布版本安装;锁文件会锁定提交。两者必须解析为相同版本。

隐私政策

服务器不会收集任何信息。它以本地 stdio 进程运行,根据旁边安装的 colregs 数据包提供响应,并且自身不会发起网络请求。没有遥测,不会记录收到的请求,也不需要账户。唯一的网络事务是安装,而这由 npm 完成。

发布

从发布标签自动执行:发布到 npm 和 MCP registry,并在 GitHub Release 上提供 .mcpb 包。其余需要手动完成的步骤见 docs/releasing.md。

许可证

AGPL-3.0-only。沿用 colregs 中的适航性免责声明。

评论

支持 Markdown

第一次接触 MCP?

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

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