South Dakota Code について
South Dakota Codeは、法律の調査担当者や開発者向けに、South Dakota州法の条文を引用番号で取得し、公式見出しを検索できるサービスです。提供元が掲載する制定・改正履歴も分けて返しますが、過去時点の条文は取得できません。
主な機能
- 01引用番号による現行条文取得
- 02公式の条・章見出し検索
- 03制定・改正履歴の取得
- 04廃止状態と処分文の取得
活用シーン
- 01South Dakota州法の条文確認
- 02トピックやキーワードで規定を検索
- 03条文に記載された改正履歴の確認
MCP 対応
`sd_statute`と`sd_search`をMCPツールとして提供します。ローカルのstdio MCPサーバーとして、またはPipeworxゲートウェイ経由で利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/south-dakota-code/mcpclaude mcp add --transport http pipeworx-io-south-dakota-code https://gateway.pipeworx.io/south-dakota-code/mcp{"mcpServers":{"pipeworx-io-south-dakota-code":{"type":"http","url":"https://gateway.pipeworx.io/south-dakota-code/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-south-dakota-code":{"type":"http","url":"https://gateway.pipeworx.io/south-dakota-code/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-south-dakota-code":{"type":"http","url":"https://gateway.pipeworx.io/south-dakota-code/mcp"}}}{"mcpServers":{"pipeworx-io-south-dakota-code":{"serverUrl":"https://gateway.pipeworx.io/south-dakota-code/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/south-dakota-code
サウスダコタ州成文法(サウスダコタ州法令) — 引用による条文全文の取得、および公式の見出し語によるトピック/キーワード検索。
Pipeworx の一部です。AI エージェントを 1784 以上の稼働中データソースに接続する MCP ゲートウェイです。独立した非公式の連携機能であり、上流プロバイダーとの提携、承認、公開はありません。
ツール
sd_statute(citation)— 1 つの SDCL 条文の現行全文(例:"22-16-4"、第一級殺人)。公式の見出し語、章/編のコンテキストに加え、条文に記載がある場合は、制定または改正した各会期法を列挙する「Source:」行も取得し、historyに分割して返します。sd_search(query, limit?)— 71 編すべてを対象に、議会独自の公式な条文および章の見出し語を使ってトピック/キーワード検索します(例:"landlord"、"concealed pistol permit")。全文検索ではありません。サウスダコタ州は全文検索を公開していません。
認証
不要です。
データソース
https://sdlegislature.gov/api/Statutes/Statute/{citation}— 1 つの条文(または章、編)の現行テキストを、Htmlフィールドを含む JSON として返します。sd_statuteは、条文形式の引用の場合、リクエストごとにこの API をライブで呼び出します。https://sdlegislature.gov/api/Statutes/Title— 71 編すべての一覧です。scripts/bake-index.mjsが、以下の編ごとの取得を実行するためにのみ使用します。
機能 — 利用できる機能は 3 つ、利用できない機能は 1 つ
サウスダコタ州の公式公開情報で対応している機能は次のとおりです。
- 引用による検索 —
sd_statute。 - トピック/キーワード検索 — 見出し語のみを対象とする
sd_search(下記参照)。 - 改正/制定履歴 — 一部利用可能。現行の条文の末尾には、その条文を制定または改正した各会期法を列挙する「Source: SDC 1939, § 13.2007 (1); SL 1979, ch
160, § 2; ...」という行があります(
22-16-4でライブ検証済み)。sd_statuteはこれをtextに埋め込んだままにせず、historyに分割します。廃止/移管された条文の処分に関する 1 行(例:「22-16-9. Repealed by SL 2005, ch 120, § 158, eff. July 1, 2006.」)はdisposition_textとして返され、API 独自のフラグを読み取ってrepealed: trueを設定します。 - 過去の版(改正前の条文)— 利用不可。sdlegislature.gov が公開しているのは現行のオンライン版のみです。年度別のアーカイブ、「指定日現在の条文を表示」する日付選択機能、過去の版の条文を返すエンドポイントはありません(サイト独自の JS バンドルも確認しましたが、該当するものはありません)。「Source:」行からは、条文がいつ、どの会期法によって改正されたかは分かりますが、改正前の条文の内容は取得できません。
データソースと構造 — パーサーに手を加える前にお読みください
sdlegislature.gov は Vue のシングルページアプリです。8 月の州法調査
(docs/state-law-probe.md)では、HTML シェルに法令の内容が含まれていないことが正しく指摘されていましたが、調査は一段階手前で止まっていました。SPA は /api/Statutes/ 配下の キー不要の公開 JSON API からデータを取得します(サイト自身の JS バンドルを /api/Statutes で grep して発見。API のドキュメントページはありません)。GET /api/Statutes/Statute/{citation} は、条文の引用("22-16-4")、章の引用("22-16")、またはタイトル番号("22")を受け付け、その階層のコンテンツを Html フィールドに格納した JSON エンベロープを返します。条文の場合は条文全文、章またはタイトルの場合は、章見出しと各条文の引用および見出し(本文は含まれません)を並べた単純な目次です。認証やキーは不要で、レート制限も確認されていません。
sd_statute が呼び出すのは常に条文形式で、リクエストごとにライブ取得します。データが事前に組み込まれることはありません。
sd_search では、検索対象としてすべての引用と公式見出しを含む構造化インデックスが必要ですが、検索エンドポイントはなく、ノースダコタ州のように「法典全体」を一覧できるページもありません。インデックスを作成する唯一の方法は、71 の各タイトルについてタイトル階層の API を呼び出し、目次の Html データを解析することです。scripts/bake-index.mjs はこれをオフラインで一度だけ実行し、src/sd-index-data.ts に書き出します。リクエスト時には実行しません。
パーサーが HTML アンカーではなく、フラット化したテキストを処理する理由。 各タイトルの Html データは、数十年にわたって個別に作成され、HTML にエクスポートされた章を連結したものです。そのため、アンカーマークアップは統一されていません。現代的なアンカー(sdlegislature.gov/Statutes?Statute=X)で引用にリンクする章もあれば、旧式の DisplayStatute.aspx?Type=Statute&Statute=X アンカー形式を使う章もあります。また、廃止された条文の項目では、実際の見出しの直前に、引用自体がテキストラベルとして繰り返されている場合もあります。あらゆるアンカー形式を追うのではなく、インデックス作成スクリプトではすべてのタグを取り除き(style 要素と script 要素の CONTENTS も削除します。このスクリプトの初期版では、タグの内側ではなくタグ間にあったため、生の CSS テキストが見出しに混入していました)、フラット化したテキストから、既知のタイトル番号で始まる引用形式のトークンを検索します。この方法はマークアップに依存しません。文書のどの時代でも一貫してプレーンテキストで表示される引用文字列だけに依存します。重複トークンによるアーティファクトや、まれに実際に重複する引用(確認された条文の 5% 未満)の扱いなど、詳細はスクリプト冒頭のコメントをご覧ください。問題を黙って処理することはありません。インデックスは検索のランキングにのみ使われ、sd_statute は常に実際の本文をライブで再取得するため、重複がある場合は常に長い方の見出しを採用します。
更新方法: サウスダコタ州で法典が再編されたら、node scripts/bake-index.mjs > src/sd-index-data.ts を実行してください(新たな会期法は各立法会期の終了後に取り込まれます)。パック内のほかの部分を変更する必要はありません。
既知の制限
sd_searchが照合するのは公式見出し(条文名と章名)であり、法令本文全体ではありません。サウスダコタ州は全文検索を提供しておらず、このパックも提供しているとは主張しません。その旨はツールの説明と、該当結果がない場合の応答すべてに記載されています。- 事前作成したインデックスにある引用について LIVE API が 404 を返す場合(インデックスの最終作成以降に条文番号が変更された、または条文が廃止された場合など)は、説明なしに
found: falseを返すのではなく、明示的にreason: "index_live_mismatch"を返します。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"south-dakota-code": {
"url": "https://gateway.pipeworx.io/south-dakota-code/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/south-dakota-code/mcp の tools/list は、上記の表にあるツールに加えて、Pipeworx 共通のメタツールである ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツールも返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントには現在、パック固有のツールに加え、共通ツールが約 30 個表示されます。接続の initialize 応答には正確なスコープが示されており、その日の状況を確認する際の信頼できる情報源です。
これは意図的な仕様であり、誤って多重化されているわけではありません。メタツールを使うことで、このパックの対象外の質問にもスコープを限定した接続から回答できます。ask_pipeworx がカタログ全体を検索するため、2 つ目の MCP サーバーを追加する必要はありません。現在、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマによって増えるコンテキストコストがルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、ゲートウェイ全体に一度だけ接続してください。
または、Pipeworx ゲートウェイ全体に接続すると、このパックのツールだけでなく、すべてのパックのツールが直接表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ 1784+ 個のデータソースにアクセスします。異なるのは、どのパックのツールが直接表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/sd_statute \
-H 'Content-Type: application/json' \
-d '{"citation":"22-16-4"}'
最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/sd_statute を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も不要です。
{
"mcpServers": {
"south-dakota-code": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-south-dakota-code"]
}
}
}
または、直接実行して起動を確認できます。
npx -y @pipeworx/mcp-south-dakota-code
stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に対して、このパック固有のツールのみを返します。上記のゲートウェイ接続で追加される共通メタツールは含まれません。同じソース、同じツールですが、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは上記のパックエンドポイントでも、ゲートウェイ全体でも利用できます。
ask_pipeworx({ question: "your question about South Dakota Code data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細情報
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。