LLM-safe Japanese address normalization
LLMに壊されない、
日本住所正規化API。
OCR、音声入力、AI Agentから来る揺れた住所を、REST API / MCPで正規化・構造化。 数字の全角/半角、漢数字、番地表記、京都・札幌など日本住所特有の揺れを安全に扱います。
LLMやOCRから来る住所は、そのまま保存すると壊れます
住所らしい文字列を抽出した後、専用APIで照合・構造化します。
東京都渋谷区渋谷2ー21ー1京都市中京区御幸町通二条下る山本町札幌市中央区南二条西1-5東京都中央区日本橋一丁目二番三〇一ライブデモ
サンプル住所で試す(クリックでランダム選択):
特徴
AI Agent時代の入力にも、日本の住所特有の複雑さにも対応した正規化エンジン
AI Agent Ready
LLMが抽出した住所候補を、Agentの外部ツールとして正規化・構造化
MCP Ready
Claude Desktop、CursorなどのMCPクライアントからnormalize_addressを呼び出し
OpenAPI対応
OpenAPI仕様を公開。Agent toolchainやコード生成からREST APIとして統合
LLM-safe
LLMの推測だけに任せず、住所専用データで照合した構造化結果を返却
ハイブリッドデータ
国土交通省と郵便局のデータを組み合わせ、高精度な住所解析を実現
事業所マッチング
企業名・官公庁名から住所を特定し、正規化
大規模建物認識
タワーマンション・商業施設など、大規模建物を認識
数字自動変換
漢数字・全角数字・「の」区切りを自動でアラビア数字に変換
住居表示・地番両対応
住居表示と地番の両方に対応し、適切に正規化
超高速レスポンス
最適化されたインデックスとキャッシュで、平均5ms以下の高速処理
信頼度スコア
正規化結果の確からしさを0〜1のスコアとマッチレベルで返却
ローマ字対応
都道府県・市区町村・町域のローマ字表記を自動生成
パフォーマンス
最適化されたインデックスとキャッシュにより、従来比最大60倍の高速化を実現
利用シーン
AI Agent、OCR、SaaS、配送など、住所が壊れる前に正規化
AI Agent / MCP ツール
LLMが抽出した住所候補を、MCPやOpenAPI経由で正規化。Agentに住所を推測だけで補完させません。
OCR 後処理
手書き住所や名刺をOCRで読み取った後の誤認識・表記ゆれを補正。「渋谷区渋谷2の21の1」→「渋谷区渋谷二丁目21-1」
Web フォーム入力支援
ユーザーが入力した住所をリアルタイムで正規化し、送信先が期待する郵便住所表記へ変換。入力ミスと表記不一致を減らします。
顧客データクレンジング
既存の住所データベースを一括で正規化。重複検出や名寄せの前処理に最適。
物流・配送システム
配送先住所を正規化し、郵便番号・緯度経度を自動付与。配送ルート最適化の基盤に。
不動産・施設データ
物件、店舗、施設の住所を構造化。京都の通り名や大規模建物など、住所固有の揺れを扱いやすくします。
利用方法
SDK、REST API、OpenAPI、MCP で5分から統合
SDK
Python と TypeScript の公式 SDK を提供しています。パッケージマネージャでインストールするだけですぐに利用可能です。
どちらも MIT License で公開しています(PyPI / npm ともにパッケージ名は normal-jusho)。
Python
pip install normal-jushofrom jusho import Jusho
client = Jusho()
result = client.normalize("東京都渋谷区渋谷2ー21ー1")
print(result.address.full)
# => 東京都渋谷区渋谷二丁目21-1TypeScript
npm install normal-jushoimport { Jusho } from "normal-jusho";
const jusho = new Jusho();
const result = await jusho.normalize("東京都渋谷区渋谷2ー21ー1");
console.log(result.address.full);
// => 東京都渋谷区渋谷二丁目21-1REST API
ベースURL: https://api.jusho.dev
POST /normalize/batch(複数件一括処理・最大100件)
curl -X POST https://api.jusho.dev/normalize/batch \
-H "Content-Type: application/json" \
-d '{"addresses": ["東京都渋谷区渋谷2ー21ー1", "大阪府大阪市北区梅田1-1-1"]}'GET /normalize
curl -G "https://api.jusho.dev/normalize" \
--data-urlencode "address=東京都渋谷区渋谷2ー21ー1"レスポンス例
{
"full_address": "東京都渋谷区渋谷二丁目21-1",
"post_code": "1500002",
"pref": "東京都",
"city": "渋谷区",
"town": "渋谷二丁目",
"banchi": "21",
"go": "1",
"lat": "35.659609",
"lng": "139.705829",
...
}AI Agent / OpenAPI
LLMには住所候補の抽出を任せ、保存前にJushoで正規化します。OpenAPI仕様をAgent toolchainへ読み込ませることで、REST APIを外部ツールとして呼び出せます。
// AI Agentでの推奨フロー
1. LLM/OCRで住所候補を抽出
2. Jusho REST API または MCP の normalize_address を呼び出す
3. 正規化済み住所・郵便番号・行政コードを保存
4. 正規化できない場合は元文字列を残して人間確認へMCP (Model Context Protocol)
Claude Desktop、Cursor、その他の MCP 対応クライアントで利用可能です。リモートサーバー方式(Streamable HTTP)のため、インストール不要で即座に利用できます。
Claude Desktop 設定 (claude_desktop_config.json)
{
"mcpServers": {
"jusho": {
"url": "https://api.jusho.dev/mcp"
}
}
}使用例
// Claude Desktop での使用例
「東京都渋谷区渋谷2ー21ー1を正規化して」
// レスポンス
住所を正規化しました:
- 正規化結果: 東京都渋谷区渋谷二丁目21-1
- 郵便番号: 〒150-0002
- 緯度経度: 35.659609, 139.705829利用可能なツール:
normalize_address- 住所を正規化して詳細情報を取得