# QGIS MCP Plugin + qgis-mcp Server 導入メモ このフォルダは、demo.godo-tys.jp に追加した QGIS MCP 連携ページ用の補助ファイルです。 ## 追加した構成 ```text src/pages/software/qgis-mcp.astro # デモサイト上の説明ページ public/code/qgis-mcp/ # Webからダウンロードできる設定・サンプル public/demo-data/qgis-mcp/ # 説明図SVG mcp/qgis-mcp/ # ローカル実行向けMCP補助ファイル ``` ## 2系統の使い分け ### A. QGIS Desktop 操作 既存の `nkarasiak/qgis-mcp` を使います。 - QGIS Desktopを起動して使う - QGIS MCP Plugin の Start Server を押す - MCPクライアントからレイヤ追加、地物操作、Processing、レンダリングなどを指示する ### B. バッチ解析 同梱の `gis_qgis_process_mcp_server.py` を使います。 - QGIS Desktopを起動しなくてもよい - `qgis_process` 経由で QGIS Processing を実行する - バッファ、クリップ、交差、等高線、ラスタ切り出しなどの定型処理に向く ## Windows セットアップ ```powershell cd C:\path\to\demo-godo-tys\mcp\qgis-mcp powershell -ExecutionPolicy Bypass -File .\setup_qgis_mcp_windows.ps1 ``` 実行後、QGISで次を行います。 1. QGISを再起動 2. プラグイン > プラグインの管理とインストール 3. QGIS MCP を有効化 4. プラグイン > QGIS MCP > QGIS MCP を開く 5. Start Server をクリック ## Claude Desktop / Cursor 設定 `claude_desktop_config.sample.json` または `cursor_mcp_config.sample.json` を参考にします。 Windowsでは、`cwd` を実際のインストール先に変更してください。 ```json { "mcpServers": { "qgis": { "command": "uv", "args": ["run", "python", "src/qgis_mcp/server.py"], "cwd": "C:\\gis-mcp\\qgis-mcp", "env": { "QGIS_MCP_HOST": "localhost", "QGIS_MCP_PORT": "9876" } } } } ``` ## qgis_process MCP Server の起動 ```powershell cd C:\path\to\demo-godo-tys\mcp\qgis-mcp uv init uv add "mcp[cli]" uv run python gis_qgis_process_mcp_server.py ``` QGISの `qgis_process` がPATHに無い場合は、環境変数で指定します。 ```powershell $env:QGIS_PROCESS="C:\Program Files\QGIS 3.44.8\bin\qgis_process-qgis-ltr.bat" uv run python gis_qgis_process_mcp_server.py ``` ## セキュリティ方針 実務利用では、AIに任意Pythonコードや任意シェルを実行させる構成は避けてください。 おすすめは、次のように業務用の安全な関数だけをMCP toolとして公開する方式です。 - create_buffer - clip_vector_by_polygon - intersection - raster_contour - clip_raster_by_mask - add_dem_z_to_points - create_transects - extract_relative_height_points - create_yz_polygon ## ロリポップへアップロードする場合 通常は `npm run build` 後、`dist/` 内をアップロードします。 QGIS MCP 自体はローカルPC上の QGIS Desktop と連携するため、ロリポップサーバー上で動かすものではありません。サイト上には導入手順・設定ファイル・サンプルを掲載する構成です。