mcpField
G
Geocoding

Geocoding

ローカル
github.com/danishashko地図・旅行112 週間前に更新

Geocoding について

Geocodingは、OpenStreetMap Nominatimで位置を調べるMCPサーバーです。住所と座標の相互変換、場所検索、直線距離の計算に対応し、APIキーは不要です。

主な機能

  1. 01ジオコーディング
  2. 02リバースジオコーディング
  3. 03場所とPOIの検索
  4. 04直線距離の計算
  5. 05MarkdownまたはJSONでの出力

活用シーン

  1. 01住所の座標を調べる
  2. 02座標から場所を特定する
  3. 03指定した種類の場所を検索する
  4. 04地点間の直線距離を比較する

MCP 対応

ジオコーディング、リバースジオコーディング、場所検索、距離計算のツールをMCPクライアントに公開します。標準入出力を使い、JSON-RPCで通信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"danishashko-geocode": {
"command": "npx",
"args": [
"-y",
"geocode-mcp"
],
"env": {
"GEOCODE_USER_AGENT": "<GEOCODE_USER_AGENT>"
}
}
}
}
起動コマンドnpx -y geocode-mcp
設定が必要な環境変数
GEOCODE_USER_AGENTDescriptive User-Agent with contact info requested by OpenStreetMap, e.g. 'your-app [email protected]'

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmgeocode-mcp1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Geocoding MCP サーバー 🗺️

npm version npm downloads Python License: MIT

OpenStreetMap Nominatim を利用して、地名や住所を座標に(またその逆に)変換し、Claude Desktop や MCP 互換クライアントで使用できます。順方向・逆方向のジオコーディング、場所・POI の検索、場所間の距離を、すべて自然言語で利用できます。API キーは不要です。

npm パッケージ: geocode-mcp  ·  GitHub リポジトリ: danishashko/geocode-mcp。

🎯 できること

  • 📍 ジオコーディング — 住所/場所/ランドマーク → 緯度・経度
  • 🔄 逆ジオコーディング — 座標 → 人が読める住所
  • 🔎 場所の検索 — 説明に合う POI/場所を検索
  • 📏 距離 — 名前で指定した 2 つの場所間の直線距離

ジオコーディングは、LLM が単独では確実に行えない作業です。このサーバーを使えば、Claude は OpenStreetMap から実際の最新の座標を取得できます。すべてのツールは、デフォルトで人が読める Markdown を返し、リクエストに応じて構造化された JSON も返せます(response_format: "json")。軽量で(Python 標準ライブラリと mcp のみを使用)、API キーも不要です。

🚀 クイックスタート

Claude Desktop の設定に以下を追加し、Claude を再起動します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "geocode": {
      "command": "npx",
      "args": ["-y", "geocode-mcp"],
      "env": {
        "GEOCODE_USER_AGENT": "your-app-name [email protected]"
      }
    }
  }
}

OpenStreetMap は、すべてのクライアントに連絡先情報を含む説明的な User-Agent の送信を求めています。GEOCODE_USER_AGENT にご自身の名前/メールアドレスを設定してください(デフォルト値が設定されているため、すぐに使用できます)。初回起動時、npx ラッパーが分離された Python 環境を作成し、依存関係をインストールします(初回のみ、約 1 分)。Python 3.10+ と Node.js 16+ が必要です。

グローバルインストールを使う場合
npm install -g geocode-mcp
{
  "mcpServers": {
    "geocode": {
      "command": "geocode-mcp",
      "env": { "GEOCODE_USER_AGENT": "your-app-name [email protected]" }
    }
  }
}

🔧 利用可能なツール

ツール返される内容パラメーター
geocode住所/場所/ランドマークに対する、順位付けされた座標候補query、limit、country_codes
reverse_geocode指定された緯度・経度の住所latitude、longitude
search_places説明に一致する場所/POIとその座標query、limit、country_codes
distance_between名前で指定した 2 つの場所間の直線距離origin、destination、unit

すべてのツールで response_format も指定できます(デフォルトは "markdown"、または "json")。country_codes は任意の、カンマ区切りの ISO 3166-1 alpha-2 フィルターです(例:us または us,ca)。

💬 プロンプトの例

サーバーを接続したら、Claude に尋ねるだけです。

  • 「エッフェル塔の座標を教えてください。」
  • 「緯度 40.7484、経度 -73.9857 にあるものは何ですか?」
  • 「パリの書店を探してください。」
  • 「ロンドンからエディンバラまで、マイルでどれくらい離れていますか?」
  • 「『1600 Pennsylvania Avenue』をジオコーディングしてください。米国内のみでお願いします。」

🐛 トラブルシューティング

「OpenStreetMap がリクエストをレート制限しています」 Nominatim の公開サーバーが許可するリクエストは、約 1 秒あたり 1 件です。このサーバーはリクエストを自動的に調整しますが、それでも制限に達した場合は、少し待ってください。

「場所が見つかりません」 より具体的なクエリや、表現を変えたクエリを試すか、country_codes フィルターを追加して曖昧さを解消してください。

「コマンドが見つかりません」/「Python が見つかりません」 Python 3.10 以降と Node.js 16 以降がインストールされ、PATH に設定されていることを確認してください。macOS/Linux では、python3 を試してください。

Claude にツールが表示されない場合

  1. 設定ファイルが有効な JSON であること(末尾に余分なカンマがないこと)を確認してください。
  2. Claude Desktop を完全に終了してから、再度起動してください。

別のモデルやプロバイダーを使用する場合(LiteLLM、OpenRouter、NVIDIA NIM、ローカルモデル) このサーバーがモデルと通信することはありません。クライアントがローカルプロセスとしてサーバーを起動し、 stdin/stdout 経由で JSON-RPC をやり取りするため、ANTHROPIC_BASE_URL の変更や、 クライアントが使用するモデルの切り替えは影響しません。このような切り替えの後に ツールが動作しなくなった場合は、2 点を確認してください。モデルが関数呼び出しに対応していること、 また、未対応のパラメーターを削除するように設定されたプロキシによってツール定義が エラーもなく削除されている可能性があることです。サーバーに問題があると判断する前に、 クライアントで /mcp(または claude mcp list)を実行して、サーバーが接続されていることを 確認してください。

🛠️ 手動インストール(別の方法)

npx 経由ではなく、Python ファイルを直接実行する場合:

1. サーバーをダウンロードして依存関係をインストールする

pip install mcp

(macOS/Linux では pip3 を使用)

2. Claude Desktop にサーバーを指定する

{
  "mcpServers": {
    "geocode": {
      "command": "python3",
      "args": ["/absolute/path/to/geocode_mcp.py"],
      "env": { "GEOCODE_USER_AGENT": "your-app-name [email protected]" }
    }
  }
}

Windows では "command": "python" と、"C:\\path\\to\\geocode_mcp.py" のようなパスを使用してください。

3. Claude Desktop を再起動します。

🔒 プライバシーと利用ポリシー

  • OpenStreetMap の無料の Nominatim API を使用します。公開 API で、キーは不要です。
  • リクエストはお使いのマシンから OpenStreetMap へ直接送信されます。保存やプロキシ経由の転送は行われません。
  • Nominatim の利用ポリシーに従い、サーバーは内容が分かる User-Agent を送信し、リクエストを約 1 秒あたり 1 件に自動調整します。公開サーバーに対して大量または高負荷の処理を行わないでください。
  • データ © OpenStreetMap の貢献者。データは ODbL の下で利用できます。

📝 注記

  • distance_between が返すのは直線距離(大圏距離)であり、車での移動距離や経路距離ではありません。
  • 結果は関連性/重要度の順に並べられます。曖昧な地名(例:「Springfield」)を絞り込むには、country_codes を使用してください。
  • 水辺や遠隔地付近で逆ジオコーディングを行うと、住所が返されない場合があります。

📋 変更履歴

全バージョンの履歴については、CHANGELOG.md をご覧ください。

📚 リソース

⚖️ 法的免責事項

このツールは OpenStreetMap Nominatim API を使用していますが、OpenStreetMap Foundation との提携関係はなく、同財団による推奨も受けていません。ジオコーディングデータ © OpenStreetMap の貢献者。データは Open Database License の下でライセンスされています。利用には Nominatim の利用ポリシーが適用されます。

👤 作成者

Daniel Shashko

📄 ライセンス

MIT © Daniel Shashko

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。