GIS MCP サーバー
GIS ライブラリ (現在は Shapely と PyProj がサポートされています) を使用して大規模言語モデル (LLM) を GIS 操作に接続し、AI アシスタントが地理空間操作と変換を実行できるようにするモデル コンテキスト プロトコル (MCP) サーバー実装。
アルファ
バージョン0.2.0(アルファ版)は現在開発中です。このプロジェクトの構築にご協力いただける方や開発者の方を歓迎いたします。
🎥 デモ
Related MCP server: Math-MCP
📋 目次
🚀 機能
🔍 包括的な幾何学演算(交差、結合、バッファなど)
🌐 高度な座標変換と投影
📏 正確な距離と面積の計算
🗺️ 空間分析と検証
🛠️ MCP 対応クライアントとの簡単な統合
📋 前提条件
Python 3.10以上
MCP 互換クライアント (Claude Desktop や Cursor など)
パッケージインストールのためのインターネット接続
🛠️ インストール
ニーズに最適なインストール方法を選択してください。
📦 pip インストール
ほとんどのユーザーには pip インストールが推奨されます。
uv パッケージ マネージャーをインストールします。
pip install uv仮想環境を作成する (Python 3.10+):
uv venv --python=3.10パッケージをインストールします。
uv pip install gis-mcpサーバーを起動します。
gis-mcppip 設定
Claude または Cursor で pip インストールを使用するには、次の構成を追加します。
クロードデスクトップ:
ウィンドウズ:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
"args": []
}
}
}Linux/Mac:
{
"mcpServers": {
"gis-mcp": {
"command": "/home/YourUsername/.venv/bin/gis-mcp",
"args": []
}
}
}カーソル IDE ( .cursor/mcp.jsonを作成):
ウィンドウズ:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
"args": []
}
}
}Linux/Mac:
{
"mcpServers": {
"gis-mcp": {
"command": "/home/YourUsername/.venv/bin/gis-mcp",
"args": []
}
}
}設定後:
YourUsername実際のユーザー名に置き換えてください。開発インストールの場合は、
/path/to/gis-mcp実際のプロジェクトへのパスに置き換えます。変更を適用するにはIDEを再起動してください
すべての GIS 操作を Claude または Cursor を通じて使用できるようになりました。
🛠️ 開発インストール
貢献者と開発者向け:
uv パッケージ マネージャーをインストールします。
pip install uv仮想環境を作成します。
uv venv --python=3.10開発モードでパッケージをインストールします。
uv pip install -e .サーバーを起動します。
python -m gis_mcp開発構成
Claude または Cursor で開発インストールを使用するには、次の構成を追加します。
クロードデスクトップ:
ウィンドウズ:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
"args": ["-m", "gis_mcp"]
}
}
}Linux/Mac:
{
"mcpServers": {
"gis-mcp": {
"command": "/path/to/gis-mcp/.venv/bin/python",
"args": ["-m", "gis_mcp"]
}
}
}カーソル IDE ( .cursor/mcp.jsonを作成):
ウィンドウズ:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
"args": ["-m", "gis_mcp"]
}
}
}Linux/Mac:
{
"mcpServers": {
"gis-mcp": {
"command": "/path/to/gis-mcp/.venv/bin/python",
"args": ["-m", "gis_mcp"]
}
}
}設定後:
YourUsername実際のユーザー名に置き換えてください。開発インストールの場合は、
/path/to/gis-mcp実際のプロジェクトへのパスに置き換えます。変更を適用するにはIDEを再起動してください
すべての GIS 操作を Claude または Cursor を通じて使用できるようになりました。
🛠️ 利用可能なツール
シェイプリーオペレーション
基本操作
道具 | 説明 |
| カスタマイズ可能なパラメータを使用してジオメトリの周囲にバッファを作成する |
| 2つのジオメトリの交差を見つける |
| 2つのジオメトリを組み合わせる |
| ジオメトリ間の差異を見つける |
| 図形間の対称差を求める |
幾何学的特性
道具 | 説明 |
| ジオメトリの凸包を計算する |
| ジオメトリの境界ボックスを取得する |
| ジオメトリの最小回転長方形を取得する |
| ジオメトリの重心を取得する |
| ジオメトリの境界を取得する |
| ジオメトリの座標を取得する |
| ジオメトリのタイプを取得する |
変革
道具 | 説明 |
| 指定した角度と原点でジオメトリを回転する |
| x と y の係数でジオメトリをスケーリングする |
| x、y、zオフセットでジオメトリを移動する |
高度な操作
道具 | 説明 |
| ジオメトリの三角形を作成する |
| 点からボロノイ図を作成する |
| 複数のジオメトリの結合を作成する |
測定
道具 | 説明 |
| ジオメトリの長さを取得する |
| ジオメトリの面積を取得する |
検証と簡素化
道具 | 説明 |
| ジオメトリが有効かどうかを確認する |
| ジオメトリを有効にする |
| 指定された許容値でジオメトリを簡略化する |
PyProj 操作
座標変換
道具 | 説明 |
| CRS間の座標変換 |
| CRS間のジオメトリを投影する |
CRS情報
道具 | 説明 |
| CRSの詳細情報を取得する |
| 利用可能なすべてのCRSのリストを取得します |
| 指定された座標のUTMゾーンを取得します |
| 指定された座標の UTM CRS を取得する |
| 指定された座標の地心CRSを取得する |
測地計算
道具 | 説明 |
| 測地計算に関する情報を取得する |
| 点間の測地距離を計算する |
| 指定された距離と方位角の点を計算します |
| 測地計算を使用して多角形の面積を計算する |
🛠️ クライアント開発
ツールの使用例:
バッファ操作
Tool: buffer
Parameters: {
"geometry": "POINT(0 0)",
"distance": 10,
"resolution": 16,
"join_style": 1,
"mitre_limit": 5.0,
"single_sided": false
}座標変換
Tool: transform_coordinates
Parameters: {
"coordinates": [0, 0],
"source_crs": "EPSG:4326",
"target_crs": "EPSG:3857"
}測地距離
Tool: calculate_geodetic_distance
Parameters: {
"point1": [0, 0],
"point2": [10, 10],
"ellps": "WGS84"
}🔮 計画されている機能
より多くの GIS ライブラリのサポートを追加 - GDAL/OGR
高度な空間インデックスを実装する
ラスター操作のサポートを追加
ネットワーク分析機能を実装する
3Dジオメトリのサポートを追加
パフォーマンスの最適化を実装する
🤝 貢献する
皆様のご寄付をお待ちしております!ご協力いただける方法は以下の通りです。
リポジトリをフォークする
機能ブランチを作成する (
git checkout -b feature/AmazingFeature)変更をコミットします(
git commit -m 'Add some AmazingFeature')ブランチにプッシュする (
git push origin feature/AmazingFeature)プルリクエストを開く
PRの説明には、問題と解決策を明確に記載してください。該当する場合は、関連する問題番号も含めてください。
📄 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
🔗 関連プロジェクト
モデルコンテキストプロトコル- MCPのコア実装
Shapely - 幾何学的オブジェクトの操作と分析のための Python パッケージ
PyProj - PROJライブラリへのPythonインターフェース
📞 サポート
サポートについては、GitHub リポジトリで問題を開いてください。