OpenStreetMap MCP Server について
OpenStreetMap MCP サーバーの別エントリーで、ジオコーディング、経路案内、周辺検索などの同じツールを LLM に提供します。OSM の地理データを必要とする LLM アプリケーション向けで、インストール方法も同一です。
主な機能
- 01住所と座標の相互変換
- 02周辺のPOIとカテゴリ検索
- 03場所間の経路案内
- 04複数人向けの待ち合わせ地点の提案
- 05EV充電ステーションと駐車場の検索
- 06近隣の住みやすさ分析
活用シーン
- 01MCP ホストへの地図検索機能の追加
- 02通勤手段の比較や待ち合わせ場所の選定
- 03近くの充電ステーションや駐車場の検索
MCP 対応
本プロジェクトは MCP サーバーであり、地理空間ツールと location://place、location://map のリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenStreetMap(OSM)MCP サーバー
位置情報サービスと地理空間データを使用して LLM の機能を強化する、OpenStreetMap MCP サーバーの実装です。
デモ
待ち合わせ場所の最適化

近隣地域の分析

駐車場の検索

インストール
Claude Desktop、Cursor、Windsurf などの MCP ホストの場合
-
osm-mcp-server:一般公開されているメインサーバーです。"mcpServers": { "osm-mcp-server": { "command": "uvx", "args": [ "osm-mcp-server" ] } }
機能
このサーバーは、OpenStreetMap データを操作するツールを LLM に提供し、位置情報を利用したアプリケーションで次のことを可能にします。
- 住所や地名を座標にジオコーディングする
- 座標を住所に逆ジオコーディングする
- 近くのスポットを検索する
- 場所間のルート案内を取得する
- バウンディングボックス内でカテゴリ別に場所を検索する
- 複数人に最適な待ち合わせ場所を提案する
- エリアを探索し、包括的な位置情報を取得する
- 場所の近くにある学校や教育機関を検索する
- 自宅と職場の間の通勤手段を分析する
- コネクターと出力で絞り込んで EV 充電ステーションを検索する
- 不動産向けに近隣地域の住みやすさを分析する
- 空き状況や料金情報を含む駐車施設を検索する
コンポーネント
リソース
このサーバーは位置情報ベースのリソースを実装しています。
location://place/{query}:名前または住所から場所の情報を取得しますlocation://map/{style}/{z}/{x}/{y}:指定した座標のスタイル付き地図タイルを取得します
ツール
このサーバーは複数の地理空間ツールを実装しています。
geocode_address:テキストを地理座標に変換しますreverse_geocode:座標を人が読める住所に変換しますfind_nearby_places:場所の近くにあるスポットを探しますget_route_directions:場所間のターンごとのルート案内を取得しますsearch_category:エリア内の特定カテゴリの場所を検索しますsuggest_meeting_point:複数人に最適な待ち合わせ場所を探しますexplore_area:近隣地域に関する包括的なデータを取得しますfind_schools_nearby:指定した場所の近くにある教育機関を検索しますanalyze_commute:自宅と職場の間の交通手段を比較しますfind_ev_charging_stations:条件を指定して EV 充電インフラを検索しますanalyze_neighborhood:不動産向けに近隣地域の住みやすさを評価しますfind_parking_facilities:目的地の近くにある駐車場を検索します
ローカルテスト
サーバーの実行
サーバーをローカルで実行するには、次の手順に従います。
- 開発モードでパッケージをインストールします。
pip install -e .
- サーバーを起動します。
osm-mcp-server
- サーバーが起動し、標準入出力で MCP リクエストを待ち受けます。
サンプルクライアントでのテスト
このリポジトリには、examples/ ディレクトリに 2 つのサンプルクライアントが含まれています。
基本的なクライアントの例
client.py は OSM MCP サーバーの基本的な使用方法を示します。
python examples/client.py
この例では、次の処理を行います。
- ローカルで実行中のサーバーに接続する
- サンフランシスコの情報を取得する
- エリア内のレストランを検索する
- 進捗を追跡しながら包括的な地図データを取得する
LLM 統合の例
llm_client.py は、LLM との統合を目的としたヘルパークラスを提供します。
python examples/llm_client.py
この例では、LLM が Location Assistant を使用して次のことを行う方法を示します。
- テキストクエリから位置情報を取得する
- 近くのスポットを検索する
- 場所間のルート案内を取得する
- 最適な待ち合わせ場所を探す
- 近隣地域を探索する
独自のクライアントを作成する
独自のクライアントを作成するには、次の手順に従います。
- MCP クライアントをインポートします。
from mcp.client import Client
- サーバー URL を指定してクライアントを初期化します。
client = Client("http://localhost:8000")
- ツールを呼び出すか、リソースにアクセスします。
# Example: Geocode an address
results = await client.invoke_tool("geocode_address", {"address": "New York City"})
ローカルサーバー用 Claude Desktop の設定
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
開発中/未公開サーバーの設定
"mcpServers": {
"osm-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/osm-mcp-server",
"run",
"osm-mcp-server"
]
}
}
開発
ビルドと公開
パッケージを配布できる状態にするには、次の手順に従います。
- 依存関係を同期し、ロックファイルを更新します。
uv sync
- パッケージのディストリビューションをビルドします。
uv build
これにより、ソースディストリビューションとホイールディストリビューションが dist/ ディレクトリに作成されます。
- PyPI に公開します。
uv publish
注:環境変数またはコマンドフラグを使って、PyPI の認証情報を設定する必要があります。
デバッグ
MCP サーバーは stdio 経由で動作するため、デバッグが難しい場合があります。最適なデバッグ環境を利用するには、MCP Inspector の使用を強くおすすめします。
次のコマンドを使って、npm 経由で MCP Inspector を起動できます。
npx @modelcontextprotocol/inspector uv --directory /path/to/osm-mcp-server run osm-mcp-server
起動すると、Inspector に URL が表示されます。この URL にブラウザーからアクセスすると、デバッグを開始できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。