Openstreetmap Mcpserver について
OpenStreetMap MCP Serverは、OpenRouteService APIを通じて、OpenStreetMapベースのルート検索と場所検索をMCPクライアントに提供します。ルート比較、距離マトリックス、費用見積もり、複数の移動手段に対応しています。
主な機能
- 01経由地を含むルート計算
- 02ルート候補の比較
- 03距離と所要時間のマトリックス作成
- 04燃料費と通行料の見積もり
- 05場所検索と逆ジオコーディング
- 06車、徒歩、自転車に対応
活用シーン
- 01経由地を含む旅行計画
- 02有料道路や高速道路を避けるルートの比較
- 03移動距離、所要時間、費用の見積もり
- 04場所の検索や座標の住所特定
MCP 対応
ルート計算、ルート比較、距離マトリックス、基本的なルート情報、費用見積もり、場所検索、逆ジオコーディングをツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenStreetMap MCP サーバー
OpenRouteService API を使用した高度なルート計画、コスト見積もり、場所検索のために、OpenStreetMap のルート検索機能を Claude AI と統合する Model Context Protocol(MCP)サーバーです。
機能
- ルート計算:複数の地点間の最適なルートを取得します
- ルート比較:さまざまな条件(有料道路を避ける、高速道路を避けるなど)でルートを比較します
- 距離マトリックス:複数の出発地と目的地間の距離と所要時間を計算します
- コスト見積もり:移動にかかる燃料費と通行料を見積もります
- 場所検索:OpenStreetMap のジオコーディングを使用して場所を検索します
- 複数の移動手段:車、徒歩、自転車に対応しています
前提条件
- Node.js(LTS バージョン 18 以降を推奨) - nodejs.org からダウンロード
- OpenRouteService API キー - openrouteservice.org から無料で取得
- MCP 統合用の Claude Desktop アプリケーション
セットアップ手順
1. クローンしてインストール
git clone [your-repo-url]
cd openstreetmap-mcp-server
npm install
2. OpenRouteService API キーを取得
- openrouteservice.org にアクセスします
- 無料アカウントに登録します
- ダッシュボードに移動します
- 新しい API キーを作成します
- 設定用に API キーをコピーします
3. API キーを設定
config/config.json を編集し、API キーを置き換えます。
{
"openStreetMap": {
"apiKey": "your-actual-api-key-here"
}
}
4. サーバーをテスト
# Test configuration
npm test
# Start in development mode
npm run dev
5. Claude Desktop を設定
Claude Desktop の MCP 設定ファイルに以下を追加します。
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\\Claude\\claude_desktop_config.json
{
"mcpServers": {
"openstreetmap": {
"command": "node",
"args": ["/absolute/path/to/openstreetmap-mcp-server/src/index.js"],
"cwd": "/absolute/path/to/openstreetmap-mcp-server"
}
}
}
6. 使用を開始
Claude Desktop を再起動すると、次のような質問ができます。
- 「パリからベルリンまでの最適なルートを見つけて」
- 「有料道路を利用する場合としない場合の、空港までのルートを比較して」
- 「ロンドンからエディンバラまで車で移動する場合の費用はいくら?」
- 「タイムズスクエアの近くにあるレストランを探して」
利用可能なツール
calculate_route
経由地点に対応した、OpenStreetMap データを使用する最適なルートを取得します。
パラメーター:
origin(必須):出発地点(住所または lat,lng 形式の座標)destination(必須):到着地点(住所または lat,lng 形式の座標)waypoints(任意):経由地点の配列mode(任意):移動手段 - 車、徒歩、自転車、公共交通機関avoidTolls(任意):有料道路を避けるかどうかを指定するブール値avoidHighways(任意):高速道路を避けるかどうかを指定するブール値
compare_routes
さまざまな条件で複数のルート候補を比較します。
パラメーター:
origin(必須):出発地点destination(必須):到着地点options(必須):比較するルート条件の配列
get_matrix
複数の出発地と目的地間の距離と所要時間のマトリックスを取得します。
パラメーター:
origins(必須):出発地点の配列destinations(必須):目的地の配列
get_traffic_info
基本的なルート情報を取得します(注:OpenStreetMap ではリアルタイムの交通情報は利用できません)。
パラメーター:
origin(必須):出発地点destination(必須):到着地点
estimate_costs
燃料費と通行料の見積もりを含む、移動費用を計算します。
パラメーター:
origin(必須):出発地点destination(必須):到着地点fuelPricePerLiter(任意):燃料 1 リットルあたりの価格(デフォルト:1.50)vehicleFuelEfficiency(任意):車両の燃費(km/リットル)(デフォルト:8.0)tollEstimatePerKm(任意):1 km あたりの通行料の見積もり(デフォルト:0.05)
find_places
OpenStreetMap のジオコーディングサービスを使用して場所を検索します。
パラメーター:
query(必須):検索クエリ(例:「レストラン」、「ホテル」)location(任意):検索の中心となる場所radius(任意):検索半径(メートル)(デフォルト:1000)
設定オプション
config/config.json を編集して、次の項目をカスタマイズします。
{
"openStreetMap": {
"apiKey": "your-api-key"
},
"server": {
"port": 3001,
"host": "localhost"
},
"routing": {
"defaultProfile": "driving-car",
"maxWaypoints": 25,
"maxAlternatives": 3,
"units": "metric"
},
"costs": {
"fuelPricePerLiter": 1.50,
"vehicleFuelEfficiency": 8.0,
"tollEstimatePerKm": 0.05
}
}
トラブルシューティング
よくある問題
1. 「Error loading config」メッセージ
config/config.jsonが存在し、有効な JSON 形式であることを確認してください- API キーが正しく設定されていることを確認してください
2. 「API request failed」エラー
- OpenRouteService API キーが有効で、アクティブであることを確認してください
- openrouteservice.org で API の利用上限を確認してください
- インターネットに接続できることを確認してください
3. 「Address not found」エラー
- 住所の代わりに座標(lat,lng 形式)を使ってみてください
- その場所が実在し、アクセス可能であることを確認してください
- 住所のスペルを確認してください
4. サーバーが起動しない
# Check Node.js version
node --version # Should be 18+
# Clear dependencies and reinstall
rm -rf node_modules package-lock.json
npm install
# Check for configuration errors
npm test
5. Claude Desktop からサーバーが見つからない
- Claude Desktop の設定では絶対パスを使用してください
- 設定を変更した後は Claude Desktop を再起動してください
- OS に応じた MCP 設定ファイルのパスが正しいことを確認してください
デバッグモード
デバッグログを有効にして実行します:
DEBUG=* npm start
個別の関数のテスト
テストスクリプトを作成するか、npm test コマンドを使用して、サーバーの機能をテストできます。
Google Maps との違い
この OpenStreetMap MCP サーバーは Google Maps と同様の機能を提供しますが、いくつかの重要な違いがあります:
利点
- 無料かつオープンソース:基本機能に利用制限はありません
- プライバシー重視:追跡やデータ収集はありません
- コミュニティ主導:世界中のボランティアがデータを管理しています
- カスタマイズ可能:ルート検索プロファイルや設定を完全に制御できます
制限事項
- リアルタイムの交通情報なし:交通情報は利用できません
- 公共交通機関の対応が限定的:公共交通機関を使ったルート検索には制限があります
- ジオコーディングの精度:一部の地域では Google より精度が低い場合があります
- 商業施設の POI:商業施設のポイントオブインタレストが少なめです
API のレート制限
OpenRouteService の無料プランには、次の制限があります:
- 1日あたり2,000リクエスト
- 1分あたり40リクエスト
- 行列計算は1か月あたり2,000リクエスト
より高い上限が必要な場合は、openrouteservice.org で有料プランへのアップグレードをご検討ください。
貢献
皆さまからの貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
MIT ライセンス — 自由に変更、配布できます。
概要
OpenStreetMap MCP Server — オープンソースの地図を Claude AI に導入します
使用技術:
reverse_geocode
緯度と経度の座標から、場所の名前と住所を取得します。
パラメーター:
latitude(必須):緯度座標(-90~90)longitude(必須):経度座標(-180~180)zoom(任意):詳細度を指定するズームレベル(1~18。数値が大きいほど詳細。デフォルト:18)
使用例:
reverse_geocode({
latitude: 48.8584,
longitude: 2.2945
})
レスポンス形式:
{
"status": "success",
"coordinates": {
"latitude": 48.8584,
"longitude": 2.2945
},
"address": {
"formatted_address": "Tour Eiffel, Avenue Gustave Eiffel, Gros-Caillou, 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France",
"name": "Tour Eiffel",
"street": "Avenue Gustave Eiffel",
"neighbourhood": "Gros-Caillou",
"locality": "Paris",
"region": "Île-de-France",
"country": "France",
"country_code": "FR",
"postal_code": "75007"
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。