Pasal.id - Indonesian Law について
Pasal.id は、インドネシアの法令を検索・閲覧できるオープンなプラットフォームです。全文検索、条文(Pasal)の取得、改正状況の確認に対応し、正確な法的根拠が必要な利用者や AI アシスタント向けです。MCP サーバーにより、Claude は実際の法令本文に基づいて回答できます。
主な機能
- 0167,000 件以上の法令を対象とした全文検索
- 02番号指定による条文(Pasal)の取得
- 03施行中・改正・廃止の状態確認
- 04種類と年別の法令閲覧
- 05インドネシア語の語幹処理を用いた検索
活用シーン
- 01インドネシア労働法の特定条文の確認と引用
- 02法律が現在も有効かどうかの確認
- 03AI アシスタントによる原文に基づくインドネシア法の質疑応答
MCP 対応
Pasal.id の MCP サーバーは、search_laws、get_pasal、get_law_status、list_laws の 4 つのツールを MCP クライアントに提供し、正確な引用付きの法令データを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
インドネシア法のための、初のオープンなAIネイティブプラットフォーム
デモ動画 · ウェブサイト · Claude に接続 · REST API · AGPL-3.0 ライセンス
問題
インドネシアの2億8,000万人には、自国の法律を読むための実用的な手段がありません。公式の法令データベース(peraturan.go.id)が提供しているのは、PDF のダウンロードのみです。検索機能も構造化データも API もありません。インドネシア法について AI に質問すると、根拠となるデータソースがないため、捏造された条文や誤った引用が返ってきます。
今すぐ試す
1つのコマンドで Claude を実際のインドネシア法データに接続できます。
claude mcp add --transport http pasal-id https://pasal-mcp-server-production.up.railway.app/mcp
次に、以下のように質問してください。
「Apa saja hak pekerja kontrak menurut UU Ketenagakerjaan?」(労働法に基づく契約労働者の権利にはどのようなものがありますか?) 「Jelaskan pasal tentang perlindungan data pribadi」(個人データ保護に関する条文を説明してください) 「Apakah UU Perkawinan 1974 masih berlaku?」(1974年婚姻法は現在も有効ですか?)
Claude は40,000件以上の法令と937,000件以上の構造化された条文を検索し、具体的な Pasal(条文)を引用して、根拠のある回答を返します。幻覚はありません。
または、ウェブアプリ pasal.id をご覧ください。
構築したもの
| 機能 | 説明 | |
|---|---|---|
| 検索 | 全文法令検索 | インドネシア語ステマーと3段階のフォールバックにより、937,000件以上の条文を検索 |
| 閲覧 | 構造化リーダー | 目次、改正履歴、検証バッジを備えた3列構成の法令リーダー |
| AI | MCP サーバー | Claude が実際の法令に正確な引用付きでアクセスできる、根拠に基づく4つのツール |
| API | REST API | 検索、閲覧、条文取得のための公開 JSON エンドポイント |
| 訂正 | クラウドソーシングによる訂正 | 誰でも訂正を送信でき、AI が適用前に検証 |
| 検証 | AI 検証エージェント | Opus 4.6 の画像認識機能で、解析済みテキストと元の PDF 画像を比較 |
| 追跡 | 改正の連鎖 | 改正、廃止、相互参照の関係をすべて追跡 |
| グローバル | バイリンガル UI | next-intl によるインドネシア語と英語のインターフェース(法令コンテンツはインドネシア語のまま) |
Opus 4.6 がプラットフォームを支える仕組み
Next.js のフロントエンドから MCP サーバー、データパイプラインまで、コードベース全体はハッカソン期間中に Claude Code と Claude Opus 4.6 を使って構築されました。しかし、Opus 4.6 は単なる開発ツールではありません。製品自体にも組み込まれており、プラットフォームの精度を継続的に高める自己改善型の訂正フライホイールを実行しています。
┌───────────────────────────────┐
│ Users submit corrections │
│ via pasal.id web app │
└──────────────┬────────────────┘
▼
┌───────────────────────────────┐
│ Opus 4.6 Verification Agent │
│ Uses VISION to compare text │
│ against original PDF images │
│ → accept / reject / correct │
└──────┬───────────────┬────────┘
│ │
≥85% conf │ │ parser_feedback
auto-apply │ │ from each review
▼ ▼
┌──────────┐ ┌───────────────────────┐
│ Database │ │ Opus 4.6 reads the │
│ updated │ │ parser source code │
│ via safe │ │ + aggregated feedback │
│ revision │ │ → creates GitHub │
│ function │ │ issues with fixes │
└──────────┘ └───────────────────────┘
1. MCP サーバー:根拠に基づく法令アクセス
Claude は、実際の法令の検索、特定の条文の取得、改正状況の確認、法令の閲覧に使える4つのツールを利用できます。生成されたテキストではなく、すべて正確な引用付きの実データを返します。
2. マルチモーダル検証エージェント
ユーザーが修正を送信すると、Opus 4.6 はビジョンを使って、解析されたテキストを元の PDF ページ画像と照合します。PDF の実際の内容を文字単位で読み取り、信頼度スコアに基づいて承認・却下・修正を判断します。(scripts/agent/opus_verify.py)
3. 自己改善フィードバックループ
検証のたびに、パーサーがなぜ誤ったのかを記録する parser_feedback が生成されます。Opus 4.6 はこのフィードバックを集約し、GitHub からパーサーのソースコードを取得して、体系的なバグを分析し、具体的なコード修正を含む GitHub issue を作成します。AI は自身にデータを供給するパイプラインを改善します。(scripts/agent/parser_improver.py)
4. 人間参加型の安全性
信頼度の高い修正(85%以上)は、トランザクションセーフな改訂関数によって自動適用されます。このしきい値を下回る修正は、管理者の確認用にキューへ追加されます。すべての変更は追記専用の監査ログに記録されます。何もひそかに上書きされることはありません。
5. 開発ツールとしての Claude Code
このプラットフォーム全体は、4 つのディレクトリ(ルート、ウェブアプリ、MCP サーバー、データパイプライン)にわたる489 行の CLAUDE.md 仕様に導かれた Claude Code を使って構築されました。仕様には、アーキテクチャ上の決定、コーディング規約、データベースの不変条件、ドメイン知識が記述されています。
アーキテクチャ
┌──────────────────────────────────────┐
│ Supabase (PostgreSQL) │
│ 40,143 regulations · 937,155 Pasal │
│ 49 migrations · FTS · RLS │
└─────────┬──────────────┬─────────────┘
│ │
┌────────────────┘ └────────────────┐
▼ ▼
┌─────────────────────┐ ┌───────────────────────┐
│ MCP Server (Py) │ │ Next.js 16 Web App │
│ FastMCP · Railway │ │ Vercel · pasal.id │
│ │ │ │
│ · search_laws │ │ · /search │
│ · get_pasal │ │ · /jelajahi │
│ · get_law_status │ │ · /peraturan/[type] │
│ · list_laws │ │ · /connect · /api │
└─────────┬───────────┘ └───────────────────────┘
│
▼ ┌───────────────────────┐
┌─────────────────────┐ │ Opus 4.6 Correction │
│ Claude / AI │ │ Agent · Railway │
│ Grounded answers │ │ │
│ with citations │ │ Verify · Auto-apply │
└─────────────────────┘ │ Parser improvement │
└───────────────────────┘
長く使える設計:技術的な深さ
これは週末に作っただけのものではありません。主なエンジニアリング上の決定事項は次のとおりです。
- 49 件の SQL マイグレーションによる段階的なスキーマ進化。単一のダンプではありません
- ID による高速パスを備えた 3 層検索:正規表現で検出した規制 ID(スコア 1000)→ 法令 FTS(スコア 1~15)→ 3 段階のフォールバック(
websearch_to_tsquery→plainto_tsquery→ILIKE)を備えたコンテンツ FTS。候補 CTE の上限を設け、O(N) のスニペット生成を防止します - 追記専用の改訂監査ログ:コンテンツを直接 UPDATE することはありません。すべての変更は、単一のトランザクション内で SQL 関数
apply_revision()(改訂の挿入 + ノードの更新 + 提案の更新)を通じて行われます - トランザクションセーフなコンテンツ変更:いずれかの手順が失敗すると、すべてロールバックされます
- すべてのテーブルに行レベルセキュリティを適用し、法的データには公開読み取りポリシーを設定
- 入力のサニタイズ:インジェクションを防ぐため、tsquery の処理前に
[^a-zA-Z0-9 ]を除去します - 静的生成にオンデマンド再検証を伴う ISRを使用し、コンテンツ変更時に即座に更新
- アトミックなジョブ取得:
FOR UPDATE SKIP LOCKEDにより、スクレーパーのパイプラインでの重複処理を防止 - 1945 年から 2026 年までの法律を対象とする11 種類の規制。公式の政府機関ソースを使用
MCP ツール
| ツール | 説明 |
|---|---|
search_laws | インドネシア語の語幹処理を使って、すべての法的条項を対象に全文キーワード検索します |
get_pasal | 法律名と条番号で指定した条項(Pasal)の正確なテキストを取得します |
get_law_status | 法律の施行中、改正済み、廃止済みの状況を、改正履歴全体とともに確認します |
list_laws | 種別、年、状況で絞り込んで、利用可能な規制を閲覧します |
技術スタック
| レイヤー | 技術 |
|---|---|
| フロントエンド | Next.js 16(App Router)、React 19、TypeScript、Tailwind v4、shadcn/ui |
| データベース | Supabase(indonesian ステマー + pg_trgm を用いた PostgreSQL FTS) |
| MCP サーバー | Python + FastMCP、Railway にデプロイ |
| 修正エージェント | Claude Opus 4.6(ビジョン + コード分析)、Railway にデプロイ |
| データパイプライン | Python、httpx、PyMuPDF、BeautifulSoup |
| 検索 | 3 層:ID による高速パス → 法令 FTS → ILIKE フォールバック付きコンテンツ FTS |
| i18n | next-intl、インドネシア語(デフォルト)+ 英語 |
法令の対象範囲
現在、次の種類を含む40,143 件の規制を収録しています。
- UU(Undang-Undang)· 議会が制定する主要な法律
- PP(Peraturan Pemerintah)· 政府規則
- Perpres(Peraturan Presiden)· 大統領令
- UUD · 1945 年憲法
- Permen、Perda など、公式の政府機関ソースに基づく法令
Development
# Frontend
cd apps/web && npm install && npm run dev
# MCP Server
cd apps/mcp-server && pip install -r requirements.txt && python server.py
# Correction Agent
cd scripts && pip install -r requirements.txt
python -m scripts.agent.run_correction_agent
Built with Claude Opus 4.6 for the Claude Code Hackathon
AGPL-3.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。