mcpField
M
Michigan Code

Michigan Code

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

Michigan Code について

Michigan Code は、ミシガン州法を条文番号で検索するサービスです。州法の本文を返し、データの取得元と日付を示します。保存済みデータで回答できない場合は、ライブ取得に切り替えます。

主な機能

  1. 01条文番号で法令を検索
  2. 02法令本文と見出しを返却
  3. 03保存データかライブ取得かを表示
  4. 04データ日付とキャッシュ状態を提示
  5. 05保存本文がない場合はライブ取得

活用シーン

  1. 01番号からミシガン州法を調べる
  2. 02条文本文と見出しを確認
  3. 03法令テキストの日付と取得元を確認
  4. 04保存データにない条文をライブ取得

MCP 対応

ミシガン州法の検索ツールを MCP クライアントに提供します。Pipeworx ゲートウェイ経由、またはローカルの stdio MCP サーバーとして利用できます。

設定

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

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

ツール

詳細

Michigan Compiled Laws

引用番号で Michigan Compiled Laws を参照します。キーは不要です。750.316 は第一級殺人です。

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

このソースの検証方法については docs/state-law-probe.md をご覧ください。各州のパックでは、提供開始前に MISS と HIT を区別できることを確認しています。州のサイトの中には、存在しない法令にも HTTP 200 を返すものが複数あるためです。

text に含まれるもの(fleet #3598)

text は法令本文です。Michigan Legislature が公開する、条項の見出しと本文が含まれます。制定または改正した公法とその発効日を記載した History 行、編集者注、解説は含まれません。すべての呼び出しでライブ読み取りを行っていた頃は、これらも text に含まれていたため、History 行を解析していた呼び出し元が得られる情報は以前より少なくなります。ただし、法令本文自体から失われた情報はありません。各応答には、どの範囲のテキストかを示す text_scope フィールドが含まれます。保存済みコピー(served_from: "stored-copy")には法令本文のみが含まれます。一方、ライブフォールバックでは条項番号以降のページテキストが返され、History や編集者注が含まれる場合もあります。廃止された条項は、廃止注記をテキストとして保存します。

保存済みコピーと data_as_of(fleet #3546)

議会のサイトは米国内のデータセンターからのアクセスには応答しますが、シンガポールからのアクセスは拒否するか応答を遅らせます。外部の呼び出し元がシンガポールからアクセスした場合、7日間で成功は3回、「down」は98回、「forbidden」は23回でした。キャッシュでは初回アクセスを補えないため、Michigan Compiled Laws は章番号ごと(引用番号のピリオドより前の部分)に1つの JSON オブジェクトとして共有の法令ストア(R2、statutes/mi/)に保存します。このストアは Illinois、Indiana、North Carolina、Wisconsin、Wyoming の各パックも使用しています。ゲートウェイはパックに R2 バインディングを渡し、パックは呼び出しで指定されたオブジェクトだけを読み取ります(非常に大きな章は小さなヘッダーと複数のパートに分かれており、呼び出しではヘッダーと1つのパートを読み取ります)。該当する条項が見つかると、上流へのリクエストなしで応答します。応答には 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

ソースは、議会が公開する Compiled Laws のテキストです。章ごとに1ファイルで、独自の自動収集ポリシーに従って読み取ります(最大で1秒あたり1リクエストです。この更新では章ファイルごとに1回リクエストし、リクエスト間隔を2秒空けます)。廃止された条項は、廃止注記とともに保存されます。リクエストは順番に行い、リクエスト間に遅延を設け、正直なユーザーエージェントを使用し、再試行回数に上限を設け、最初の429/403/451で停止します。終了コードが0になるのは、すべての章を取得・解析し、合計数が基準値(デフォルトで200章、テキストのある条項が15,000件)を上回った場合のみです。それに満たない場合は件数を示して終了コード1になります。テキストに変更がない章は、以前の data_as_of を保持します。生成したファイルは作業用コピーであり、コミットされません(.bake/ は gitignore 対象です)。upload-chapters.mjs は statutes/mi/_manifest.json に記録されたものと内容ハッシュが異なるファイルだけを書き込むため、新しい内容がない場合、更新による書き込みは発生しません。オペレーターのログインを使用して wrangler r2 object put --remote を実行します。API トークンは不要です。

データソース

Michigan Legislature、Michigan Compiled Laws。ミシガン州の法令は公的記録です。

ライブフォールバックの鮮度

ライブパスでは、セクションは1日に最大1回だけ読み込まれます。立法機関のサイトにアクセスできない場合は、同じセクションの以前のコピーで応答し、その旨を示します(served_from: "stale-cache"、stale: true、data_as_of)。以前のコピーがないセクションでは、ファイアウォールによるブロックを理由の1つとして示すエラーが発生します。

クイックスタート

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

コメント

MCP は初めてですか?

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

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