MCP-Geo

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Can be used as a geocoding provider for the server through the GEOCODER_PROVIDER environment variable

  • Default geocoding provider through Nominatim (nominatim.openstreetmap.org) to provide geocoding and reverse geocoding capabilities

MCP-ジオ

GeoPY を使用したジオコーディング MCP サーバー!

📋 システム要件

  • Python 3.6以上

📦 依存関係

必要な依存関係をすべてインストールします。

# Using uv uv sync

必要なパッケージ

  • fastmcp : モデルコンテキストプロトコルサーバーを構築するためのフレームワーク
  • geoPy : 場所にアクセスし、ジオコーディング/逆ジオコーディングするための Python ライブラリ。

すべての依存関係はrequirements.txtに指定されており、簡単にインストールできます。

📑 目次

🛠️ MCP ツール

この MCP サーバーは、大規模言語モデル (LLM) に次のジオコーディング ツールを提供します。

ジオコード位置

  • ユーザーが指定した住所または地名を受け取り、最も一致する緯度、経度、およびフォーマットされた住所を返します。
  • エラーを適切に処理し、場所が見つからない場合やエラーが発生した場合は None を返します。

逆ジオコード

  • 緯度と経度を取得して、最も近い住所を返します。
  • 地図上の地点に関する説明情報を見つけるのに役立ちます。

詳細付きジオコード

  • geocode_location と似ていますが、ジオコーダでサポートされている場合は、境界ボックスやより詳細な住所情報などの追加データを返します。

複数の場所をジオコードする

  • 住所文字列のリストを受け入れ、各住所のジオコーディング結果 (緯度/経度/住所) のリストを返します。
  • ジオコーディング サービスのクォータに達しないようにレートが制限されています。

逆ジオコード複数場所

  • [緯度、経度] のペアのリストを受け入れ、それぞれに対して逆ジオコーディングを実行します。
  • 緯度、経度、住所を含む辞書のリストを返します。検索が失敗した場合は None を返します。レート制限もあります。

住所間の距離

  • 2 つの住所または地名間の距離を計算します。
  • 2 つの住所と測定単位 (マイル/キロメートル) を受け入れます
  • 指定された単位で距離を返します。いずれかのアドレスをジオコーディングできなかった場合は None を返します。

座標間の距離

  • 2 つの緯度/経度ペア間の距離を計算します。
  • 緯度と経度の2組と測定単位(キロメートル/マイル)を受け入れます
  • 指定された単位で距離を返します。

🚀 はじめに

リポジトリをクローンします。

git clone https://github.com/webcoderz/MCP-Geo.git cd MCP-Geo

📦 インストールオプション

このMCPサーバーは、Claude Desktopまたはその他の場所にインストールできます。ニーズに最適なオプションをお選びください。

オプション1: Claude Desktop 用にインストール

FastMCP を使用してインストールします。

fastmcp install geo.py --name "MCP Geo"

オプション2: 別の場所にインストールする

このサーバーを他の場所で使用するには:

  1. 設定ファイルに次の構成を追加します。
{ "mcp-geo": { "command": "uv", "args": [ "--directory", "MCP-Geo", "run", "geo.py" ], "env": { "NOMINATIM_URL": "${NOMINATIM_URL}", "SCHEME": "http", "GEOCODER_PROVIDER": "nominatim" } } }

🔒 安全機能 • レート制限: 各ジオコーディング呼び出しにはレート制限 (例: 1 秒の遅延) があり、使用制限に違反する過剰なリクエストを回避します。 • エラー処理: geopy 例外 (タイムアウト、サービス エラー) をキャッチし、クラッシュする代わりに安全な None 結果を返します。

📚 開発ドキュメント

このサーバーを拡張または変更したい場合は、次の手順に従ってください。• geo.py で各ツールの実装方法と geopy の統合方法を確認してください。• 環境変数を調整してプロバイダー(Nominatim、ArcGIS、Bing など)を切り替えてください。• 境界ボックス、言語設定、高度なデータ抽出などの高度な使用方法については、geopy の公式ドキュメントを参照してください。

⚙️ 環境変数

環境変数を使用してサーバーを構成します。

変数説明デフォルト
GEOCODER_PROVIDER (オプション)「nominatim」、「arcgis」、または「bing」指名
NOMINATIM_URL (オプション)Nominatimのドメインnominatim.openstreetmap.org
SCHEME (オプション)http/httpshttp
ARC_USERNAME (ArcGISの場合はオプション)ArcGIS ユーザー名なし
ARC_PASSWORD (ArcGIS の場合はオプション)ArcGIS パスワードなし
BING_API_KEY (Bing に必須)Bing マップのキー。なし

これらはシェルまたは環境のMCP設定ファイルで設定できます。さらに設定が必要な場合は、geo.pyを編集して、使用しているジオコーダに追加してください。

ID: ujss4qy5fs