住所正規化・ジオコーディングAPI 「Staddress(スタドレス)」 開発チームです。
前回(Rubyから15分 — staddress gem で住所解析する)までは、curl / CLI / Node / Python / Ruby と「コードから API を呼ぶ」流れを紹介してきました。
今回は一歩進めて、AI チャットから住所解析を呼び出せる MCP サーバ @staddress/mcp を紹介します。Cursor Directory にも掲載済みです。
- Cursor Directory: staddress-ai
- ソース: StaddressAI/staddress-tools — packages/mcp
この記事で扱う内容は次の通りです。
- MCP で何ができるかを把握する
- Cursor Directory / 設定ファイルから導入する
- チャットで
staddress_parseを試す - 提供ツール(parse / batch / usage)を知る
- Claude Desktop など他クライアントでも使う
- よくあるつまづきを押さえる
前提
- Free アカウント登録が完了していること
- アカウント管理画面で API Key を確認できること
-
Node.js 18+(
npxで MCP サーバを起動するため) - Cursor(または Claude Desktop など MCP 対応クライアント)
API Key の取得手順は 試用編 / curl 編 を参照してください。
MCP で何ができるか
Model Context Protocol (MCP) は、AI クライアントが外部ツールを安全に呼び出すための共通仕様です。
@staddress/mcp を入れると、チャット上の指示だけで次ができます。
| やりたいこと | ツール | 対応 API |
|---|---|---|
| 住所を1件正規化する | staddress_parse |
POST /api/v1/addresses/parse |
| 複数住所を一括解析する | staddress_parse_batch |
POST /api/v1/addresses/parse/batch(Standard 以上・最大100件) |
| プラン・残量を確認する | staddress_get_usage |
GET /api/v1/usage |
いずれも読み取り専用(readOnlyHint)です。内部では公式 Node SDK @staddress/client を使っています。
ユーザー → Cursor / Claude → @staddress/mcp → Staddress AI API
↑
STADDRESS_API_KEY
コードを書かず、「この住所を正規化して」と頼むだけで、正規化住所・緯度経度・信頼度まで構造化データとして受け取れます。
Step 1. Cursor に導入する
方法 A: Cursor Directory から追加(おすすめ)
- cursor.directory/plugins/staddress-ai を開く
- 掲載ページの手順に従って Cursor に追加する
-
STADDRESS_API_KEYに自分の API Key を設定する
Directory 経由で入る設定の骨格は次の通りです(キーは後から必ず埋めてください)。
{
"type": "stdio",
"command": "npx",
"args": ["-y", "@staddress/mcp"]
}
方法 B: mcp.json を手で書く
ユーザー全体なら ~/.cursor/mcp.json、プロジェクト単位なら .cursor/mcp.json に追加します。
{
"mcpServers": {
"staddress": {
"command": "npx",
"args": ["-y", "@staddress/mcp"],
"env": {
"STADDRESS_API_KEY": "sk_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
自前エンドポイントを使う場合は STADDRESS_BASE_URL も追加できます(既定: https://api.staddress.com)。
注意: API Key は秘密情報です。リポジトリにコミットしないでください。チーム共有が必要なときは、各自のローカル mcp.json かシークレット管理を使ってください。
設定後、Cursor を再起動(または MCP をリロード)し、ツール一覧に staddress_parse などが出ることを確認します。
Step 2. チャットで試す
Cursor のチャットに、次のように入力します。
東京都渋谷区道玄坂1-2 マンション桜 101号を staddress で正規化して、緯度経度も教えて
AI が staddress_parse を呼び出すと、だいたい次のような構造化結果が返ります。
{
"result": {
"normalized": "東京都渋谷区道玄坂一丁目2 マンション桜 101号",
"standard": "東京都渋谷区道玄坂1-2",
"components": {
"pref": "東京都",
"prefCode": "13",
"city": "渋谷区",
"cityCode": "13113",
"oazaCho": "道玄坂",
"chomeNumber": "1",
"streetNumberBlock": "2",
"buildingName": "マンション桜",
"roomNumber": "101",
"roomNumberUnit": "号",
"lat": 35.658034,
"lon": 139.699475,
"lgCode": "131130"
},
"confidence": {
"score": 0.98,
"matchLevel": "residential_block",
"query": "東京都渋谷区道玄坂1-2 マンション桜 101号"
}
}
}
レスポンスの見方(normalized / components / confidence)は curl 編 と同じです。
プロンプトの例
| 目的 | 例 |
|---|---|
| 単件 | 「この住所を staddress で正規化して。建物名と部屋番号も分けて」 |
| 比較 | 「次の2表記は同じ住所か、正規化結果で教えて」 |
| 利用状況 | 「staddress の今月の利用状況を確認して」 |
| 一括(Standard+) | 「次の住所リストを batch で解析して、normalized だけ表にして」 |
「staddress で」「正規化して」など、ツール名や用途が分かる言い方を入れると、AI が MCP ツールを選びやすくなります。
Step 3. 提供ツールを押さえる
staddress_parse(単件)
日常の確認・PoC・レビュー指摘の確認に向いています。
staddress_parse_batch(一括)
- Standard プラン以上
- 最大 100件
- CSV の一部をチャットに貼って試す用途向け
大量の本番バッチは、これまで紹介した CLI / SDK / バッチ API の方が向いています。MCP は「対話の中で確認する」用途を想定しています。
staddress_get_usage(利用状況)
プラン名・件数・クレジット残量の確認に使います。Free の月間上限に達していないか、チャットからすぐ確かめられます。
Step 4.(任意)Claude Desktop / Inspector
Claude Desktop
claude_desktop_config.json に、Cursor と同様の設定を追加します。
{
"mcpServers": {
"staddress": {
"command": "npx",
"args": ["-y", "@staddress/mcp"],
"env": {
"STADDRESS_API_KEY": "sk_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
MCP Inspector(動作確認)
クライアントなしでツール呼び出しを確認したいとき:
STADDRESS_API_KEY=sk_xxxxxxxxxxxxxxxxxxxx \
npx @modelcontextprotocol/inspector npx -y @staddress/mcp
SDK / CLI / MCP の使い分け
| 観点 | SDK / CLI(これまでの連載) | MCP(今回) |
|---|---|---|
| 呼び出し方 | コード・ターミナル | AI チャット |
| 向いている作業 | アプリ組込・バッチ・CI | 調査・レビュー・PoC・その場確認 |
| 配布 | npm / PyPI / RubyGems / CLI | @staddress/mcp |
| 導入 |
install + 数行のコード |
Directory または mcp.json
|
「本番システムに組み込む」なら SDK / CLI、「エディタやチャットで住所をその場で確認する」なら MCP、という切り分けがおすすめです。
加えて、Cursor などの AI エージェントに住所解析をツールとして足すこと自体にもメリットがあります。チャットだけで住所を直させると、LLM が表記を推測してしまい、見た目は正しそうでも信頼できないことがあります。MCP 経由なら同じ Staddress API の正規化結果・緯度経度・信頼度を根拠に答えられるので、エージェント側の住所まわりの回答精度・再現性が上がります(API そのものの解析精度が MCP 専用に変わるわけではありません)。
よくあるつまづき
ツールが出てこない / 呼べない
- Cursor を再起動、または MCP をリロードする
-
node -vが 18 以上か確認する -
npx -y @staddress/mcpが単体で起動できるか試す
unauthorized / API Key 未設定
mcp.json の env.STADDRESS_API_KEY が空・未設定でないか確認してください。Directory から追加した直後は、キーを自分で埋める必要があります。
一括が失敗する
staddress_parse_batch は Standard 以上です。Free では staddress_parse で1件ずつ試してください。
エラー時の見え方
API / ネットワーク / キー未設定は、ツール結果が isError: true になり、code / http_status / request_id を含む説明が返ります(MCP サーバ自体は落ちません)。問い合わせ時は request_id を控えておくと追跡しやすくなります。
まとめ
今回は、Cursor Directory 掲載の @staddress/mcp で、チャットから住所解析する手順を紹介しました。
- 掲載ページ: cursor.directory/plugins/staddress-ai
- ソース: packages/mcp
-
staddress_parse/staddress_parse_batch/staddress_get_usageを提供 - API Key は
STADDRESS_API_KEYで渡し、リポジトリに載せない - レスポンスの見方は curl 編 と同じ
- 本番組込は SDK / CLI、対話確認は MCP
Staddress ホームセット
Staddress に関する公式リンク一覧です。