mcpField
W
Wyoming Code

Wyoming Code

リモート
pipeworx.io法務・行政02 週間前に更新
リポジトリ公式サイト

Wyoming Code について

Wyoming Codeは、ワイオミング州の現行法令を調べる開発者や研究者向けのMCPサーバーです。44の対象タイトルを条文番号で検索でき、全文検索にも対応しますが、過去の版は提供しません。

主な機能

  1. 01条文番号による条文検索
  2. 0244タイトルの全文検索
  3. 03条文見出しと利用可能な沿革の返却
  4. 04事前取得データを使用しPDFをフォールバックに利用

活用シーン

  1. 01指定した条文の現行テキストを確認
  2. 02トピックから法令全文を検索
  3. 03条文に制定履歴の注記があるか確認

MCP 対応

MCPクライアントに `wy_statute` と `wy_search` を公開します。Pipeworxのゲートウェイ経由、または単独のstdioサーバーとして利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/wyoming-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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

ワイオミング州法(W.S.)

引用によるワイオミング州法の検索、および全文のトピック検索に対応しています。API キーは不要です。

Pipeworx の一部です。AI エージェントを 1819 以上のライブデータソースに接続する MCP ゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとは提携、推奨、公開のいずれも行っていません。

ソース(フリート #2744)

ワイオミング州立法サービス局(wyoleg.gov)は、「Wyoming Statutes & Constitution」ページで Angular SPA を運用しています。2026-10-06 に実環境を調査し、SPA 自身の JS バンドル(main-*.js、および StateStatutesModule 用に遅延読み込みされる chunk-_lXRwsur.js)をダウンロードして、API ベース URL や lsoservice.wyoleg.gov への参照を検索しましたが、法令本文に関するものは見つかりませんでした。「Download the Wyoming Statutes」ページは、各タイトルの PDF へのリンクを並べた静的なリストです。

https://wyoleg.gov/statutes/compress/title06.pdf   (Title 6, Crimes and Offenses)

同じ用途で挙げられていたもう一つの候補である .docx は存在しません。調査したすべての .docx パス(大文字・小文字や場所を変えたいくつかのパターン)は、SPA 独自のキャッチオールシェルを返します(HTTP 200 で、実際の 404 ではありません)。これはステータスコードではなく、content-type と長さを確認して検証しました。利用できるのは PDF のみです。

PDF の落とし穴と、shared/src/pdf-text.ts の拡張が必要だった理由

ワイオミング州のタイトル別 PDF は PDF 1.6 形式でリニアライズされており、Catalog と Pages ルートが圧縮オブジェクトストリーム(/Type/ObjStm)内に格納されています。この形式は、このパックを適用する前の shared/src/pdf-text.ts では明示的にサポートされていませんでした(同ファイルのヘッダーにも記載されていました。以前の唯一の利用先である Kentucky の PDF では、この形式に遭遇しませんでした)。Title 6 の PDF で直接確認したところ、5205 0 obj(Pages ルート)はファイル内にそのままの形では一度も現れず、展開された ObjStm 内のエントリーとしてのみ存在していました。また、Catalog オブジェクト自体は通常の形で存在しますが、同じオブジェクト内で /Type/Catalog より前にネストされた辞書(/MarkInfo<</Marked true>>)が現れると、元の検出用正規表現が機能しなくなります。ここでも同じ問題が起きており、ワイオミング州に固有の偶然ではありません。

将来、圧縮を行う生成元を使った PDF のみの州で同じ問題が生じるため、これらの問題はこのパック内で回避するのではなく、shared/src/pdf-text.ts 自体で修正しました(仕組みについては同ファイルのヘッダーを参照してください)。エンドツーエンドで検証済みです。Title 6(441 KB、210 ページ)は警告なしで 387,932 文字を抽出でき、W.S. 6-2-101(「第一級殺人」)も正しい本文を返します。

MB 単位のファイル — 呼び出しごとに全体を取得しない

このパックが対象とする 44 タイトルの PDF は、約 300 KB(Title 97、州憲法。対象外です。下記参照)から約 2.9 MB(Title 35、公衆衛生および安全)まであります。mcps/indiana-code と同様に、タイトルごとの JSON バンドルを共有の pipeworx-datasets R2 バケット(scripts/ingest-wyoming-statutes.mjs 経由で statutes/wy/<title>.json)に事前取得し、全文検索シャード(wy-statutes)も用意しています。wy_statute はバンドルから事前に切り出されたセクションを直接読み込みます。ライブ PDF の取得は、バンドルがまだ対象としていないタイトルの場合、または R2 バインディングのない単独インストール(ホスト環境ではない)の場合に限るフォールバックです。その場合も、取得するのは要求された 1 タイトルの PDF のみで、コーパス全体ではありません。

ツール

  • wy_statute(citation) — 引用を指定して、ワイオミング州法のセクション全文を取得します(「6-2-101」は Title 6 の第一級殺人、「20-1-105」は Title 20 の離婚事由です)。「6-2-101」、「W.S. 6-2-101」、「§ 6-2-101」を受け付けます。現在の本文とセクション見出しを返します。また、原文に明確な形で記載されている場合に限り、制定経緯を示す history 注記も返します(下記参照)。
  • wy_search(query, limit?) — 共有の FTS5 検索シャードを使用し、対象となる 44 タイトル全体の法令本文を全文検索します。一致した引用と見出しを返します。全文を取得するには wy_statute を呼び出してください。

引用

ワイオミング州の引用は、タイトル・章・セクションをハイフンで区切った形式です(例:「6-2-101」、「20-1-105」)。一部のタイトルには小数点を含む番号があります(例:「34.1-1-101」、統一商法典)。タイトル番号は PDF ファイル名にそのまま対応します(title06.pdf、title34.1.pdf、title99.pdf。1 桁のタイトル番号はゼロ埋めされ、それ以外はそのまま使用されます)。

タイトル全体からセクションを切り出す

Wyomingの抽出済みPDFテキストには、HTML形式の構造マーカー(Indianaの<div class="section" id="...">とは異なります)がありません。コンテンツストリームでは、相対的なTd/T*テキスト位置指定が使われており、このリポジトリのPDF抽出ツールが改行の追跡に使う絶対的なTmではないため、ページごとに長いテキストが連続しています。セクションの位置を特定するのは、引用そのものです。実際の見出しはすべて「N-N-N. キャプションテキスト.」という書式で組まれています(文の間に2つのスペースがあり、生のコンテンツストリームで確認済みで、全体を通して一貫して使われています)。ただし、引用の単純な一致だけでは不十分です。相互参照(「...W.S. 6-2-102の規定に従って判決が下された。」など)も、その末尾のピリオドの後に同じ2つのスペースを使っているため、単純な一致検索では実際の見出しと、同じ番号へのすべての本文中の相互参照の両方が見つかります。

このパックでは、Wyoming専用の方法を新たに考案するのではなく、共有のsliceSection「最も長いテキストを優先」ヒューリスティック(shared/src/statute-html.ts。Colorado/Iowa/Nevada/Oregonのパックファミリーですでに使用)を使います。対象の引用の後に2つのスペースが続くすべての文字列出現のうち、次の引用形式の境界までに最も多くのテキストがあるものが、実際の見出しです。特に6-2-101で検証済みです。Title 6でのそれ以外の出現は、直後に続く実際のセクション(6-2-202)の1文前にある相互参照だけなので、ほぼゼロの後続テキストとして判定され、明確に候補から外れます。取り込みスクリプトでは、タイトル全体を対象にした1回の処理で同じ「最長を優先」する原則を適用します。引用ごとではなく、引用別にすべての境界をまとめて処理します。これは、全件クロールでは検索対象となる単一の「ターゲット」がないためです。

4つの機能 — 2つは利用可能、2つは利用不可

  • 引用検索 — 利用可能、wy_statute。
  • トピック/全文検索 — 利用可能、wy_search。
  • 改正/制定履歴 — 限定的な対応のみ。一部のタイトル(例:99、Noncodified Statutes — 主に古い統一法の資料)では、セクションごとに整った末尾の括弧書き(Laws 1985, ch. ...)が記載されており、存在する場合、wy_statuteはこれを別個のhistoryフィールドに抽出します。Title 6(現在の刑法典に再編されたもの)には、このような末尾のブロックがありません。改正/廃止に関する注記は、サブセクションレベルで本文中に「(E) Laws 2020, ch. 90, § 3により廃止。」のように記載され、通常の法令本文として扱われます。これらを区別する構造マーカーはありません。ほとんどのセクションでhistoryはnullですが、これは抽出の失敗ではありません。
  • 過去のバージョン(特定の改正前のセクションの本文、または過去の年度版)— 利用できません。wyoleg.govの法令ページで提供されているのは現行版のみです(同サイトのダウンロードページによると「2026年7月1日時点で有効なもの」)。年度を指定するパラメーターも、アーカイブへのリンクもありません。「historical」/「archive」に関する記載がないかSPAバンドルをgrepして確認しましたが、見つかりませんでした。wy_statuteはフィールドを暗黙に省略せず、レスポンスで明示的にその旨を伝えます。

対象外

Title 97(Wyoming Constitution)では「N-N-N」ではなく「Article N, Section N」の形式で引用されています。これは文法がまったく異なるため、このパックの引用解析および取り込みスクリプトのタイトル一覧から除外しています。Wyoming Constitutionのパックを作る場合は、別のソースを使います。Title 99(Noncodified Statutes)では標準的な「N-N-N」方式が使われているため、対象に含まれています。

カバレッジ

タイトル・章・セクション形式の引用方式を使う全44タイトルです。1〜42、少数形式の34.1(Uniform Commercial Code)、および99(Noncodified Statutes)が含まれます。 取り込まれたセクションは21,268件です。

更新

node scripts/ingest-wyoming-statutes.mjs — 定期的に再実行してください(州議会は毎年開会するため、毎日の鮮度は必要ありません)。スケジュールは設定されていないため、scripts/ingest-indiana-statutes.mjsのパターンに従って手動で実行してください。PDF の抽出処理は、通常の JS として scripts/lib/pdf-text.mjs に重複して記述されています。これは shared/src/pdf-text.ts の extractPdfText を意図的に一行ずつ移植したものです。scripts/ からは、pnpm ワークスペースの各パッケージ独自の node_modules リンクがないと、素の @pipeworx/shared 指定を解決できないためです。詳しくは、このファイルのヘッダーを参照してください。

データソース

州議会の公式サイト(wyoleg.gov)です。ワイオミング州法は公的記録であり、ここで使用しているタイトルごとの PDF パスについて、再利用の制限は見つかりませんでした。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。

{
  "mcpServers": {
    "wyoming-code": {
      "url": "https://gateway.pipeworx.io/wyoming-code/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/wyoming-code/mcp の tools/list は、上の表に記載したツールに加え、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール群)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールと合わせて、およそ30個の共有ツールが一覧表示されます。接続の initialize 応答には正確な範囲が記載されており、その日の状況を確認する際の決定的な情報となります。

これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、このパックで扱わない質問にも、カタログ全体を横断してルーティングする ask_pipeworx を通じて回答できます。MCP サーバーをもう1つ追加する必要はありません。現在、メタツールを含めずにパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントに接続するのではなく、フルゲートウェイに一度だけ接続してください。

このパックのツールだけでなく、すべてのパックのツールを直接一覧表示するには、フル Pipeworx ゲートウェイに接続してください。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイと同じ 1819 以上のデータソースに接続します。異なるのは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使えばすべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP 経由で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/wy_statute \
  -H 'Content-Type: application/json' \
  -d '{"citation":"6-2-101"}'

最初の呼び出しにアカウントは不要です。ツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/wy_statute を実行してください。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行してください。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も不要です。

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

起動することを確認するには、直接実行してください。

npx -y @pipeworx/mcp-wyoming-code

stdin/stdout 経由で MCP を使用し、このパック独自のツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx の使用

ツールを直接呼び出す代わりに、自然な英語で質問できます。これは、上記のパックエンドポイントでもフルゲートウェイでも利用できます。

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

ゲートウェイが適切なツールを選び、引数を自動で入力します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

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

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