loa-mcp-server
The loa-mcp-server provides MCP tools for searching and retrieving Japanese address geographical data (polygons/points) from the open-licensed Address LOD dataset, with no API key required.
Address Search (
search_address): Partial-match search with automatic normalization of notation variations (e.g., ヶ/ケ, full-width numbers).Single Address Location (
get_address_location): Returns a polygon or point as a GeoJSON Feature, with optional simplification and small island drops.Bulk Location Lookup (
get_address_locations): Up to 50 addresses at once as a GeoJSON FeatureCollection, with topology-aware simplification to preserve boundaries.Hierarchy Drill-down (
list_child_addresses): Navigate from prefecture to municipalities to towns/chomes.List Banchi (
list_banchi): Enumerate lot numbers under a town/chome.Reverse Geocoding (
reverse_geocode_address): Find nearest town-level address for a lat/lon.List Prefectures (
list_prefectures): Official names of all 47 prefectures.Export to File (
save_address_locations_to_file): Write GeoJSON directly to a local file, bypassing response size limits for large exports.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@loa-mcp-server永田町の場所を教えて"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
住所LOD MCPサーバー
日本の住所を検索し、その位置をポリゴンまたはポイントで取得できる、ローカル実行(stdio)のMCPサーバーです。住所LODを利用しており、認証不要・オープンライセンスのデータソースなのですぐに使い始められます。
Claude Desktop や Claude Code のようなMCP対応クライアントから、次のようなことができます:
住所の部分一致検索(例:「永田町」→候補一覧)
住所からポリゴン/座標の取得(都道府県〜丁目はポリゴン、番地は代表点)
複数住所をまとめて1回のGeoJSON
FeatureCollectionとして取得(地図表示向け。隣接ポリゴン間の境界を保ったまま座標点数を間引ける)住所階層のドリルダウン(都道府県→市区町村→町丁目)
町丁目配下の番地一覧
緯度経度からの近傍住所検索(逆ジオコーディング)
47都道府県の正式名称一覧取得
複数住所の取得結果をローカルファイルへ直接保存(1MBのレスポンス上限を回避)
住所の面積算出(km^2、複数件まとめて算出・比較も可能)
郡名・政令指定都市の市名の省略、全角数字・漢数字・異体字(ケ/ヶ/ヵ)などの表記ゆれも自動的に補完します。
Tools
Tool | 概要 |
| 住所の部分一致検索 |
| 住所1件のポリゴン/座標を取得。 |
| 複数住所をまとめて取得(最大50件)。地図表示向けで、隣接ポリゴン間の境界を保ったまま |
| 住所階層のドリルダウン(都道府県→市区町村→町丁目) |
| 町丁目配下の番地一覧 |
| 緯度経度→近傍住所(逆ジオコーディング) |
| 47都道府県の正式名称一覧 |
|
|
| 1件以上の住所の面積(km^2)をまとめて算出。町丁目・丁目レベルや複数件の合計・比較など、公表統計に載っていない値を求めるのに向く |
号(建物番号)は元データに存在しないため、どのToolを使っても番地(街区)レベルまでが限界です。
Related MCP server: geocodage-mcp
必要環境
Node.js 18.17以上
セットアップ
npm install
npm run dev # tsx watch でホットリロード起動(stdio)Claude Desktop への登録
事前にビルドしておきます:
npm run buildclaude_desktop_config.jsonに以下を追加します(argsのパスは実際にリポジトリを配置した場所の絶対パスに書き換えてください):
{
"mcpServers": {
"loa-mcp-server": {
"command": "node",
"args": ["/path/to/loa-mcp-server/dist/index.js"]
}
}
}Windowsの場合はパス区切りをエスケープした\\で指定します(例: "C:\\path\\to\\loa-mcp-server\\dist\\index.js")。
Tips: Claude Desktopは「日本地図を作りたい」のような依頼でも、このMCPサーバーを使わずWeb検索に頼ろうとすることがあります。プロンプトに「住所LOD MCPサーバーを使って」のようにサーバー名を明示すると、確実にこのサーバーのToolが呼ばれます。
Claude Code への登録
プロジェクト直下の.mcp.jsonに登録済みです。このリポジトリをClaude Codeで開くと自動的に検出されます。
その他のMCPクライアントでの動作
このMCPサーバーはstdioで通信する標準的なMCP実装のため、Claude Desktop / Claude Code以外のMCP対応クライアントからも利用できます。LM Studioからの接続・動作を確認済みです。
使い方の例
プロンプトの冒頭に「住所LOD MCPサーバーを使って」と入れると、このMCPサーバーが確実に呼ばれやすくなります(Claude DesktopがWeb検索など別の手段に頼ろうとすることがあるため)。
「住所LOD MCPサーバーを使って、永田町の場所を教えて」
search_address(query:"永田町", prefecture:"東京都")で候補を検索候補の
uriをget_address_locationに渡してポリゴン/座標を取得
「住所LOD MCPサーバーを使って、東京23区すべてをポリゴンとして地図に表示したい」
list_child_addresses(parent:"東京都")で市区町村一覧を取得し、「〇〇区」の23件のuriを選ぶget_address_locations(addresses:[23件のuri], simplify:"medium")で1回のFeatureCollectionとしてまとめて取得simplifyはトポロジーを保持するため、区同士の境界に隙間ができない
Tips: Claude Codeのように1回のTool呼び出し結果に約1MBのような厳しい上限がない環境では、
simplifyを省略(既定値none)して離島まで含む高精度な形状のまま取得できます。実際にClaude Codeで「住所LOD MCPサーバーを使って、東京23区すべてをポリゴンとしてsimplifyなしで地図に表示したい」というプロンプトで成功しています。Claude Desktop等、応答サイズに制限がある環境では引き続きsimplify:"low"/"medium"を推奨します。
「住所LOD MCPサーバーを使って、東京都千代田区永田町1丁目に含まれる番地すべての位置を地図に表示したい」
list_banchi(town:"東京都千代田区永田町", chome:1)で番地一覧を取得各番地を住所文字列に組み立て(例:「東京都千代田区永田町1丁目6」)、
get_address_locations(addresses:[組み立てた住所一覧])でまとめて取得番地レベルはポリゴンを持たず代表点(Point)のみが返る

上記はClaude Codeがこのプロンプトから生成したHTML(Leaflet地図)のキャプチャです。町丁目のポリゴン(青枠)の中に各番地の代表点(赤丸)がラベル付きで表示されています。
「住所LOD MCPサーバーを使って、この緯度経度(35.6766, 139.7456)はどこの住所か教えて」
reverse_geocode_address(lat:35.6766, long:139.7456)で近傍候補(町丁目レベル)を取得
「住所LOD MCPサーバーを使って、東京23区のうち面積が10km^2以上の区を教えて」
list_child_addresses(parent:"東京都")で23区のuriを取得し、get_address_areas(addresses:[23件のuri])でまとめて面積を算出このような複数件を横断した集計・比較は、都道府県・市区町村レベルの単純な面積(公表統計でよく知られている)よりも
get_address_areasの価値が出やすい使い方です。町丁目・丁目レベルの面積(公表資料に載っていないことが多い)を尋ねる場合も同様です算出される面積は住所LODのポリゴンからの近似値(緯度によるcos補正込みの平面近似)であり、国土地理院等の公式統計とは完全には一致しません
「住所LOD MCPサーバーを使って、大阪市で最も面積が大きい区を教えて」
list_child_addresses(parent:"大阪府大阪市")で大阪市24区のuriを取得し、get_address_areas(addresses:[24件のuri])でまとめて面積を算出して比較実際に試すと「住之江区(約20.73km^2)、此花区(約19.35km^2)、平野区(約15.31km^2)」の順に大きいという結果が得られます(実データ検証済み)
「住所LOD MCPサーバーを使って、大阪府大阪市住之江区と東京都北区、どちらの面積が大きいか教えて」
get_address_areas(addresses:["大阪府大阪市住之江区","東京都北区"])で2件まとめて面積を算出して比較実際に試すと、大阪府大阪市住之江区(約20.73km^2)が東京都北区(約20.66km^2)よりわずかに大きく、差は約0.08km^2という結果が得られます(実データ検証済み)
このように、都市も自治体の種類も異なる任意の複数の住所を1回のTool呼び出しでまとめて指定し、ポリゴンの大きさをそのまま比較できます
「住所LOD MCPサーバーを使って、47都道府県すべてを結合した日本地図を作りたい」
list_prefectures()で47都道府県の正式名称を取得(手で列挙すると書き漏らしが起きるため、必ずこのToolを使う)陸地のまとまりで5グループに分ける: 北海道/本州/四国/九州/沖縄
各グループごとに
get_address_locations(addresses:[グループ内の県], dropSmallIslands:true, simplify:"medium")を呼ぶ(計5回)47都道府県を1回にまとめると多くのMCPクライアントの1MB制限を超えるため、必ず5分割する
戻り値のgeometryは標準的なGeoJSON(RFC 7946)なので、LeafletのL.geoJSON()やMapLibre GL JS、deck.gl等の地図ライブラリにそのまま渡せます。
47都道府県すべてを結合した日本地図についての補足
Claude Desktop等の多くのMCPクライアントには、Tool呼び出し1回の結果が約1MBを超えると失敗する制限があります。北海道・本州・四国・九州・沖縄は互いに海で隔てられているため、上記の通り5グループに分ければ通常は境界に隙間は生じません(唯一の例外: 岡山県⇔香川県は瀬戸内海上の小島の行政界を共有しており、この1境界だけはズレる可能性があります)。サーバー側にも、応答が大きくなりすぎる場合に自動でより軽量な設定へ切り替える安全弁がありますが、47都道府県すべてを1回にまとめるケースだけはこの安全弁でも救えないため、必ず5分割してください。
47都道府県分のGeoJSONファイルが欲しいだけの場合
「住所LOD MCPサーバーを使って、47都道府県すべてのポリゴンを1つのGeoJSONファイルに保存して」
list_prefectures()→save_address_locations_to_file(addresses:[47件], outputPath:"japan.geojson")を1回呼ぶだけでよいsave_address_locations_to_fileは結果を会話に返さずローカルファイルへ直接書き出すため、1MBのレスポンス上限を受けない。5グループに分割する必要はなく、離島を含む正確な形状のまま1回で保存できる「地図を作りたい/表示したい/見せてほしい」という依頼にはこのToolを使わないこと。書き出したファイルの中身は会話に含まれずClaude自身は読めないため、地図(HTMLやアプリ)を描画できない。その場合は上記の「47都道府県すべてを結合した日本地図を作りたい」の例(
get_address_locationsを5グループに分割)を使う。「ファイルとして保存/エクスポートしてほしい」のように、ファイルを受け取るだけでよい依頼のときだけこちらを使う
Tips:
save_address_locations_to_fileはファイルへ直接書き出すため、Claude Codeのような環境では応答サイズの制約自体がなく、simplifyを省略してもdropSmallIslandsなしの高精細な形状のまま保存できます。実際にClaude Codeで「住所LOD MCPサーバーを使って、47都道府県すべてのポリゴンをsimplifyせずに1つのGeoJSONファイルに保存して」というプロンプトで、離島を含む正確な形状のまま約24MBのGeoJSONファイルの生成に成功しています。
応用事例: 境界データに外部の統計データを重ねた色分け地図
「住所LOD MCPサーバーを使って東京23区のポリゴンを取得して、それぞれの人口を色分け地図にしたい」
list_child_addresses(parent:"東京都")で23区のuriを取得し、get_address_locations(addresses:[23件のuri], simplify:"medium")で境界(GeoJSON)をまとめて取得人口データは住所LODの範囲外(行政区域の境界・住所を扱うデータソースであり、統計データは持たない)。Claudeが用意した人口データを、取得した境界の
properties(区名等)と突き合わせて色分け(コロプレス図)を作成するこのサーバーは境界データの取得までを担い、統計データの用意・重ね合わせ・描画はClaude側の仕事という役割分担になる。実際にClaude Desktopでこのプロンプトを使い、意図通りの人口別色分け地図が作成できることを確認済み

上記はClaude Desktopがこのプロンプトから生成したHTML(Leaflet地図)のキャプチャです。
「住所LOD MCPサーバーを使って47都道府県すべてのポリゴンを取得して、それぞれの人口を色分け地図にしたい」
上記の「47都道府県すべてを結合した日本地図を作りたい」と同じ手順(
list_prefectures()→ 5グループに分けてget_address_locationsを5回)で境界データを取得し、23区の例と同様に人口データ(住所LODの範囲外、Claude側で用意)を重ねて色分け地図にする既知の注意点: 取得データ量を抑えようとして、Claudeが一部の地域(実例では四国・九州・沖縄)を自己判断でポリゴンではなく代表点の円マーカーに置き換えてしまうことがある。これはこのサーバーのTool呼び出し・レスポンスの時点では起きておらず(データ自体は正しく全都道府県分取得できている)、その後のHTML等を組み立てる生成過程でのClaude側の判断であるため、サーバー側から検知・防止することはできない
回避方法: 一部の地域が円マーカー等に簡略化されていたら、「四国・九州・沖縄も省略せずポリゴンで表示して」のように、取得済みのデータをそのまま使うよう明示的に指示し直す。実際にこの追加指示で全都道府県がポリゴン表示に修正されることを確認済み

上記はClaude Desktopがこのプロンプトから生成したHTML(Leaflet地図)のキャプチャです。
応用事例: 都道府県ごとの名産アイコンを重ねた地図
「住所LOD MCPサーバーを使って47都道府県すべてのポリゴンを取得して、それぞれの都道府県の名産を表すアイコンを一つ、ポリゴンの中央に表示したい」
list_prefectures()→get_address_locations(addresses:[47件])で47都道府県の境界(GeoJSON)をまとめて取得各都道府県の名産品(データ元は住所LODの範囲外、Claudeが選定)を表す絵文字アイコンを、境界データの代表点(中央)に配置してLeaflet地図として描画
Claude Codeのように応答サイズの制約がない環境で実行したため、
simplifyなしの高精細な形状のまま47都道府県すべてを取得できている(上記Tips参照)

上記はClaude Codeがこのプロンプトから生成したHTML(Leaflet地図)のキャプチャです(大阪府のアイコンをクリックした状態)。
元データについて
このMCPサーバーは住所LODが公開するデータを利用しています。以下は2026年8月時点の情報です。住所LOD側の更新により変わることがあるため、最新情報は住所LODサイトを参照してください。
データ版: 2026年版(
https://uedayou.net/loa/で本番稼働中)ライセンス: CC BY 4.0互換(出典表記のもとで商用利用・二次配布・加工可)
データ | 出典 | 基準日 |
都道府県・市区町村 | 国交省 国土数値情報 | 2025年版(2025-01-01) |
町丁目 | 総務省統計局 小地域境界データ | 2020年国勢調査版(5年ごと更新) |
番地 | 国交省 位置参照情報 街区レベル | 令和6年版(2024年基準) |
号(建物番号)は元データに存在しないため含まれません。また番地データは都市計画区域内が中心で、農村・山間部など区域外は網羅されていません。
免責事項
本ソフトウェアは現状有姿(as-is)で提供され、開発者はその動作・正確性・可用性についていかなる保証も行いません。
本ソフトウェアが問い合わせる住所LODは無償で公開されている共有のサービスです。多数のユーザーからのアクセスが同時に集中した場合、または特定の利用者から大量のアクセスがあった場合、住所LOD側の判断でアクセスしづらくなる、または利用が制限されることがあります。
住所LODが提供するデータについては、その正確性の維持に努められていますが、内容の正確性・完全性・最新性は保証されません。本ソフトウェアの出力を利用する際は、その正誤・妥当性を利用者自身の責任で判断してください。
以上を踏まえ、本ソフトウェアおよび住所LODは各自の判断と責任においてご利用いただき、その結果生じた損害について開発者は責任を負いません。
ライセンス
本ソフトウェア(コード)はMIT Licenseのもとで公開しています。利用しているデータ(住所LOD)のライセンスは上記「元データについて」の通り別途CC BY 4.0互換です。
開発
npm run typecheck # 型チェック
npm test # vitest
npm run build # dist/ へコンパイル
npm run inspector # MCP Inspector で対話的に確認Available Tools
8 toolsget_address_location住所の位置(ポリゴン/ポイント)を取得A
住所LODから、指定した住所のポリゴンまたはポイントをGeoJSON Featureとして取得する。住所LODの .ttl(Turtle)を取得し、クライアント側(このサーバー)でGeoJSONに変換する (住所LOD側のサーバー負荷軽減のため、.geojsonではなく.ttlを使う)。「〇〇郡△△町」の郡名、政令指定都市の市名の省略、「ケ/ヶ/ヵ」等の異体字表記ゆれは自動補完を試みる。simplify でポリゴンの座標点数を間引ける(市区町村レベル以上は数千点になることがあり、必要精度が低い用途では指定を推奨)。都道府県・市区町村・一部の町丁目レベルは住所LODが代表点(lat/long)を持たないため、その場合はポリゴンの重心(MultiPolygonは最大面積のポリゴンの重心)で自動的に補完する(properties.point_source: 'centroid'で判別可能)。戻り値のgeometryは標準的なGeoJSON(RFC 7946)。地図に表示する場合はLeafletのL.geoJSON()やMapLibre GL JS、deck.gl等のGeoJSON対応の地図ライブラリにそのまま渡せばよく、座標変換やSVGでの手動描画を自前で行う必要はない。複数の住所(例: 23区すべて)をまとめて取得したい場合は、1件ずつこのToolを呼ぶ代わりに get_address_locations を使う。dropSmallIslands(都道府県のみ指定可)で、点数の大半を占める極小の離島を除外して大幅に軽量化できる。
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | 住所文字列(例: '東京都千代田区永田町1丁目')、または住所LODのURI (例: 'https://uedayou.net/loa/東京都千代田区永田町1丁目')。都道府県〜丁目まではポリゴン、番地は代表点(ポイント)のみが返る。号(建物番号)は特定できない。「〇〇郡△△町」の郡名や、政令指定都市の市名(例: '神奈川県南区'←'神奈川県横浜市南区')を省略しても自動的に補完を試みる。「ケ/ヶ/ヵ」等の異体字表記ゆれも自動的に試行する。複数の住所をまとめて取得したい場合は get_address_locations を使う。 | |
| simplify | No | ポリゴンの座標点数を間引くレベル(既定 'none' = 間引かない)。必要性は住所のレベルによって大きく異なる: 丁目・丁目なし町レベル(例: 永田町1丁目、歌舞伎町)は元々数十〜100点程度しかなく、simplifyの効果はほぼないため通常は指定不要。市区町村レベル(例: 新宿区、約1,277点)は数百〜数千点になることが多く、'low'(軽微)または'medium'(標準)を検討する価値がある。都道府県レベル(例: 東京都、約40,428点)は数万点になり、そのままだと1回の会話で扱いきれないことがある。'high'(積極的)は形状の崩れが大きく見た目が実用に耐えないことが多いため、都道府県レベルなど点数が極端に多く 'low'/'medium' でも収まらない場合の最終手段として使うこと(理由なく既定選択にしない)。Point(番地の代表点)には効果がない。 | |
| dropSmallIslands | No | 既定false(何も除外しない=正確な形状を保つ)。trueにすると、実面積が約0.01km^2(概ね100m四方)未満の離島(岩礁・洲を含む)をポリゴンから丸ごと除外する。**addressが都道府県そのもの(例: '東京都'、'沖縄県'。市区町村以下は不可)である場合のみ指定できる**。都道府県レベルは1件で数万点になり得るが、その大半は既に最小限(4点)の構成の離島パーツが占めるため、simplifyだけでは大きく削減できない。小さい離島を除外することで大幅に削減できる(失われる面積は都道府県の面積のごく一部)。47都道府県すべてを結合した日本地図のような用途は get_address_locations の同名パラメータを使う。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so excellently. It discloses that the tool fetches TTL and converts to GeoJSON client-side to reduce server load, auto-completes omitted county/city names and variant characters, uses centroid fallback when LOD lacks representative points (with point_source property), returns RFC 7946 GeoJSON compatible with mapping libraries, and explains simplify/dropSmallIslands side effects. This goes far beyond a basic action statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence delivers actionable information. It is front-loaded with the core purpose, then systematically covers conversion, auto-completion, centroid fallback, GeoJSON compatibility, alternative tools, and parameter usage nuances. There is no redundancy or filler; despite its length, it remains efficiently organized and directly relevant to tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—three parameters with nuanced behavior, no output schema, and no annotations—the description is remarkably complete. It explains the return format (GeoJSON Feature), the point_source marker for centroids, how to use with mapping libraries, limitations (e.g., banchi points only, no building numbers), and when to use sibling tools. It leaves no practical gaps for an agent deciding whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 100%, the description adds substantial meaning beyond the schema. For 'address' it explains levels (prefecture to chome polygon, banchi point, gou not possible), URI example, and auto-completion. For 'simplify' it provides concrete point counts for different administrative levels and warns against 'high' as default. For 'dropSmallIslands' it explains the area threshold, applicability only to prefectures, and rationale. These details are not in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: '住所LODから、指定した住所のポリゴンまたはポイントをGeoJSON Featureとして取得する' (retrieves polygon or point for a specified address from Address LOD as a GeoJSON Feature). It clearly distinguishes from sibling get_address_locations by explicitly stating that for multiple addresses, one should use get_address_locations instead of calling this tool multiple times.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: for single addresses use this, for multiple use get_address_locations. It also gives detailed usage conditions for parameters: simplify recommended at city/prefecture levels with specific point counts, dropSmallIslands only for prefectures, and 'high' simplify as a last resort. These are clear when/when-not and alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_address_locations複数住所の位置(ポリゴン/ポイント)をまとめて取得(地図・アプリをその場で作る場合は必ずこちら)A
複数の住所をまとめて取得し、1つのGeoJSON FeatureCollectionとして返す。get_address_location を住所ごとに何度も呼ぶ代わりに使う(例: 「23区すべて」のような複数エンティティをまとめて地図表示したい場合)。最大50件まで。各要素の解決ルール(郡名・政令市名の省略補完、数字表記・異体字の正規化、代表点がない場合のポリゴン重心補完)は get_address_location と共通。simplifyは全Featureをまとめてトポロジー(共有境界線)を保持したまま簡略化するため、get_address_locationと違って隣接する地域間に隙間が生じない。一部の住所が解決できなくても全体を失敗にはせず、featuresから除外した上でunresolvedとして注記する(全件失敗のときのみisError)。戻り値のFeatureCollectionは標準的なGeoJSON(RFC 7946)なので、Leaflet等の地図ライブラリにそのまま渡せる(座標変換・SVGでの手動描画は不要)。dropSmallIslands(都道府県のみ指定可)を使うと、47都道府県すべてを結合した日本地図のような全国スケールの用途でも扱えるサイズまで縮小できる。degenerateIslands(dropSmallIslands:trueかつsimplify指定時のみ)でさらに軽量化できるが、いずれの設定でも地図に表示されない離島があることは必ずnoteで案内される。地図を作りたい/表示したい/見せてほしい、のようにClaude自身が取得したポリゴンを使ってその場で地図やアプリを組み立てる依頼では、必ずこのTool(get_address_locations)を使うこと — save_address_locations_to_fileはファイルに書き出すだけで中身がレスポンスに含まれないため、地図を描画できない。結果をそのまま会話に返す必要がなく、ファイルとして保存したいだけの場合(例: 「GeoJSONとしてエクスポートして」)にのみ save_address_locations_to_file を使うこと。
| Name | Required | Description | Default |
|---|---|---|---|
| simplify | No | ポリゴンの座標点数を間引くレベル(既定 'none')。全件をまとめてトポロジー(共有境界線)を保持したまま簡略化するため、get_address_locationの`simplify`(各ポリゴンを独立に間引く)と異なり、隣接する地域同士の境界がズレて隙間が生じることはない。必要性は住所のレベルによって大きく異なる: 丁目・丁目なし町レベルを複数まとめて取得する場合、1件あたり元々数十〜100点程度しかなく、simplifyの効果はほぼないため通常は指定不要。市区町村・政令市区レベルを複数まとめて取得する場合(例: 23区すべて)は1件あたり数百〜数千点になり得るため、まず 'low'(軽微)または 'medium'(標準)を検討する価値がある。'high'(積極的)は小さい町ほど形状の崩れが目立ち見た目が実用に耐えないことが多いため、'low'/'medium' でも点数が収まらない場合の最終手段として使うこと(理由なく既定選択にしない)。 | |
| addresses | Yes | 住所文字列またはURIの配列(最大50件)。各要素は get_address_location と同じ表記ゆれ(郡名・政令市名の省略、全角数字・漢数字・ハイフン区切り、「ケ/ヶ/ヵ」等の異体字)を自動補完する。例: 東京都23区すべてのポリゴンをまとめて取得したい場合、まず list_child_addresses(parent:'東京都') で23件のuriを取得し、そのままこの配列に渡す。47都道府県すべてが欲しい場合は、名前を手で列挙せずlist_prefectures の結果を使うこと(手で列挙すると書き漏らしが起きることがある)。**ただし47都道府県すべてを結合した日本地図が欲しい場合、47件を1回で渡さないこと** — Claude Desktop等の多くのMCPクライアントには、Tool呼び出し1回の結果が約1MBを超えると失敗する制限があり、47都道府県一括はこのサーバーの最も軽量な組み合わせ(dropSmallIslands:true, degenerateIslands:'omit', simplify:'high')でも1.14MBとなり必ず超過する(このケースはdropSmallIslands/degenerateIslands/simplifyをどう指定しても、サーバー側の安全弁でも解決できないほど大きい。件数を減らす以外に方法はない)。代わりに次の5グループに分け、このToolを5回呼ぶこと(同じ組み合わせなら各グループ1MB未満に収まる。最大の本州グループでも約930KB): 北海道=[北海道]。本州=[青森県,岩手県,宮城県,秋田県,山形県,福島県,茨城県,栃木県,群馬県,埼玉県,千葉県,東京都,神奈川県,新潟県,富山県,石川県,福井県,山梨県,長野県,岐阜県,静岡県,愛知県,三重県,滋賀県,京都府,大阪府,兵庫県,奈良県,和歌山県,鳥取県,島根県,岡山県,広島県,山口県](34件)。四国=[徳島県,香川県,愛媛県,高知県]。九州=[福岡県,佐賀県,長崎県,熊本県,大分県,宮崎県,鹿児島県]。沖縄=[沖縄県]。これらの陸地は互いに海で隔てられているため、5分割しても通常は境界に隙間は生じない(実測: 実際に隣接する87組中86組はグループ内に収まる)。**唯一の既知の例外は岡山県(本州)⇔香川県(四国)**(瀬戸内海上の小島の行政界を両県が共有しているため)で、この1境界だけはズレうることを許容する。正確な形状(離島を含む完全なポリゴン)が必要で1MB制限のあるクライアントを使わない場合は、5分割せず47件を1回で呼んでもよい。**この上限を超えて複数回に分けて呼ぶ場合(上記の5分割を含む)、simplifyのトポロジー共有(隣接ポリゴンの境界線を隙間なく保つ保証)は呼び出しごとに独立してしまい、別の呼び出しに分かれた地域同士の境界には隙間が生じ得る**(1回の呼び出し内でしか境界共有を保証できないため)。**結果の一部(例: 1件だけ書き漏らした)を後から個別に取得して継ぎ足さないこと** — 同じ理由で、その1件だけ隣接地域との境界がズレる。不足に気づいたら、その不足分が属するグループ(または全件)を揃え直して、そのグループ分の呼び出しを最初からやり直すこと。**ファイルとして保存したいだけで、Claude自身がgeometryの中身を読んで地図やアプリをその場で組み立てる必要がない場合**(例: 「GeoJSONファイルとしてエクスポートして」)は、代わりに save_address_locations_to_file を使うと47都道府県すべてを分割せず1回でローカルファイルへ書き出せる。**ただし「地図を作りたい/表示したい/見せてほしい」のように、Claude自身がその場でポリゴンを使って地図(HTMLやアプリ)を組み立てる必要がある依頼では、save_address_locations_to_fileを使ってはならない** — 書き出したファイルの中身はMCPレスポンスに含まれずClaudeからは見えないため、地図を描画できなくなる。その場合は必ずこのTool(get_address_locations)を使い、上記の5グループ分割を行うこと。 | |
| dropSmallIslands | No | 既定false(何も除外しない=正確な形状を保つ)。trueにすると、実面積が約0.01km^2(概ね100m四方)未満の離島(岩礁・洲を含む)をポリゴンから丸ごと除外する。**addressesの全要素が都道府県そのもの(例: '東京都'、'沖縄県'。市区町村以下は不可)である場合のみ指定できる**。47都道府県すべてを結合した日本地図のような全国スケールの用途向け: 都道府県レベルは全国で121,834個もの離島パーツを含み、そのほとんどが既に最小限(4点)の構成のため、simplifyによる点数の間引きだけでは大きな削減にならない(実測: 47都道府県でsimplify:'high'でも52万点超)。小さい離島を除外することで座標点数を大幅に削減できる(実測: 上記しきい値で除外すると4万点台まで減り、失われる面積は日本の国土面積の0.0065%のみ)。正確な形状(離島を含む完全なポリゴン)が必要な場合はfalseのまま使うこと。**安全弁**: dropSmallIslands:trueで応答が1MB制限に近づきそうな場合、degenerateIslands/simplifyの指定によらずサーバー側が自動的に最も軽量な組み合わせ(degenerateIslands:'omit', simplify:'high')へ切り替えて再取得する(その旨は必ずnoteで案内される)。ただしこれは1回の呼び出しに含む件数が多すぎる場合(例: 47都道府県一括)までは救えないため、上記addressesの説明にある5グループ分割は引き続き必要。 | |
| degenerateIslands | No | **dropSmallIslands:true かつ simplify が'none'以外である場合のみ指定できる**。dropSmallIslandsで大きい離島だけ残した後でも、simplifyの簡略化によって形状が壊れる(退化する)離島が残ることがある。既定'keepOriginal'は、その離島だけ簡略化前のフル精度に戻す(既存の挙動、正確だが座標点数は増える)。'omit'は、その離島を結果から丸ごと除外することでさらに座標点数を削減する(実測: 47都道府県+simplify:'high'で109,435点→49,554点、約55%減)。'omit'を使う場合、dropSmallIslandsによる除外に加えてこの除外がある旨と除外数は必ずnoteとして報告される(いずれの設定でも、地図に表示されない離島が存在することは必ずnoteで案内される)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behaviors: partial failures are excluded and noted as unresolved, only all-fail triggers isError, simplification preserves topology across features, dropSmallIslands is restricted to prefecture-level inputs, and the server automatically switches to the lightest combination as a safety valve. It also states that the output is RFC 7946 GeoJSON directly usable by map libraries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and uses bold warnings and paragraphs to structure critical rules. It is lengthy and repeats the 'map vs. file' directive twice, plus the exhaustive 47-prefecture splitting detail could arguably be moved to the parameter description, but the overall structure is clear and each section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description covers all essential operational aspects: return format, failure handling, parameter constraints, size limitations, and alternatives. It leaves almost no ambiguity about how the tool behaves in complex scenarios, making it highly complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: it explains the practical impact of simplify levels (e.g., low/medium for wards, high as last resort), the prefecture-only rule for dropSmallIslands, the condition for degenerateIslands, and the recommended address grouping strategy for large sets. While some of this overlaps with schema property descriptions, the narrative guidance helps parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '複数の住所をまとめて取得し、1つのGeoJSON FeatureCollectionとして返す' (gets multiple addresses at once and returns as one GeoJSON FeatureCollection). It explicitly distinguishes it from the single-address get_address_location and from save_address_locations_to_file, making its purpose and scope immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use this tool instead of calling get_address_location multiple times, and never use save_address_locations_to_file when the AI needs to build a map in the response. It also provides detailed splitting instructions for 47 prefectures to avoid 1MB client limits, including a concrete 5-group example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_banchi町丁目配下の番地一覧A
指定した町丁目に属する番地を列挙する。丁目のある町は丁目ごとの番地、丁目のない町はそのまま番地一覧になる。号(建物番号)は元データに含まれないため取得できない。「〇〇郡△△町」の郡名、政令指定都市の市名の省略、「ケ/ヶ/ヵ」等の異体字表記ゆれは自動補完を試みる。
| Name | Required | Description | Default |
|---|---|---|---|
| town | Yes | 町丁目レベルの住所文字列またはURI(丁目番号を含まない。例: '東京都新宿区歌舞伎町')。「〇〇郡△△町」の郡名や、政令指定都市の市名の省略(例: '東京都瑞穂町'、'神奈川県南区')、「ケ/ヶ/ヵ」等の異体字表記ゆれは自動的に補完を試みる。 | |
| chome | No | 丁目番号で絞り込む(例: 2)。省略した場合、丁目ありの町については全丁目分の番地をまとめて返す。 | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses auto-completion of input variations (gun names, city omissions, variant characters), output scope (banchi only, not building numbers), and chome aggregation behavior. These are meaningful behavioral insights beyond the schema, though it does not mention error handling or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence paragraph, each sentence adding distinct information: core function, chome behavior, and input normalization. No filler or redundancy; it is efficiently structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description sufficiently explains inputs and behavioral nuances. It covers town normalization, chome handling, and limitations, making it self-contained for selecting and invoking the tool. Minor gaps like return format and limit semantics prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description adds valuable context for the 'town' parameter by explaining auto-completion, and for 'chome' by clarifying that omission returns all chome results aggregated. The 'limit' parameter is not described, but other parameters receive depth beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enumerates banchi (lot numbers) for a specified town, matching the title. It differentiates from siblings by specifying the resource type (banchi under a town) and notes chome handling, which is distinct from generic address search or child address listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool (to list banchi for a town) and explains behavior for towns with and without chome. It also states a limitation (building numbers are not obtainable), but doesn't explicitly name alternative tools or provide exclusion criteria, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_child_addresses住所階層の子要素一覧(ドリルダウン)A
指定した住所(都道府県/市区町村/町丁目)の直接の子要素一覧を取得する。都道府県→市区町村→町丁目のドリルダウンに使う。丁目→番地の列挙はこのToolでは扱えない。「〇〇郡△△町」の郡名、政令指定都市の市名の省略、「ケ/ヶ/ヵ」等の異体字表記ゆれは自動補完を試みる。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| parent | Yes | 親となる住所文字列またはURI(例: '東京都'、'東京都新宿区')。都道府県→市区町村(→行政区)→町丁目の階層のみ辿れる。丁目より下(番地)は対象外。「〇〇郡△△町」の郡名や、政令指定都市の市名の省略(例: '東京都瑞穂町'、'神奈川県南区')、「ケ/ヶ/ヵ」等の異体字表記ゆれは自動的に補完を試みる。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description discloses key behaviors: it only handles direct children, cannot go below chome, and automatically attempts to compensate for omissions and variant spellings. It does not mention return format or pagination limits, but the core behavioral traits are transparently stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a single main purpose sentence, a usage note, and a final note about auto-completion. Every sentence earns its place, no fluff or repetition of schema data beyond what adds clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with 2 parameters and no output schema, the description covers purpose, hierarchical constraints, exclusions, and special handling. It lacks explicit return value details (e.g., whether results include names/URIs), but given the tool's simplicity and sibling context, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the parent parameter is thoroughly described in the schema (hierarchy scope, auto-completion), and the description repeats this. The limit parameter has no description in either schema or description, so the tool description adds no new meaning for it. The contribution is limited to reinforcing parent semantics without covering the gap for limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '指定した住所(都道府県/市区町村/町丁目)の直接の子要素一覧を取得する' (fetches direct child elements of a specified address). It explicitly names the hierarchy levels and distinguishes itself from sibling tools like list_prefectures and list_banchi by focusing on drill-down from prefecture to city to town.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use: '都道府県→市区町村→町丁目のドリルダウンに使う' and clear exclusions: '丁目→番地の列挙はこのToolでは扱えない', indirectly directing users to other tools for lower levels. It also notes auto-completion behaviors, making conditions for use well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prefectures47都道府県の名称一覧を取得A
日本の47都道府県の正式名称を配列で返す(パラメータなし)。47都道府県すべてを結合した日本地図をget_address_locationsで作りたい場合、addressesにこのToolの結果をそのまま渡すこと。LLM自身の記憶から47件を手で列挙すると書き漏らしが起きることがあり、後から不足分だけ個別に取得して結果に継ぎ足すと、その1件だけ隣接する都道府県との境界がズレる(simplifyのトポロジー共有は1回の呼び出し内でしか保証されないため)。このToolで正式な一覧を取得すればその心配がない。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It clarifies the tool is read-only (returns a list) and discloses a subtle behavioral trait: topology sharing is only guaranteed within a single call, so using the full list prevents boundary misalignment. It does not mention any error conditions or performance, but for a static list that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, followed by usage guidance and rationale. All sentences earn their place, but the explanation about topology sharing is relatively lengthy for a simple list tool, making it slightly less concise than it could be. Still highly structured and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description fully covers its purpose, return format, and integration with a sibling tool. It even addresses an edge-case risk (omissions and boundary misalignment) and provides a complete solution. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the baseline is 4. The description explicitly states 'no parameters', reinforcing the schema but adding no additional semantics. Nothing else is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('返す' / returns) with a clear resource (47 prefecture official names as an array) and states it has no parameters. It distinguishes itself from sibling tools by being the canonical list source, not a search or geocoding tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: pass this tool's result directly to addresses when creating a Japan map via get_address_locations. It also tells the agent not to rely on LLM memory or piecemeal fetching, explaining the topology sharing risk. This clearly frames the tool as the correct choice over other address-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_geocode_address緯度経度から近傍住所を検索(逆ジオコーディング)A
緯度経度から近傍の町丁目レベルの住所候補を検索する。精度上限は町丁目レベル(SPARQL上に丁目・番地のgeohashが存在しないため)。都道府県境界付近などでは候補が漏れる可能性がある近似検索であり、点在ジオコーディング(点→行政区画の厳密な判定)ではない。
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | 緯度(WGS84) | |
| long | Yes | 経度(WGS84) | |
| precision | No | geohash前方一致の桁数(5=約4.9km四方、6=約1.2km×0.6km)。SPARQL上に丁目・番地のgeohashは存在しないため、これより細かい精度(号・番地レベル)は特定できない。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses precision limit (町丁目レベル), geohash limitation, approximate search nature, and potential missing candidates near prefecture boundaries. This goes beyond the schema and explains behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the first sentence stating the core purpose and the second adding critical limitations. Every sentence earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 3 well-documented params and no output schema. The description explains what it does, addresses precision, and limitations. It could explicitly state the return format (e.g., list of candidates), but '住所候補' implies multiple results, making it sufficiently complete for context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description's precision limit explanation mirrors schema's precision parameter details, but adds no new meaning beyond the schema. The schema already fully documents lat, long, and precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states '緯度経度から近傍の町丁目レベルの住所候補を検索する' (search nearby town/chome-level address candidates from lat/long), which is a specific verb+resource. It distinguishes from siblings by specifying reverse geocoding and precision limits, unlike forward geocoding tools like search_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes this is not strict point-in-polygon geocoding ('点在ジオコーディング...ではない'), implying when not to use. It also mentions approximate nature and boundary-related miss risk, providing context for when to use it (when approximate reverse geocoding is acceptable). No explicit alternative tool names, but the exclusion is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_address_locations_to_file複数住所の位置をファイルへエクスポート保存(地図・アプリをその場で作る用途には使わない)A
「地図を作りたい/表示したい/見せてほしい」等、Claude自身が取得したポリゴンを使ってその場で地図・可視化・アプリを組み立てる依頼には、このToolを使ってはならない — 書き出したファイルの中身はMCPレスポンスに含まれずClaudeからは見えないため、地図を描画できなくなる。そのような依頼では必ず get_address_locations を使うこと(47都道府県なら5グループに分割する)。このToolを使ってよいのは、ユーザーが明示的にファイルへの保存・エクスポートだけを求めている場合(例: 「GeoJSONファイルとして保存して」「〇〇のデータをエクスポートして」、Claude自身が中身を読む必要がない場合)に限る。get_address_locations と同じく複数の住所をまとめて取得するが、結果をMCPレスポンスに含めず1つのGeoJSON FeatureCollectionとしてローカルファイルへ直接書き出し、パスと概要だけを返す。Claude Desktop等の多くのMCPクライアントが持つTool呼び出し1回あたり約1MBのレスポンス上限を構造的に回避できるため、大きいバッチ(例: 47都道府県すべての結合データ)でもget_address_locationsのように5グループに分割せず1回の呼び出しで(正確な形状のまま)ファイルに書き出せる。このToolはローカルのファイルシステムに書き込む点に注意。
| Name | Required | Description | Default |
|---|---|---|---|
| simplify | No | ポリゴンの座標点数を間引くレベル(既定 'none')。get_address_locationsと同じトポロジー考慮型の簡略化(全件のうち隣接する地域同士の境界線を共有した状態のまま間引くため、境界のズレは生じない)。ファイルに書き出すためMCPレスポンスのサイズ制限はないが、ファイルサイズや後段で読み込むツール側の負荷を抑えたい場合は指定するとよい。 | |
| addresses | Yes | 住所文字列またはURIの配列(最大50件)。get_address_locations と同じ表記ゆれ(郡名・政令市名の省略、全角数字・漢数字・ハイフン区切り、「ケ/ヶ/ヵ」等の異体字)を自動補完する。47都道府県すべてをファイルへエクスポートする場合は、名前を手で列挙せず list_prefectures の結果を使うこと(手で列挙すると書き漏らしが起きることがある)。このToolは結果をファイルに書き出すため、get_address_locationsと違って1MB制限を避けるために件数を分ける必要はない(ただしファイルに保存したいだけの場合に限る。地図・アプリをその場で作る依頼にはこのTool自体を使わないこと。titleの注意参照)。 | |
| outputPath | Yes | 書き出し先のファイルパス(相対パスはこのサーバープロセスのカレントディレクトリ基準、絶対パスも可)。拡張子は呼び出し側が指定した通りに使う(GeoJSONとして扱えるよう `.geojson` を推奨)。親ディレクトリが存在しない場合は自動的に作成する。既存ファイルがあれば上書きする。 | |
| dropSmallIslands | No | 既定false(何も除外しない=正確な形状を保つ)。trueにすると、実面積が約0.01km^2(概ね100m四方)未満の離島(岩礁・洲を含む)をポリゴンから丸ごと除外する。**addressesの全要素が都道府県そのもの(例: '東京都'、'沖縄県'。市区町村以下は不可)である場合のみ指定できる**。このToolはMCPレスポンスのサイズ制限を受けないため、47都道府県すべてを結合したファイルが欲しいだけなら指定不要(falseのまま正確な形状で書き出せる)。ファイルサイズ自体を抑えたい場合のみ指定すること。 | |
| degenerateIslands | No | **dropSmallIslands:true かつ simplify が'none'以外である場合のみ指定できる**。get_address_locationsと同じ意味(既定'keepOriginal'は退化した離島をフル精度に戻す、'omit'はその離島を結果から丸ごと除外してさらに軽量化する)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description correctly carries the full burden. It discloses that the tool writes to the local filesystem, does not include the file contents in the MCP response, returns only a path and summary, overwrites existing files, and can create parent directories. It also explains the technical reason (1MB response limit) and the practical consequence that Claude cannot draw maps from the written file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with a bold warning up front, followed by clear use-case boundaries, technical rationale, and a final caution. The repetition of the 'not for map-building' rule is somewhat redundant, but it is a critical safety constraint that warrants emphasis. Overall, each section contributes useful context for correct tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a complex tool with no output schema and no annotations. It explains the return value (path and summary), the invisibility of file contents to Claude, the difference from get_address_locations, the 1MB workaround, filesystem write behavior, and links to sibling tools like list_prefectures. Combined with the very detailed input schema, there is no significant missing context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The input schema already provides detailed semantics for all parameters, including addresses, outputPath, simplify, dropSmallIslands, and degenerateIslands. The main description adds some usage context, such as recommending list_prefectures for 47 prefectures and clarifying that the 1MB limit does not require splitting, but these are reinforcement of schema information rather than new parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb+resource: exporting multiple addresses to a single GeoJSON FeatureCollection file, returning only path and summary. It explicitly distinguishes itself from get_address_locations, which returns data in the MCP response, while this tool writes to a local file and avoids the 1MB response limit. The title also reinforces the export/save purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance: it must not be used for building maps or visualizations in place, and get_address_locations must be used instead for such requests. It states that this tool is only appropriate when the user explicitly asks for file export/save and Claude does not need to read the contents. It also explains when it is better than splitting into 5 groups, e.g., for 47 prefectures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_address住所を検索A
住所LODを使って、住所ラベルの部分一致で候補を検索する。「ケ/ヶ/ヵ」等の異体字表記ゆれは自動的に吸収する。形状(ポリゴン/ポイント)が必要な場合は、結果のURIを get_address_location に渡すこと。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | 検索したい住所文字列の一部(例: '永田町') | |
| prefecture | No | 都道府県名で絞り込む(例: '東京都')。指定を強く推奨する。未指定は全国スキャンになり低速。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses behavior such as automatic absorption of variant characters (ケ/ヶ/ヵ) and implies output includes URIs by referencing passing them to get_address_location. It does not mention performance limits or whether it is read-only, but for a search tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two succinct sentences. The first sentence states the core action and data source, and the second provides important behavioral detail and a pointer to a sibling tool. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is reasonably complete for a search tool: it explains the matching method, variant handling, and that shape data must be obtained elsewhere. However, it does not detail the exact output format or fields (e.g., whether results include labels or just URIs), and with no output schema or annotations, this gap remains. The note about passing URI to get_address_location partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information. The schema covers query and prefecture with descriptions (67% coverage), but the tool description does not elaborate on limit or provide any additional meaning beyond what the schema states. Since coverage is not high (>80%) and the description does not compensate, this is a weak area.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for address candidates by partial matching of address labels using Address LOD. It distinguishes itself from siblings by explicitly directing users to pass the resulting URI to get_address_location for shape data, clarifying its role as a search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance for using an alternative: pass the URI to get_address_location when shapes are needed. It implies search_address is for finding candidate URIs, but does not mention other sibling tools like list_prefectures or reverse_geocode_address, so it is not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
get_address_location - First observed
get_address_locations - First observed
list_banchi - First observed
list_child_addresses - First observed
list_prefectures - First observed
reverse_geocode_address - First observed
save_address_locations_to_file - First observed
search_address
TDQS
Tools are largely distinct, but get_address_location and get_address_locations (singular/plural) could be confused, and get_address_locations vs save_address_locations_to_file also share a similar batch pattern. However, extensive descriptions with explicit usage guidance minimize misselection.
All tool names follow a consistent verb_noun pattern with lowercase and underscores (get, search, list, reverse_geocode, save). The singular/plural pair is the only minor deviation but remains predictable.
8 tools is well-scoped for an address geocoding and GeoJSON server, covering search, single/batch fetch, hierarchy exploration, reverse geocoding, and file export. Each tool has a distinct role and the count is within the ideal range.
Core workflows are fully covered: search, single/batch geocoding, drill-down via prefectures and child addresses, banchi enumeration, reverse geocoding, and file export. Minor gaps exist such as lack of upward hierarchy traversal or explicit linkage from list_banchi to get_address_location, but these are workable.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
日本の住所と郵便番号を相互変換するMCPサーバー。住所から郵便番号を検索、郵便番号から住所を逆引きします。
Nominatim MCP — wraps OpenStreetMap Nominatim geocoding API (free, no auth)
Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server providing geocoding and place discovery services via Nominatim and OpenStreetMap. It enables users to perform forward and reverse geocoding, extract bounding boxes, and find nearby places or administrative hierarchies.10Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for geocoding French addresses, POIs, and cadastral parcels using the Géoplateforme API. Supports direct geocoding, reverse geocoding, and capability queries.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that provides access to the Kenall postal code API for Japanese address lookups, enabling lookup by postal code and search by address.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for forward geocoding via the Nominatim API (OpenStreetMap) with no API key required.21MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/uedayou/loa-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server