loading…
Search for a command to run...
loading…
Enables querying OpenStreetMap data (buildings, roads, amenities, etc.) via Overpass API and converts them to GeoJSON format for GIS analysis and visualization.
Enables querying OpenStreetMap data (buildings, roads, amenities, etc.) via Overpass API and converts them to GeoJSON format for GIS analysis and visualization.
OpenStreetMapのデータをOverpass API経由で取得し、GeoJSON形式で保存するMCP (Model Context Protocol)サーバーです。
get_buildings): 住宅、商業、工業、公共建物の取得get_roads): 高速道路から住宅街道路までの道路データget_amenities): レストラン、病院、学校などのPOIデータget_waterways): 川、湖、運河、貯水池などの水域データget_green_spaces): 公園、森林、農地、草地などの緑地get_railways): 鉄道線路、駅、地下鉄、トラムなどget_api_stats): 使用統計、キャッシュ状況、エラー率の監視test_connection): Overpass APIサーバーへの接続診断convert_to_geojson): OSMデータからGeoJSONへの変換npm install
# 通常の起動
npm start
# 開発モード(MCP Inspectorを使用)
npm run dev
# 全テストを実行
npm test
# 重要なテストのみ実行
npm run test:critical
# 高速テスト(重要テスト + 早期終了)
npm run test:fast
# 個別テスト実行
npm run test:simple # 基本接続テスト
npm run test:diagnostic # ネットワーク診断
npm run test:features # 新機能テスト
npm run test:download # ダウンロード機能テスト
npm run test:direct # 直接ファイル出力テスト
# MCPプロトコル検証テスト(新機能)
node test/mcp-protocol-verification.js # プロトコル準拠確認
node test/error-handling-test.js # エラーハンドリング検証
node test/integration-test.js # 統合テスト実行
東京駅周辺(東経139.765-139.768度、北緯35.679-35.682度)の建物データをGeoJSON形式で取得してください。
新宿駅周辺の以下のデータを取得してファイルに保存してください:
- 建物データ(商業施設のみ)
- 道路ネットワーク(主要道路のみ)
- レストランなどの飲食店
座標は東経139.695-139.705度、北緯35.685-35.695度でお願いします。
渋谷駅周辺の建物データを最大30件まで取得してください。商業施設に限定してGeoJSONで出力をお願いします。
OSMサーバーの接続状況とAPI使用統計を確認してください。
皇居周辺(東経139.75-139.77度、北緯35.68-35.69度)の水域データ(川、堀など)を取得してください。
品川駅周辺の鉄道データを10件まで取得して、レスポンス時間を短縮してください。
渋谷駅周辺500m四方の建物、道路、公園データを取得して都市密度を分析したい
→ 建物密度、道路アクセス、緑地率などの分析が可能
浅草寺周辺の観光スポット(レストラン、神社、公園)を50件まで取得して歩行者道路のデータも欲しい
→ 観光客向けの歩行ルートや見どころマップを作成
学校周辺の避難に使える道路、公園、公共施設のデータを収集したい。重要度の高い施設を20件程度で
→ 避難経路や避難場所の最適化に活用
品川駅周辺の鉄道、道路、バス停のデータで交通アクセスを分析したい。主要な交通機関を15件まで
→ 交通利便性の評価や都市計画に活用
{
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [...]
},
"summary": {
"feature_count": 42,
"limit_applied": 50,
"is_truncated": false,
"bbox": [139.765, 35.679, 139.768, 35.682],
"building_type": "all"
}
}
{
"status": "success",
"message": "建物データをダウンロードしました",
"file": "./data/tokyo_buildings.geojson",
"size": "0.85 MB",
"feature_count": 245,
"limit_applied": null,
"is_truncated": false,
"building_type": "all",
"bbox": [139.765, 35.679, 139.768, 35.682],
"server": "overpass-api.de"
}
{
"timestamp": "2025-07-07T13:00:00.000Z",
"api_statistics": {
"uptime": { "formatted": "2h 30m" },
"requests": { "total": 150, "perMinute": "1.2" },
"cache": { "hitRate": "75.3%" },
"errors": { "errorRate": "0.7%" }
},
"cache_statistics": { "size": 45 },
"compliance_info": {
"user_agent": "OSM-MCP/1.0",
"rate_limiting": "enabled",
"caching": "enabled (15min TTL)",
"overpass_api_compliance": "full"
}
}
建物データを取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)building_type (オプション): 建物タイプ (residential, commercial, industrial, public, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パス(.geojson/.json)道路ネットワークを取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)road_types (オプション): 道路タイプの配列 (motorway, trunk, primary, secondary, tertiary, residential, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パスアメニティ(施設・設備)を取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)amenity_type (オプション): アメニティタイプ (restaurant, hospital, school, bank, cafe, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パス水域・河川データを取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)waterway_type (オプション): 水域タイプ (river, stream, canal, lake, reservoir, pond, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パス緑地・公園データを取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)green_space_type (オプション): 緑地タイプ (park, forest, garden, farmland, grass, meadow, nature_reserve, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パス鉄道データを取得します。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)railway_type (オプション): 鉄道タイプ (rail, subway, tram, monorail, station, platform, all)limit (オプション): 取得件数の上限(1-10000)output_path (オプション): ファイル出力パスAPI使用統計とシステム状況を取得します。
パラメータ:
reset (オプション): 統計をリセットするかどうか(boolean)Overpass APIサーバーへの接続をテストします。
パラメータ: なし
OSMファイルをGeoJSONに変換します。
パラメータ:
input_path: 入力OSMファイルパス(必須)output_path: 出力GeoJSONファイルパス(必須)生のOSMデータをダウンロードします。
パラメータ:
query: Overpass QLクエリ(必須)output_path: 保存先ファイルパス(必須)format (オプション): 出力形式 (json, xml)指定エリアの全データをダウンロードします。
パラメータ:
minLon, minLat, maxLon, maxLat: 取得範囲の座標(必須)output_path: 保存先ファイルパス(必須)OSM-MCP/1.0による適切な識別| 機能カテゴリ | 対応状況 | 詳細 |
|---|---|---|
| 初期化ハンドラー | ✅ 完了 | initialize, initialized 対応 |
| プロトコル応答 | ✅ 完了 | JSON-RPC 2.0 準拠 |
| ツール機能 | ✅ 完了 | 12ツール、スキーマ検証済み |
| エラーハンドリング | ✅ 完了 | 標準エラーコード (-32601, -32602, -32603) |
| 統合テスト | ✅ 完了 | 実用シナリオでの動作確認済み |
プロンプトに「最大30件まで」「10件程度」「5つまで」などの表現を含めると、自動的に件数制限が適用されます:
東京駅周辺の建物データを最大50件まで取得してください
↓ 自動的に limit: 50 が適用される
品川駅の鉄道データを10件程度で
↓ 自動的に limit: 10 が適用される
limit_applied と is_truncated を含むClaude Code では claude mcp add コマンドでMCPサーバーを登録します:
# プロジェクトに移動
cd /path/to/osm-geojson-mcp-server
# 実行権限を付与(初回のみ必要)
chmod +x src/index.js
# MCPサーバーを登録(ローカルスコープ)
claude mcp add osm-geojson node src/index.js
# または絶対パスで登録
claude mcp add osm-geojson [absolute path to ]/osm-geojson-mcp-server/src/index.js
詳細は Claude Code MCP ドキュメント を参照してください。
claudeを起動後/mcpコマンドを実行しMCPが正しく接続できているか確認してください。
✔ connectedが表示されていれば正常に動作しています。
Claude に以下のように話しかけてください:
「東京駅周辺の建物データを取得して」
「新宿の地図データを分析したい」
「OSMサーバーの接続状況を確認して」
Claude が自動的に適切なツールを選択してデータを取得します。
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)MIT License - 詳細は LICENSE ファイルを参照
Run in your terminal:
claude mcp add osm-geojson-mcp-server -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.