osm-mcp
osm-mcp
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サービスへのインターネットアクセス(下記の表を参照)
設定
すべての変数はオプションです。サーバーはそのまま動作します。
変数 | デフォルト | 説明 |
|
| すべてのサービスに送信されるUser-Agent。Nominatimは実際の識別可能なものを要求します。 |
|
| ジオコーディング / 逆ジオコーディング |
|
| タイポ耐性ジオコーディング |
|
| ルーティング、行列、トリップ最適化。 |
|
| カンマ区切りのOverpassエンドポイント。429/5xx時に順に試行されます。 |
|
| 等時線 |
| – | オプションのOpenRouteServiceキー(シークレット)。設定すると、ルート、行列、等時線にOSRM/Valhallaの代わりにORSを使用します。無料枠: 2000方向/日、40/分。 |
|
| OpenRouteServiceエンドポイント |
|
| 同一のアップストリームレスポンスをメモリキャッシュから提供する秒数( |
インストール
claude mcp add osm -- npx -y osm-mcpClaude 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 は必須です。プロトコルは標準入力と標準出力で動作します。公開するポートはありません。その他のクライアント設定方法はクライアントガイドにあります。
ツール
ツール | 説明 |
| 場所名/住所 → 座標(NominatimまたはPhoton) |
| 座標 → 最寄りの住所 |
| 2つ以上のウェイポイント間の距離と所要時間、 |
| 1回の呼び出しですべての出発地からすべての目的地までの移動時間/距離 |
| 一連の停留所の最適な訪問順序(巡回セールスマン問題、OSRM trip) |
| 時間または距離の予算内で到達可能なエリア(Valhalla、またはキーを使用してORS) |
| カテゴリまたは生のOSMタグによる場所周辺のPOI、距離順にソート(Overpass) |
| 1つの要素の完全なOSMレコード: 営業時間、ウェブサイト、電話番号など |
| 2~8人に適した公平な待ち合わせ場所(移動時間のバランス) |
| 大圏距離、オフラインで計算 |
| 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リリース
タグ駆動型で、手動の公開手順は不要です。
CHANGELOG.mdの[Unreleased]エントリを新しい## [x.y.z] - YYYY-MM-DDセクションに移動し、package.jsonのバージョンを更新します。npm run lint && npm run build && npm run test:coverageを実行します。コミット後、署名付き注釈付きタグを作成します:
git tag -s vx.y.z -m "vx.y.z"。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 ワークフローを手動で起動してください。タグジョブを再実行しないでください。古いツリーをチェックアウトすることになります。
ライセンス
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.303MIT
- Alicense-qualityBmaintenanceFree geospatial MCP server for AI agents, providing geocoding, reverse geocoding, POI search, and route planning using OpenStreetMap data via Nominatim, Overpass, and OSRM.1GPL 3.0
- Flicense-qualityAmaintenanceAn MCP server providing geocoding, routing, isochrones, and POI-by-proximity search through self-hosted OpenStreetMap backends.
- Alicense-qualityAmaintenanceMCP server for geocoding, reverse geocoding, place/POI search, and distance calculation using OpenStreetMap Nominatim, with no API key required.183MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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