Lokal について
Lokal は、AI エージェントにインドネシアの地域、身分証、電話、通貨、暦のデータを提供する MCP サーバーです。ローカルファイル内の個人データを安定したプレースホルダーでマスクし、実データを端末内に保ったまま処理できます。
主な機能
- 01NIK、NPWP、電話、QRIS の検証
- 02地域と郵便番号の検索
- 03ルピアの書式設定と解析
- 04祝日と営業日の確認
- 05ローカルファイル内の個人データのマスク
活用シーン
- 01インドネシアの身分情報と決済データの検証
- 02地域情報と郵便番号の検索
- 03個人データをマスクした本番データの処理
- 04ローカルに結果を書き込む際の実データ復元
MCP 対応
MCP クライアントにインドネシアのデータとファイル処理ツールを提供します。ファイルツールは LOKAL_ROOT 内に制限され、リモート HTTP モードでは利用できません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| nik | string | はい | 16 桁の NIK。空白とピリオドは無視されます |
詳細
@lokal-id/mcp
AI エージェントをインドネシア向けにする MCP サーバーです。正確な Kemendagri の地域データと郵便番号データ、祝日と稼働日、NIK/NPWP/電話番号の検証、ルピアに対応します。また、Samaran を使うと、エージェントはインドネシアの個人データを安定したプレースホルダーに置き換えた本番ファイル(CSV、Excel、ログ)を読み取り、処理結果を書き込む際に実際の値を復元できます。すべてローカルで実行されます。
Lokal の一部 · Bahasa Indonesia
インストール
Claude Code: このサーバーとスキル、Samaran Guard フックが含まれる Lokal プラグインをインストールします。
/plugin marketplace add lokal-id/lokal
/plugin install lokal@lokal
Cursor、Claude Desktop、Windsurf(.cursor/mcp.json、claude_desktop_config.json、~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"lokal": {
"command": "npx",
"args": ["-y", "@lokal-id/mcp"],
"env": { "LOKAL_ROOT": "/path/to/your/project" }
}
}
}
VS Code(.vscode/mcp.json):
{ "servers": { "lokal": { "type": "stdio", "command": "npx", "args": ["-y", "@lokal-id/mcp"] } } }
Codex CLI(~/.codex/config.toml):
[mcp_servers.lokal]
command = "npx"
args = ["-y", "@lokal-id/mcp"]
ファイルツールがアクセスできるのは LOKAL_ROOT のみです。既定値は CLAUDE_PROJECT_DIR、次に作業ディレクトリです。
ツール
| ツール | 機能 |
|---|---|
parse_nik | NIK を検証してデコードします:地域、生年月日、性別 |
validate_npwp | 15 桁の NPWP、16 桁の NPWP、または NPWP としての NIK |
parse_phone | 番号の正規化、表示形式、WhatsApp リンク、通信事業者 |
parse_qris | QRIS ペイロードを読み取り、確認します:加盟店、NMID、基準、金額、CRC |
set_qris_amount | 新しい CRC を付けて、加盟店の QRIS を指定金額の動的 QRIS にします |
format_rupiah / parse_rupiah | Rp1.500.000、terbilang;「2jtan」、「goceng」→ 数値 |
search_wilayah / list_wilayah | 県から村までの地域情報をコードと郵便番号とともに表示します |
lookup_kode_pos | 郵便番号 → 村、または地域内のすべての郵便番号 |
list_holidays / working_days | 国民の祝日と cuti bersama(SKB 2026、2027)、SLA の期限 |
scan_pii | UU PDP のカテゴリに基づいてファイルやフォルダーを個人データについてスキャンします。スキャンできなかったファイルも報告します |
read_file_masked | 個人データをプレースホルダーに置き換えて、ファイル(テキスト、CSV、JSON、ログ、.xlsx、.docx、テキストベースの PDF)を読み取ります |
write_file_unmasked | プレースホルダーを復元した結果を、手元のマシンに書き込みます |
anonymize_file | 人物ごとに現実的な代替データ(Kembaran)へ置き換えたダンプやエクスポートのコピーを作成し、件数のみを返します |
Samaran Guard
lokal-mcp guard は Claude Code(UserPromptSubmit と、Read|Grep|Bash|PowerShell 用の PreToolUse)、Codex CLI、Cursor、Gemini CLI 向けのフックです。NIK、銀行口座、または健康データを含むプロンプトを保留し、個人データファイルを会話に出力するコマンドをブロックして、代わりに read_file_masked を使うようエージェントに案内します。また、書類の写真やスキャンした PDF を読み取る前に確認を求めます。Lokal プラグインが Claude Code 用に設定します。その他のエージェントについては、Lokal README をご覧ください。
Kembaran
lokal-mcp kembaran prod.sql export.csv -o staging/ [--secret <text>] [--keep FINANCIAL] [--keep-birth-date] は、すべての人物を現実的な代替データに置き換えたテキストファイルのコピーを作成します。代替データはファイル間で一貫します。Lokal README をご覧ください。
Lokal Scan
lokal-mcp scan --staged(pre-commit)または lokal-mcp scan --diff origin/main(CI)は、コミットやプルリクエストにインドネシアの個人データが追加されると失敗し、各値を一部マスクして表示します。lokal-mcp scan [path…] はファイル全体をチェックします。GitHub Action も利用できます:uses: lokal-id/[email protected]。Lokal README をご覧ください。
リモート(HTTP)モード
lokal-mcp serve --http --port 3000 を実行すると、ChatGPT と Claude.ai のコネクター向けに、データツールを /mcp で Streamable HTTP 経由で提供します。このモードではファイルツールは利用できません。
Samaran Proxy
lokal-mcp proxy はアプリ向けの OpenAI および Anthropic 互換エンドポイントです。すべてのリクエストに含まれるインドネシアの個人データをマスキングし、ストリーミングとツール呼び出しを含め、レスポンスで復元します。
npx @lokal-id/mcp proxy --port 8787 [--openai <url>] [--anthropic <url>] [--exclude FINANCIAL]
次に OpenAI(base_url="http://127.0.0.1:8787/v1") または Anthropic(base_url="http://127.0.0.1:8787") を使用します。Lokal README を参照してください。
ライセンス
MIT です。このライブラリは @lokal-id/core です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。