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 で「Settings → Connectors」を開き、 COLREGS を検索して「Connect」をクリックします。設定は不要です。

その他の 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 を指定します。

ツール

ツール入力返される内容
evaluatecircumstances1 回分の評価:appraisal、signals、indicated、compliance
rule_textciteCOLREGS の段落の原文
lightid1 つの灯火の定義:色、光質、光弧、設置位置
evaluate

circumstances は、1 隻の船舶が置かれている状況全体を表します。self(自船の事実)、 others(他船ごとの情報。既知または観測された内容を含みます)、および conditions(視界、環境)で構成されます。1 回の呼び出しで状況全体を評価し、 応答では 4 つの観点から示します。

  • signals:self が表示できる、適法な灯火の完全な組み合わせ。各灯火には、 適用される義務の種別(shall、may、shall-if-practicable)と、それを 規定する段落が示されます。
  • appraisal:規則が self に単独で求めること、および他船ごとに求めること。 遭遇の種類、衝突のおそれがあると判断されるかどうか、各船舶の役割(保持船、 避航船、進路を妨げてはならない船)が示されます。
  • indicated:他船ごとに、観測された灯火、形象物、音響信号から、その船が どのような船舶である可能性があるかを示します。
  • compliance:時間経過に沿ってサンプリングした状況の軌跡について、 適用された各義務に対し、船舶ごとに 1 つの判定を返します。判定は、履行、 違反、または保留です。

すべての ID には段落の引用が付随し、cited_paragraphs には、応答が引用する すべての段落の原文が含まれます。入力語彙は、起動時に colregs データパッケージから 生成されます。定義にないキーや値は、空の回答ではなくエラーになります。

rule_text

25(b) や 26(c)(i) のような段落パス、規則の全段落を指定する 25 のような 規則番号、または 24(a)(ii)-(iv) のような範囲を受け取ります。USCG 統合版航行規則から 転記された国際的な原文を、出典と取得日とともに返します。

light

light:sidelights や light:all_round のように、応答に記載された灯火 ID を受け取ります。 色、光質、角度で表した光弧、設置位置を含む規則 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": []
}

規則で選択が認められており、入力からは選択が特定されないため、スループには 適法な表示方法が 3 つあります。

docs/demo.md では、同じ質問を同じモデルに対して、このサーバーを 使った場合と使わない場合で問いかけ、取得した両方の回答を示しています。

応答形式

すべての応答には、次の3つの性質があります。

  1. 引用付きで原文どおり。 すべての項目 ID は段落の引用とともに示され、cited_paragraphs には引用したすべての段落のテキストが含まれます。応答に含まれる文は、規則そのものだけです。
  2. 各表示にモダリティを適用。 shall、may、shall-if-practicable は表示ごとに維持され、表示単位で要約されません。modality_key は、応答で使用するモダリティを1行で示す用語集です。
  3. 複数の選択肢を前提とした構造。 lawful_displays は、灯火が現れる前に count と relation から始まり、各選択肢には n of count という番号が付きます。回答と誤認される可能性のあるトップレベルの lights フィールドはありません。

合法的に何も表示しない船舶には、エラーではなく、空の表示が1つ割り当てられます。エラーは、入力が語彙の範囲外である場合に限られます。

すべての応答に colregs.version が含まれます。サーバーは、自身の colregs とエンジンの colregs が異なるリリースの場合、起動を拒否します。

依存関係

colregs-engine と colregs は npm リリースではなく GitHub の main からインストールされ、ロックファイルによってコミットが固定されます。両者は同じリリースに解決される必要があります。

プライバシーポリシー

サーバーは何も収集しません。ローカルの stdio プロセスとして実行され、隣にインストールされた colregs データパッケージを使って応答し、独自にネットワークリクエストを行うことはありません。テレメトリーはなく、受け取った内容のログ記録もなく、アカウントもありません。唯一のネットワーク通信はインストール時のもので、これは npm によるものです。

リリース

リリースタグから自動的に公開されます。公開先は npm、MCP レジストリ、および GitHub Release 上の .mcpb バンドルです。残りの手動手順については、docs/releasing.md を参照してください。

ライセンス

AGPL-3.0-only。航行適合性に関する免責事項は、colregs に記載されたものが適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。