ClaudeをQGISで使う3つの方法:MCP連携・PyQGIS・プラグインを同じタスクで検証
公開日
QGIS用の公式Anthropicプラグインはありません。ClaudeをQGISで使う主な方法は3つです。QGIS MCPサーバー経由でClaude DesktopやClaude Codeを接続する、ClaudeにPyQGISコードを書かせてPythonコンソールに貼り付ける、QGISの中にエージェントプラグインをインストールする、の3つです。
2026年11月7日に、Claudeが実際のタスクをどう処理するかを検証しました。インド・プネーの地区とOpenStreetMapの学校を読み込み、ポリゴンごとに学校を数え、段階区分図をスタイリングするタスクです。Claude Sonnet 5.5が書いた2つのPyQGISスクリプトは、どちらも貼り付けたままでは動きませんでした。ただし1つは、データサーバーのURLを差し替えると44〜48秒で成功しました。QGIS内のエージェントは、同じプロンプトを2回続けて45〜63秒で完了しました。

ClaudeをQGISで使う方法は?
ClaudeをQGISにつなぐとは、Anthropicのモデルに橋渡しを与えて、開いているプロジェクトの中でツールを実行できるようにするか、チャット画面とQGISのPythonコンソールの間でPyQGISスクリプトをコピーすることを指します。3つ目の方法は橋渡しを使わず、AIエージェントのパネルを直接QGISの中に置きます。
ほとんどのチュートリアルは、Model Context Protocol(MCP)による橋渡しだけを紹介しています。追加のコマンドラインツールを入れたり設定ファイルを編集したりする前に、3つの方法それぞれに何が必要で、同じ仕事を任せたときに何が起きるかを見ておくと役立ちます。
| 方法1:Claude + QGIS MCP | 方法2:ClaudeがPyQGISを書く | 方法3:QGIS内のエージェント | |
|---|---|---|---|
| セットアップ | 5ステップ(プラグイン、uv、クライアント、設定のインストールと、セッションごとにRun MCPをクリック) | セットアップ0ステップ(タスクごとにエディタを開く、貼り付ける、実行するの3クリック) | 3ステップ(QGISのプラグインマネージャーからインストール、パネルを開く、サインイン) |
| 必要なもの | Claude Desktop(無料または有料)かClaude Code(有料プラン)、uv とローカルサーバー | 任意のClaudeのチャット、追加ソフトなし | QGIS 3.28以上と無料アカウント(APIキーもカードも不要) |
| コードを実行するのは | ClaudeがローカルのMCPポート経由でツールを呼び出す | 利用者がPythonコンソールにスクリプトを貼り付けて実行する | プラグインがQGISのツールを実行し、地図を自分で確認する |
| プロジェクトが見えるか | MCPサーバーの起動中は見える | 見えない(レイヤ名やCRSをプロンプトに書かない限り) | 見える(開いているレイヤ、フィールド、表示範囲を読む) |
| 元に戻す | QGISで手作業で後片付け | QGISで手作業で後片付け | すべての回答に、ワンクリックで変更を元に戻すボタン |
| プネーのタスクの結果 | プネーでは未実施(同等のリヨンの学校タスクで9分28秒) | 貼り付けたままでは2件中0件が動作。URL修正後に1件が44〜48秒で成功(14のタルカで学校447件) | 2回中2回成功、63秒と約45秒(58の市の区で学校256件) |
AIを使わずに手作業でこのタスクをする場合、QGISの無料の方法は4ステップです。Vector > QuickOSM > QuickOSM... で境界と amenity=school のポイントをダウンロードし、Vector > Analysis Tools > Count Points in Polygon...(native:countpointsinpolygon)を実行し、Layer Properties > Symbology で新しい件数フィールドに段階に分けられた(Graduated)スタイルを設定します。
QGISのリポジトリにClaudeプラグインはある?
QGISのプラグインリポジトリに、Anthropicの公式プラグインはありません。2026年11月7日にリポジトリのインデックスを確認したところ(QGIS 3.44向け4,399件、QGIS 4.0向け1,697件)、メタデータに「claude」という単語を含むプラグインは45件ありましたが、そのうち36件はClaudeをコーディングアシスタントとしてクレジットしていたか、作者の名前がClaudeなだけでした。
Claudeのモデルやサブスクリプションを実際にQGISにつなぐのは、9つのコミュニティプラグインだけです。
- QGIS MCP(Nicolas Karasiak作、v0.15.2、2026年11月7日時点で77,002ダウンロード):ローカルポートを開き、Claude Desktop、Claude Code、CursorがQGIS内で125のツールを実行できるようにします。
- WAI QGIS MCP(v0.3.0、753ダウンロード):1つの
.mcpb拡張ファイルでClaude Desktopに接続するため、Node.jsを自分でインストールする必要がありません。 - QGIS Agent(bunkmr作、v2.4.15、3,783ダウンロード)、QGIS Agent Mcp(v0.5.0、3,210ダウンロード)、QGIS Salah MCP(v1.1.1、2,037ダウンロード)、ClaudIA QGIS(v0.4.6、784ダウンロード):自分のAPIキーを使う、ほかのMCPソケットサーバーやパネルです。
- LandTalk.AI(v1.5.0、5,927ダウンロード)とAI Copilot(v1.8.0、2,098ダウンロード):Claude、OpenAI、Geminiのキーを受け付ける、複数モデル対応のチャットパネルです。
- Mapsuke(MIERUNE作、v1.6.0、1,242ダウンロード、2026年10月30日更新):QGIS 3.44以上の中で動くチャットパネルで、MCPサーバーなしで既存のClaude CodeやCodexのログインを使います。Claude CodeのCLIがインストールされていることが条件です。
必要なClaudeのプランは、接続方法によって変わります。Anthropicのプラン比較ページ(2026年11月7日に確認)によると、Claude DesktopのチャットはFreeプランでもPro、Max、Ultra、Team、Enterpriseでも使え、ローカルのMCPサーバーは Settings > Developer > Edit Config またはDesktop Extensionsで追加できます。MapsukeのようなプラグインやCLIのワークフローが前提とするコマンドラインツールのClaude Codeは、Freeプランに含まれず、Pro、Max、Ultraのいずれかのサブスクリプションが必要です。
検証:プネーで地区ごとの学校を地図にする
検索結果のギャップ調査のために読んだチュートリアルは、どれも作者がすでにディスクに持っているファイルでClaudeを試していました。実際のGIS業務では、ツールが一度も見たことのない都市のオープンデータを取ってくるよう頼むことがよくあります。
2026年11月7日、何かを実行する前に成功基準を書きました。プロンプトは1文です。
Load the districts of Pune, India and the schools from OpenStreetMap, count schools per district and make a choropleth.
(インド・プネーの地区とOpenStreetMapの学校を読み込み、地区ごとに学校を数えて段階区分図を作って。)
プネーを選んだのは、「districts of Pune」(プネーの地区)があいまいだからです。プネーはマハーラーシュトラ州の県(district)で、14の郡(タルカまたはテシル)に分かれます。一方、プネー市は15の行政区事務所と58の選挙区に分かれています。良いワークフローなら、どの境界のことかを尋ねるか、どれを読み込んだかをはっきり示します。
方法2:ClaudeにPyQGISコードを書かせて貼り付ける
コピー&ペーストの方法では、Claude Sonnet 5.5(claude-sonnet-5-5、Claude Code 2.1.306経由、ツールとWebアクセスはすべてオフで、普通のチャット画面と同じ条件)にまったく同じプロンプトを2回送り、「I use QGIS. Write the PyQGIS code I can paste in the QGIS Python console for this task」(QGISを使っています。このタスク用に、QGISのPythonコンソールに貼り付けられるPyQGISコードを書いて)だけを書き足しました。コンソールを使ったことがない場合は、PyQGISガイドでスクリプトの実行方法を説明しています。
Claudeは1つ目の134行のスクリプトを77秒、2つ目の108行のスクリプトを67秒で生成しました。どちらの回答も「districts」があいまいだと指摘し、admin_level=6(プネー県の14のタルカ)を選び、コードでレベルを変える方法を説明していました。2つ目の回答は最後に「I haven't run it, so the first run is the test.」(実行していないので、最初の実行がテストです)と、正直な注意書きまで添えていました。
QGIS 3.44.15では、どちらのスクリプトも貼り付けたままでは動きませんでした。
- 回答1は1秒後に
URLError: <urlopen error [Errno 61] Connection refused>で失敗しました。 スクリプトはメインの公開Overpassサーバー(overpass-api.de)を呼び出していて、その朝このサーバーは私たちのIPからの接続を拒否していました。 - 回答2はネットワークにアクセスする前、3行目で失敗しました。
ImportError: cannot import name 'QgsClassificationNaturalBreaks' from 'qgis.core'が出ました。

QGIS 3.44では、自然分類(natural breaks)のクラスは QgsClassificationNaturalBreaks ではなく QgsClassificationJenks という名前です。ツールのないチャットボットは自分のimportを利用者のQGISのバージョンで試せないため、架空のクラス名が1つあるだけでスクリプト全体が止まります。QGISでのChatGPTをアヌシーの3つのタスクで検証したときも、まったく同じ、見えないまま推測するパターンが見られました。
Claudeの1つ目のスクリプトがそれ以外の点で正しいかを確かめるため、回答1の定数を1つだけ変え、overpass-api.de をフランスのミラー overpass.openstreetmap.fr に差し替えて、空のレイヤツリーで3回実行しました。動いているサーバーなら、48秒、44秒、45秒で完了しました。

回答1の計算は正しく、14のタルカのポリゴンと447件の学校の地物を読み込みました。ポイント・イン・ポリゴンの件数を独自に再計算すると、447件の学校すべてが n_schools フィールドと一致し、不一致は0件でした(Pune City Subdistrictが246件、Haveliが75件、Mulshiが55件、Indapur、Velhe、Ambegaonは0件)。それでも地図には、人が手直しすべき粗さが残りました。分位数の凡例は、整数である学校数に対して 0,0000 - 1,2000 のような小数の区切りを表示し、中心部のラベルはデフォルトの縮尺で重なっていました。
方法1:QGIS MCPでClaude DesktopやClaude Codeを接続する
ClaudeにQGIS MCPサーバーを与えると、見えないという問題は解決します。Claudeはレイヤを調べ、execute_code を実行し、エラーのトレースバックを見て、やり直せます。
プネーではMCPサーバーを再実行しませんでした。その朝は公開Overpassサーバーが私たちのネットワークを拒否していて、同じOpenStreetMapの呼び出しが止まっていたはずだからです。代わりに、2026年9月下旬と10月に、Claude CodeでClaude Sonnet 5.5がQGIS MCP(v0.15.0〜0.15.2)を操作する様子を、4つの実タスクと41問のベンチマークですでに測定していました。
- セットアップは5ステップで約3分です(
uvとクライアントがインストール済みの場合)。さらに最初の呼び出しでは、125のツールを公開する90 MBのサーバーをダウンロードするため16秒かかります。QGISを再起動するたびにRun MCPをクリックし直す必要があり、忘れるとClaudeはError executing tool pingを返します。QGIS MCPのセットアップと検証のガイドで、すべての手順と設定ファイルを説明しています。 - リヨンの同等の学校タスク(路面電車の停留所から300 m以内の学校を数える)では、Claude + QGIS MCPは正しい件数(学校87件)を9分28秒で出しました。10ステップのうち6つは生のPythonで、スクリプトがOverpassの406、504、502エラーに当たる間、QGISは約7分間フリーズしました。
- データがすでに整っていれば、MCPは速いです。 ポルトの建物と印刷レイアウトのタスクでは、Claude + QGIS MCPは2分48秒で完了し、私たちのエージェントの5分26秒を上回りました。
- GoogleのGeoExpertQueriesベンチマーク(41件の未公開タスク)では、Claude CodeでQGIS MCPを使うClaude Sonnet 5.5のスコアは100点中24.9点で、Low effortのAI Agentは43.8点でした(ベンチマークの全結果はこちら)。
すでにClaude ProやMaxを契約していて、一日中Claude Codeで作業しているなら、MCPは追加費用がかからず、シェルスクリプト、ローカルファイル、QGISを1つのターミナルで自由に組み合わせられます。
方法3:QGIS内のエージェントプラグインを使う
私たちはAI Agentを開発しているので、このセクションは自社のプラグインについてです。外部のアプリをQGISにつなぐのではなく、マップキャンバスのすぐ横にチャットパネルをドッキングし、プロジェクトの状態を読み、内蔵のデータカタログ(約90のソースと2,800のデータセット、さらにOpenStreetMapとOverture Maps)からデータを取得し、回答する前に描画した地図の画像を確認し、すべての返信の下に変更を元に戻すボタンを置きます。
QGIS 3.44.15(Balanced権限、Medium effort)で、まったく同じプネーの文を2回テストしました。
1回目は、11秒後にパネルが一時停止し、「Which subdivisions of Pune should the school counts use?」(学校数の集計にはプネーのどの区分を使いますか?)と尋ねる確認カードを表示しました。選択肢は Pune city wards(プネー市の区)と Pune district tehsils(プネー県のテシル)の2つです。Pune city wards を選ぶと、送信を押してからの合計時間は15ステップで63秒でした。

新しいチャットでの2回目は質問せず、プネーの58の選挙区を市の地区として使うと回答の中で明記し、約45秒(16ステップ)で完了しました。区はオレンジ系の配色でスタイリングされました。

貼り付けたスクリプトが接続エラーに当たったのに、なぜ2回とも成功したのでしょうか。エージェントは、生のスクリプトから過負荷の overpass-api.de エンドポイントを呼び出さなかったからです。2022年の選挙区をDataMeetから取得し、学校の地物256件(ノード108件とウェイ148件、ポリゴンの学校は面上のポイントに変換)を内蔵のデータツールで取得しました。両方の出力でポイント・イン・ポリゴンを独自に検証したところ、256件の学校のポイントはすべて58区の中にあり、schools 属性フィールドとの不一致は0件でした。
さらに、3つの中間レイヤを非表示の Working layers グループにまとめてレイヤツリーを整理し、OpenStreetMapは公式の学校統計ではないと回答の中で念押ししていました。私の不満は1つだけです。1回目と2回目の間で、区かテシルかを私に尋ねるか自分で決めるかについて、判断が変わったことです。
どの方法を選ぶべきか
私自身の仕事では、再利用するプロセシングスクリプトを書くときや、20個のファイルにまたがる自作プラグインをデバッグするときは、今もブラウザやターミナルで普通のClaudeを使っています。Pythonを読み、Gitにコミットし、GUIの外で実行したいからです。プロンプトにはQGISのバージョン、レイヤ名、フィールド名、CRSを貼り付けることを忘れずに。そしてimportの1つや2つは直す前提でいてください。
Claude + QGIS MCPを選ぶのは、すでに有料のClaudeサブスクリプションがあり、uv やJSONの設定ファイルに抵抗がなく、Claude DesktopやClaude Codeでローカルファイルの操作とQGISの呼び出しを組み合わせたい場合です。既存のプランに追加費用はかからず、データレイヤがすでに読み込まれていれば高速です。
QGIS内のエージェントを選ぶのは、Pythonのトレースバック、Overpassのタイムアウト、壊れたポートの面倒を見ずに、地図と数字を手に入れたい場合です。締め切りのあるアナリストや、一貫したシンボロジ、データソースの出典、ワンクリックの元に戻す機能が必要なチームにとっては、エージェントとデータカタログがQGISに組み込まれていることが最も時間を節約します。アーキテクチャの違いはQGISのAIエージェントとはのガイドで読めます。現在のすべてのツールはQGIS AIハブで見られます。
測定方法。 プネーでの実行はすべて、2026年11月7日のパリ時間10:29から11:03の間に、macOS上のQGIS 3.44.15-Solothurn(Qt 5.15.19)で行いました。成功基準は最初のプロンプトの前、10:14に書きました。Claude Sonnet 5.5(claude-sonnet-5-5)は、MCPサーバーもWebアクセスもない空のディレクトリで、Claude Code 2.1.306(claude -p --safe-mode --tools "" --model sonnet)を通じて呼び出しました。返ってきた2つのスクリプトはQGISのPythonで実行し、独立したポイント・イン・ポリゴンのスクリプトで確認しました。AI Agent 1.9.4(Balancedモード、Medium effort)は、同じ文で空のプロジェクトで2回テストしました。検証中は同じMac上でほかのQGISセッションも動いていたため、経過時間はアイドル状態のマシンより遅くなっています。1つのタスクで方法ごとに2回のテストは小さなサンプルで、overpass-api.de の接続拒否は、ある朝、1つのネットワークから観測したものです。
よくある質問
QGIS用の公式Claudeプラグインはありますか?
ありません。AnthropicはQGISプラグインを公開していません。2026年11月7日時点で、QGISのプラグインリポジトリにはClaudeをQGISにつなぐコミュニティプラグインが9つあります。ローカルのModel Context Protocol(MCP)サーバー経由(QGIS MCPやWAI QGIS MCPなど)、自分のAPIキー経由、またはローカルのClaude Codeのログイン経由(Mapsuke)のいずれかです。別の選択肢として、AI AgentはAIモデルとデータカタログを内蔵した状態で、QGISのプラグインマネージャーから直接インストールできます。
Claude DesktopでQGISを無料で操作できますか?
できます。ただし制限付きです。Anthropicのプランのドキュメントによると、Claude DesktopのチャットはFreeプランで使え、claude_desktop_config.json またはDesktop Extensions(.mcpb)でローカルのMCPサーバーに対応しています。ターミナルからClaude Codeを使うには、有料のClaude Pro、Max、Ultraのいずれかのプランが必要です。
ClaudeはQGIS 3.44で動くPyQGISコードを書けますか?
書けます。Claude Sonnet 5.5はよく構成されたPyQGISを書きますが、利用者のQGIS環境を見ることも自分のコードを試すこともできないため、クラス名を作り出したり、失敗する外部サーバーに頼ったりすることがあります。QGIS 3.44.15での2サンプルの検証では、1つのスクリプトは QgsClassificationNaturalBreaks で ImportError になり(実際のクラスは QgsClassificationJenks)、もう1つはOverpass APIのURLを差し替えるまで失敗しました。
MCPを設定せずにQGISでAIを使う最も簡単な方法は?
QGISの Plugins > Manage and Install Plugins から、統合型のエージェントプラグインをインストールします。AI Agentなら、管理すべきPython環境も、uv パッケージマネージャーも、設定ファイルもありません。無料でサインインすると月5タスク(Proでは300)が使え、ドッキングしたパネルに依頼を入力するだけです。
用の公式Anthropicプラグインはありません。ClaudeをQGISで使う主な方法は3つです。QGIS MCPサーバー経由でClaude DesktopやClaude Codeを接続する、ClaudeにPyQGISコードを書かせてPythonコンソールに貼り付ける、QGISの中にエージェントプラグインをインストールする、の3つです。

