Skip to main content
Glama

osm-mcp

CI npm version npm downloads node Container license Docs

OpenStreetMap向けのMCPサーバーです。ジオコーディング、徒歩・車・自転車の距離と所要時間、複数経由地のルート最適化、等時線、POI検索を提供し、AIアシスタントによる旅行計画のために構築されています。

11のツールを提供し、すべて読み取り専用です。すべてのバックエンドは無料の公開OpenStreetMapサービスであり、APIキーは不要です。オプションでOpenRouteServiceのキーを指定すると、ルーティングエンジンを切り替えることができます。

📖 完全なドキュメント: https://osm-mcp.ni-c.de

なぜ別のOSM MCPサーバーなのか?

  • 正しい徒歩・自転車ルート。 公開OSRMデモサーバーはOSRM URLパス内のプロファイルセグメントを無視し、FOSSGISの routed-foot / routed-bike / routed-car パスプレフィックスが使用されない限り、常にのルートを返します。既存のほとんどのOSM MCPサーバーはこれを誤って処理し、徒歩クエリに対して黙って車の所要時間を返します。このサーバーは正しいプレフィックスを使用し、ライブスモークテストで徒歩ルートが車ルートよりもはるかに遅いことを確認しています。

  • ポリシー準拠の設計。 サービスごとのレート制限(NominatimとOSRM: 1リクエスト/秒)、すべてのリクエストに識別用のUser-Agent(Nominatim利用ポリシーで必須)、レスポンスキャッシュ、Overpassの同時実行数制限(2スロット)、429/5xxエラー時のOverpassミラーへの自動フェイルオーバーを備えています。

  • Photonサポート。 komootのPhotonによるオプションのタイポ耐性ジオコーディング。インタラクティブな使用向けに設計されており、Nominatimを連打するよりもLLM駆動のルックアップに適しています。

Related MCP server: Geo MCP Worker

要件

  • Node.js ≥ 22

  • 公開OpenStreetMapサービスへのインターネットアクセス(下記の表を参照)

設定

すべての変数はオプションです。サーバーはそのまま動作します。

変数

デフォルト

説明

OSM_USER_AGENT

osm-mcp/<version> (+https://github.com/ni-c/osm-mcp)

すべてのサービスに送信されるUser-Agent。Nominatimは実際の識別可能なものを要求します。

NOMINATIM_BASE_URL

https://nominatim.openstreetmap.org

ジオコーディング / 逆ジオコーディング

PHOTON_BASE_URL

https://photon.komoot.io

タイポ耐性ジオコーディング

OSRM_BASE_URL

https://routing.openstreetmap.de

ルーティング、行列、トリップ最適化。routed-{car,bike,foot} パスプレフィックス(FOSSGISレイアウト)を提供する必要があります。

OVERPASS_BASE_URL

https://overpass-api.de/api/interpreter,https://overpass.private.coffee/api/interpreter

カンマ区切りのOverpassエンドポイント。429/5xx時に順に試行されます。

VALHALLA_BASE_URL

https://valhalla1.openstreetmap.de

等時線

ORS_API_KEY

オプションのOpenRouteServiceキー(シークレット)。設定すると、ルート、行列、等時線にOSRM/Valhallaの代わりにORSを使用します。無料枠: 2000方向/日、40/分。

ORS_BASE_URL

https://api.openrouteservice.org

OpenRouteServiceエンドポイント

OSM_CACHE_TTL

3600

同一のアップストリームレスポンスをメモリキャッシュから提供する秒数(0でキャッシュ無効化)

インストール

claude mcp add osm -- npx -y osm-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "osm": {
      "command": "npx",
      "args": ["-y", "osm-mcp"]
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.osm]
command = "npx"
args = ["-y", "osm-mcp"]

コンテナ(マルチアーキテクチャ、SBOMとビルド証明書付き):

docker run -i --rm ghcr.io/ni-c/osm-mcp

-i は必須です。プロトコルは標準入力と標準出力で動作します。公開するポートはありません。その他のクライアント設定方法はクライアントガイドにあります。

ツール

ツール

説明

geocode

場所名/住所 → 座標(NominatimまたはPhoton)

reverse_geocode

座標 → 最寄りの住所

route

2つ以上のウェイポイント間の距離と所要時間、foot/car/bike。オプションで区間ごとの要約

route_matrix

1回の呼び出しですべての出発地からすべての目的地までの移動時間/距離

optimize_route

一連の停留所の最適な訪問順序(巡回セールスマン問題、OSRM trip)

isochrone

時間または距離の予算内で到達可能なエリア(Valhalla、またはキーを使用してORS)

find_nearby_pois

カテゴリまたは生のOSMタグによる場所周辺のPOI、距離順にソート(Overpass)

poi_details

1つの要素の完全なOSMレコード: 営業時間、ウェブサイト、電話番号など

suggest_meeting_point

2~8人に適した公平な待ち合わせ場所(移動時間のバランス)

straight_line_distance

大圏距離、オフラインで計算

map_link

openstreetmap.orgのマーカー/ルート案内リンク、オフラインで計算

すべての場所入力は、名前/住所(自動ジオコーディング)またはリテラル座標 "lat,lon" のいずれかを受け付けます。

利用ポリシーと帰属表示

このサーバーは共有コミュニティインフラと通信します。公開されている制限をクライアント側で強制しますが、運営者は全体的な使用を軽度かつ非商業的に抑えるようユーザーに求めています。

  • データ: © OpenStreetMap コントリビューター、ODbL 1.0 に基づきライセンス。

  • Nominatim: 最大1リクエスト/秒、識別用User-Agent必須、結果はキャッシュされます(ポリシー)。

  • OSRM / Valhalla (FOSSGIS): 妥当かつ非商業的な使用。最大1リクエスト/秒(詳細)。

  • Overpass: IPあたり約2同時スロット、10,000クエリ/日未満(wiki)。

  • Photon: フェアユース(photon.komoot.io)。

大量または商業的な使用の場合は、サービスをセルフホストし、*_BASE_URL 変数で自身のインスタンスを指定してください。

安全性

  • すべてのツールは読み取り専用です。サーバーがOpenStreetMapに書き込むことはありません。

  • 認証情報は不要です。オプションの ORS_API_KEY は読み込み後にプロセス環境から削除され、エラーメッセージからも編集されます。

  • OSM由来のコンテンツ(名前、住所、タグ)はツール結果内で信頼できないデータとしてマークされ、モデルがデータとして扱い、指示として扱わないようにします。

  • アップストリームのエラー本文は切り詰められ、HTMLエラーページはモデルコンテキストに到達する前に削除されます。

  • リダイレクトは決して追跡されません。すべてのリクエストはタイムアウトします。

開発

npm install
npm run lint          # eslint + prettier
npm test              # unit tests (all upstream APIs mocked)
npm run test:coverage
npm run build
npm run smoke         # opt-in LIVE test against the real public services

リリース

タグ駆動型で、手動の公開手順は不要です。

  1. CHANGELOG.md[Unreleased] エントリを新しい ## [x.y.z] - YYYY-MM-DD セクションに移動し、package.json のバージョンを更新します。

  2. npm run lint && npm run build && npm run test:coverage を実行します。

  3. コミット後、署名付き注釈付きタグを作成します: git tag -s vx.y.z -m "vx.y.z"

  4. git push origin main vx.y.z を実行します。

その後、release.yml がテストを実行し、Trusted Publishing(トークンシークレット不要)を介してnpmに公開し、CHANGELOGセクションからGitHubリリースを作成し、MCPレジストリio.github.ni-c/osm-mcp として公開します。ci.yml は同じタグでマルチアーキテクチャイメージをGHCRにプッシュします。

レジストリのステップが失敗した場合は、main ブランチで修正し、Publish to MCP Registry ワークフローを手動で起動してください。タグジョブを再実行しないでください。古いツリーをチェックアウトすることになります。

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server providing 30 tools for geocoding, routing, and OpenStreetMap data analysis. It enables AI assistants to search for locations, calculate travel routes, and perform quality assurance checks on map data.
    30
    3
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Free geospatial MCP server for AI agents, providing geocoding, reverse geocoding, POI search, and route planning using OpenStreetMap data via Nominatim, Overpass, and OSRM.
    1
    GPL 3.0
  • A
    license
    -
    quality
    A
    maintenance
    MCP server for geocoding, reverse geocoding, place/POI search, and distance calculation using OpenStreetMap Nominatim, with no API key required.
    183
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.

  • Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

View all MCP Connectors

Latest Blog Posts

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/ni-c/osm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server