Dc Code について
Dc Codeは、ワシントンD.C.の法令を扱う法律研究者やアプリ開発者向けのMCPサーバーです。条文番号から現行全文を取得し、公式見出しで検索・閲覧でき、条文の状態や立法注記も返します。
主な機能
- 01引用番号による条文全文の取得
- 02公式見出しによるテーマ検索
- 03タイトル内の条文一覧表示
- 04条文の状態と履歴注記の取得
活用シーン
- 01特定条文とその状態の確認
- 02法律テーマに関連する見出しの検索
- 03タイトル内の条文の閲覧
MCP 対応
Pipeworxゲートウェイ経由、またはローカルのstdio MCPサーバーとして、条文検索ツールをMCPクライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/dc-code/mcpclaude mcp add --transport http pipeworx-io-dc-code https://gateway.pipeworx.io/dc-code/mcp{"mcpServers":{"pipeworx-io-dc-code":{"type":"http","url":"https://gateway.pipeworx.io/dc-code/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-dc-code":{"type":"http","url":"https://gateway.pipeworx.io/dc-code/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-dc-code":{"type":"http","url":"https://gateway.pipeworx.io/dc-code/mcp"}}}{"mcpServers":{"pipeworx-io-dc-code":{"serverUrl":"https://gateway.pipeworx.io/dc-code/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/dc-code
コロンビア特別区法典(D.C. Code — DC statutes)— 引用情報によるセクション全文、および公式見出しを対象としたトピック/章の検索。
Pipeworx の一部です。AI エージェントを 1878 以上の稼働中データソースに接続する MCP ゲートウェイです。これは独立した非公式の連携であり、上流プロバイダーとは提携関係になく、推奨や公開も受けていません。
ツール
dc_statute(citation)— D.C. Code のセクション 1 つ分の現行全文(例:"22-2101"、第一級殺人)。公式見出し、処分状況(有効/廃止/移管/留保)、 立法履歴の注記、以前の法典化、および相互参照を含みます。dc_search(query?, title?, limit?)— すべてのセクションの公式見出しを対象としたトピック/キーワード検索(例:"eviction notice"、"concealed carry permit")。任意で 1 つのtitleに絞り込めます。queryを指定せずtitleだけを渡すと、そのタイトル内のすべてのセクションを一覧表示します。これは章の一覧表示/閲覧モードです。全文検索ではありません。DC Council は全文検索を公開していません。
認証
キー不要です。
データソース
https://raw.githubusercontent.com/DCCouncil/law-xml-codified/{branch}/us/dc/council/code/titles/{title}/sections/{citation}.xml— 1 つのセクションの現行 XML(見出し、本文、注記)。dc_statuteはリクエストごとにこのデータをライブ取得し、以下に 埋め込まれたブランチに固定します。- 同じリポジトリの
us/dc/council/code/index.xmlおよびtitles/{title}/index.xml— 構造情報のみ(タイトル/章/サブチャプターの 見出しとセクション引用情報の一覧。キャッチラインは含みません)。scripts/bake-index.mjsだけが使用します。 https://api.github.com/repos/DCCouncil/law-xml-codified/branches— 現在の 公開ブランチを解決するために、scripts/bake-index.mjsだけが使用します (以下を参照)。
ライセンス — パブリックドメインであり、このパックでインデックスを焼き込める理由
code.dccouncil.gov のフッターには、「このウェブサイトの法典および法律は
パブリックドメインです」とあります。同じフッターには、「スクレイピングは
しないでください。代わりに、Council の GitHub 組織から HTML または XML を
一括ダウンロードしてください」とあります。このパックはその指示に忠実に従い、
code.dccouncil.gov には一切アクセスせず、DCCouncil/law-xml-codified の
raw.githubusercontent.com コンテンツのみを利用します。パブリックドメインの
コンテンツであり、公開者自身が明示する再配布手段もあるため、このリポジトリから
キャッチラインのインデックスを焼き込む際、別途許可を得る必要はありません
(ルートの CLAUDE.md にある「mirror-needs-grant-proxy-does-not」——
ライセンスで許可される側であり、黙認または禁止される側ではありません)。
法令本文そのものも焼き込まれることはありません。dc_statute は呼び出しごとに
常にライブ取得します。
デフォルトブランチの落とし穴
GET /repos/DCCouncil/law-xml-codified は default_branch: "publication/2021-10-18" を返します。これは実際の Git メタデータですが、
2021 年の法典化時点で凍結されており、5 年も古い情報です。一方、リポジトリは
現在も活発に公開されています。インデックス作成時点でブランチは 406 個あり、
最も新しいブランチは数日前に更新された
publication/{base-date}.{amendment-date} 形式でした。
GitHub の「デフォルトブランチ」設定は、どのブランチが最新かとは無関係です。
scripts/bake-index.mjs はすべてのブランチを一覧取得し(ページネーションを
使用し、認証なしのリクエストを約 5 回実行)、辞書順で最も後ろの名前を選びます。
すべての名前が ISO-8601 の日付またはそのドット区切りの組み合わせであるため、
文字列の順序が時系列の順序と一致し、安全に選択できます。解決した名前は
DC_CODE_BRANCH として焼き込まれ、dc_statute のライブ取得先のブランチを
固定するために使用されます。
セクションの XML 構造
短いセクションは単一のフラットな <text> 要素です。文字または数字で示された小区分があるセクションでは、<para> 要素が入れ子になり、それぞれに独自の <num>(「(a)」)と <text> が含まれます。こうした構造は繰り返され、ときにはさらに一段深く入れ子になります。「Repealed」(または Reserved/Transferred)と記された reason 要素は、本文が文字どおり「Repealed.」である実質的な内容を持たない空の条項を示します。この情報は、呼び出し側に推測させずに disposition として提示されます。末尾の annotations ブロック(History、Prior Codifications、Cross References、Editor's Notes)は本文テキストの走査対象から除外され、独自のグループ化フィールドとして返されます。
知っておくべき解析上の落とし穴が1つあります。num 要素や heading 要素には、内部にインライン要素が含まれる場合があります(たとえば、Title 7 Chapter 2B の章番号には、num 要素内に施行日の注釈タグが埋め込まれています)。「入れ子タグなし」を前提とする厳密な正規表現では、エラーにならず、その章番号が黙って失われます。scripts/bake-index.mjs は、num や heading にタグが含まれないと決めつけず、入れ子になったタグの内容をすべて取り除きます。
機能 — 2つは利用可能、2つは利用不可
- 条文引用の検索 —
dc_statute。条文引用から URL を直接構築するため、インデックスの検索は不要です(タイトルは、条文引用の最初の-より前の部分です)。 - トピック/章の検索 —
dc_search。公式の見出しのみを対象とします(以下を参照)。24,198件のセクションの実際の見出しに一致し、scripts/bake-index.mjsの実行ごとに一度だけ生成されます。セクションごとのフェッチが避けられなかった理由は、そのヘッダーを参照してください(インデックスツリーには、サウスダコタ州やオクラホマ州の同種パックと異なり、キャッチラインが含まれていません)。 - 改正/制定履歴 — 一部利用可能です。改正された各セクションの
annotationsブロックには、制定法または改正法を示すtype="History"エントリが1つ以上含まれます。dc_statuteはこれらをhistoryとして返します。これらの引用とは別に、単一の標準的な「施行日」フィールドはありません。 - 過去の版(改正前の条文) — 利用できません。
DCCouncil/law-xml-codifiedが公開しているのは現在の成文テキストのみで、改正ごとのアーカイブも、過去の版のテキストを返すエンドポイントもありません。
更新方法
DC Council は、およそ数日ごとに新しい改正ブランチを、年に数回、新しい基本成文を公開します。呼び出し側で index_live_mismatch が発生した場合や、古い data_as_of により生成済みインデックスが最新のブランチに追いついていないことが示された場合は、node scripts/bake-index.mjs > src/dc-index-data.ts を再実行してください。パック内のほかの部分を変更する必要はありません。dc_statute は常にセクション本文をライブで取得し、直近の bake で解決されたブランチに固定します。このためのスケジュール済みワークフローはありません(このファミリーの同種の州法コードパックと同様です)。手動で再実行してください。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"dc-code": {
"url": "https://gateway.pipeworx.io/dc-code/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/dc-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 も同じゲートウェイと同じ 1878+ 個のデータソースに接続します。異なるのは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントをお持ちでない場合:HTTP で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/dc_statute \
-H 'Content-Type: application/json' \
-d '{"citation":"22-2101"}'
最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/dc_statute を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへのラウンドトリップも不要です。
{
"mcpServers": {
"dc-code": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-dc-code"]
}
}
}
または、直接実行して起動を確認します。
npx -y @pipeworx/mcp-dc-code
stdin/stdout 経由で MCP と通信し、このパックのツールのみについて initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールはありません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使用する
ツールを直接呼び出す代わりに、平易な英語で質問できます。上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Dc Code data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。