跳至內容
AI Agent
QGIS
指南

Claude 怎麼連接 QGIS?三種方法用同一項任務實測

發布於

Anthropic 沒有推出官方的 QGIS 外掛。在 QGIS 中使用 Claude 主要有三種方法:透過 QGIS MCP 伺服器連接 Claude Desktop 或 Claude Code;請 Claude 撰寫 PyQGIS 程式碼,再貼到 Python 主控台執行;或是在 QGIS 內安裝代理外掛。

2026 年 11 月 7 日,我測試了 Claude 如何處理一項真實任務:載入印度浦那(Pune)的行政區和 OpenStreetMap 學校資料,計算每個多邊形內的學校數量,並製作分級著色圖。Claude Sonnet 5.5 寫的兩個 PyQGIS 腳本,沒有一個能直接貼上就執行成功,不過其中一個在我換掉資料伺服器網址後,花了 44 到 48 秒順利完成。QGIS 內的代理則連續兩次執行,都在 45 到 63 秒內完成同樣的 prompt。

QGIS 視窗顯示以藍色色調呈現的浦那各選區學校分級著色圖,左側是圖層樹,右側 AI Agent 聊天面板顯示 prompt、選擇的浦那市選區,以及最終結果:58 個選舉選區共 256 所學校。
在 QGIS 中用一句話製作的浦那學校分級著色圖:63 秒內在 58 個選舉選區中計算出 256 所 OpenStreetMap 學校。

在 QGIS 中使用 Claude 有哪些方法?

把 Claude 連接到 QGIS,意思是給 Anthropic 的模型一座橋梁,讓它能在您開啟的專案中執行工具;或是在聊天視窗和 QGIS Python 主控台之間來回複製 PyQGIS 腳本。第三種做法不需要橋梁,直接把 AI 代理面板放進 QGIS。

大多數教學只介紹模型上下文協定(Model Context Protocol,MCP)這座橋。在您安裝額外的命令列工具或編輯設定檔之前,先看看這三種做法各需要什麼,以及給它們同一項工作時會發生什麼事,會很有幫助。

做法 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 伺服器執行時看不到,除非您在 prompt 中輸入圖層名稱和 CRS可以,會讀取開啟的圖層、欄位和地圖範圍
復原在 QGIS 中手動清理在 QGIS 中手動清理每則回答都有一鍵「復原變更」按鈕
浦那任務結果未在浦那執行(在類似的里昂學校任務花了 9 分 28 秒)2 個腳本中 0 個能直接貼上執行;修改網址後 1 個在 44 到 48 秒內成功(14 個 taluka 中 447 所學校)2 次執行 2 次通過,分別為 63 秒和約 45 秒(58 個市區選區中 256 所學校)

如果您想不用任何 AI、手動完成這項任務,免費的 QGIS 做法需要四個步驟:用 Vector > QuickOSM > QuickOSM... 下載行政界線和 amenity=school 點位,執行 Vector > Analysis Tools > Count Points in Polygon...(「向量」→「分析工具」→「計算多邊形內的點數」,native:countpointsinpolygon),再到 Layer Properties > Symbology(「圖層屬性」→「符號」)把新的計數欄位設為「漸層」。

QGIS 外掛庫裡有 Claude 外掛嗎?

QGIS 外掛庫中沒有 Anthropic 推出的官方外掛。我在 2026 年 11 月 7 日查看外掛庫索引(QGIS 3.44 有 4,399 個外掛,QGIS 4.0 有 1,697 個),中繼資料含有「claude」一詞的外掛有 45 個,但其中 36 個只是註明用 Claude 當程式設計助理,或是作者名字叫 Claude。

真正把 Claude 模型或訂閱連接到 QGIS 的社群外掛只有九個:

  • 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 次):透過單一 .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 socket 伺服器或面板。
  • 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+ 內的聊天面板,使用您現有的 Claude Code 或 Codex 登入,不需要 MCP 伺服器,前提是您已安裝 Claude Code CLI。

需要哪個 Claude 方案,取決於您的連接方式。根據 Anthropic 的方案比較頁面(2026 年 11 月 7 日查閱),Claude Desktop 的聊天功能在 Free 方案以及 Pro、Max、Ultra、Team 和 Enterprise 方案都能使用,您可以透過 Settings > Developer > Edit Config 或 Desktop Extensions 加入本機 MCP 伺服器。Claude Code 是 Mapsuke 這類外掛和 CLI 工作流程所依賴的命令列工具,不包含在 Free 方案中,需要 Pro、Max 或 Ultra 訂閱。

測試:繪製浦那各行政區的學校數量

我為了 SERP 缺口分析讀過的每一篇教學,都是用作者電腦裡已經有的檔案來測試 Claude。但在真實的 GIS 工作中,您常常需要工具去抓取一座它從沒見過的城市的開放資料。

我在 2026 年 11 月 7 日執行任何東西之前,就先寫好成功標準。prompt 只有一句話:

Load the districts of Pune, India and the schools from OpenStreetMap, count schools per district and make a choropleth.

我故意選浦那,因為「districts of Pune」有歧義。浦那是馬哈拉施特拉邦的一個縣,分成 14 個次級行政區(taluka 或 tehsil);而浦那市則分成 15 個行政區辦公室和 58 個選舉選區。好的工作流程要嘛會問您指的是哪一種界線,要嘛會清楚說明它載入了哪一種。

做法 2:請 Claude 寫 PyQGIS 程式碼來貼上

在複製貼上的做法中,我用完全相同的 prompt 執行 Claude Sonnet 5.5 兩次(claude-sonnet-5-5,透過 Claude Code 2.1.306,關閉所有工具和網路存取,等同一般的聊天視窗),只多加一句「I use QGIS. Write the PyQGIS code I can paste in the QGIS Python console for this task」。如果您從沒用過主控台,我們的 PyQGIS 指南會說明腳本在那裡如何執行。

Claude 花了 77 秒產生第一個 134 行的腳本,花了 67 秒產生第二個 108 行的腳本。兩個回答都指出「districts」有歧義,都選了 admin_level=6(浦那縣的 14 個 taluka),並說明如何在程式碼中更改層級。第二個回答甚至在最後加了一句很中肯的提醒:「I haven't run it, so the first run is the test.」

在 QGIS 3.44.15 中,兩個腳本都無法直接貼上執行:

  1. 回答 1 在 1 秒後失敗,錯誤為 URLError: <urlopen error [Errno 61] Connection refused>。 腳本呼叫的是主要的公開 Overpass 伺服器(overpass-api.de),那天早上它拒絕了來自我們 IP 的連線。
  2. 回答 2 在發出任何網路請求之前,就在第 3 行失敗。 它出現了 ImportError: cannot import name 'QgsClassificationNaturalBreaks' from 'qgis.core'。
QGIS Python 主控台在貼上的腳本第 3 行顯示紅色 Traceback,內容為 ImportError: cannot import name QgsClassificationNaturalBreaks from qgis.core。
Claude 的第二個 PyQGIS 腳本停在第 3 行:QGIS 3.44.15 中沒有 QgsClassificationNaturalBreaks(正確的類別是 QgsClassificationJenks)。

在 QGIS 3.44 中,自然斷點分類的類別叫做 QgsClassificationJenks,不是 QgsClassificationNaturalBreaks。沒有工具的聊天機器人無法針對您的 QGIS 版本測試自己的 import,所以只要捏造一個類別名稱,整個腳本就會停下來。我們在安錫用三項任務測試 ChatGPT for QGIS 時,也看到了完全相同的盲猜模式。

為了確認 Claude 的第一個腳本其他部分是否正確,我只改了回答 1 中的一個常數,把 overpass-api.de 換成法國鏡像站 overpass.openstreetmap.fr,然後在乾淨的圖層樹上執行三次。換上可用的伺服器後,三次分別在 48、44 和 45 秒內完成。

浦那縣 14 個 taluka 的地圖,以紅色漸層色調呈現,上方疊加黑色學校點位,由 Claude 的第一個 PyQGIS 腳本在更換 Overpass 伺服器網址後產生。
更換 Overpass 網址後的 Claude 第一個腳本:在浦那 14 個 taluka 中計算出 447 所學校,以分位數斷點設定樣式。

回答 1 的計算是正確的:它載入了 14 個 taluka 多邊形和 447 筆學校圖徵,我另外獨立重新計算點在多邊形內的數量,447 所學校全部與 n_schools 欄位相符,沒有任何不一致(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、看到錯誤 traceback,然後再試一次。

我沒有在浦那重新執行 MCP 伺服器,因為那天早上公開的 Overpass 伺服器拒絕我們的網路連線,同樣的 OpenStreetMap 呼叫也會被擋下。不過,我們在 2026 年 9 月底和 10 月,已經測量過 Claude Sonnet 5.5 在 Claude Code 中操作 QGIS MCP(v0.15.0 到 0.15.2),涵蓋四項真實任務和一個 41 題的基準測試:

  • 設定需要 5 個步驟、大約 3 分鐘(前提是您已經裝好 uv 和用戶端),第一次呼叫時還要多花 16 秒,下載一個提供 125 個工具、大小 90 MB 的伺服器。每次重新啟動 QGIS,您都得記得再按一次 Run MCP,否則 Claude 會回傳 Error executing tool ping。我們的 QGIS MCP 設定與測試指南會帶您走過每個步驟和設定檔。
  • 在類似的里昂學校任務中(計算電車站 300 m 內的學校),Claude + QGIS MCP 在 9 分 28 秒內得出正確數量(87 所學校)。它的十個步驟中有六個是直接寫 Python,而腳本遇到 Overpass 的 406、504 和 502 錯誤時,QGIS 凍結了大約 7 分鐘。
  • 資料已經整理好時,MCP 很快。 在波多的建築物與列印圖面配置任務中,Claude + QGIS MCP 在 2 分 48 秒內完成,比我們自己代理的 5 分 26 秒還快。
  • 在 Google 的 GeoExpertQueries 基準測試中(41 項保留任務),Claude Sonnet 5.5 在 Claude Code 中搭配 QGIS MCP 得到 24.9 分(滿分 100),而 Low 強度的 AI Agent 得到 43.8 分(查看完整的基準測試結果)。

如果您已經付費使用 Claude Pro 或 Max,而且整天都在 Claude Code 裡工作,MCP 不用額外花錢,還能讓您在同一個終端機裡自由結合 shell 腳本、本機檔案和 QGIS。

做法 3:使用 QGIS 內的代理外掛

AI Agent 是我們開發的,所以這一節講的是我們自己的外掛。它不是把外部應用程式接進 QGIS,而是在地圖畫布旁邊停駐一個聊天面板,讀取您的專案狀態,從內建的資料目錄取得資料(約 90 個來源和 2,800 個資料集,外加 OpenStreetMap 和 Overture Maps),在回答之前檢查地圖的渲染圖,並在每則回覆下方放一個 復原變更 按鈕。

我在 QGIS 3.44.15 中(Balanced 權限、Medium 強度)把完全相同的浦那句子執行了兩次。

第一次執行時,11 秒後面板暫停,顯示一張釐清問題的卡片,詢問 「學校數量要使用浦那的哪一種行政區劃?」,並提供兩個可點選的選項:浦那市選區 和 浦那縣 tehsil。選擇 浦那市選區 後,從按下送出到完成的總時間為 63 秒,共 15 個步驟。

浦那 58 個選舉選區的地圖渲染特寫,以五個藍色 Jenks 分級從淺藍到深藍著色,並以深色點標示 256 所 OpenStreetMap 學校。
第 1 次執行的地圖渲染:58 個選舉選區(2022 年 DataMeet 界線)分為五個 Jenks 等級,數量最高的是第 16 選區 Fergusson College - Erandwane(39 所學校)。

第二次執行時,在新的對話中,它沒有提問,而是在回答中說明它把浦那的 58 個選舉選區當作市區的行政區,大約 45 秒內完成(16 個步驟),並以橘色色系為選區設定樣式。

第二次執行的 QGIS 視窗,左側是以五級橘色分級著色呈現的浦那選舉選區,右側 AI Agent 的回答確認 58 個選區中共有 256 筆 OpenStreetMap 學校圖徵。
同一個 prompt 的第 2 次執行:大約 45 秒完成,同樣是 58 個選區中的 256 所學校,五個 Jenks 等級(0-1、1-5、5-11、11-22、22-39)。

為什麼兩次執行都成功,而貼上的腳本卻遇到連線錯誤?因為代理沒有從原始腳本呼叫負載過重的 overpass-api.de 端點;它從 DataMeet 取得 2022 年的選舉選區,並透過內建的資料工具抓取 256 筆學校圖徵(108 個節點和 148 條路徑,並把多邊形學校轉成面上點)。我對兩次的輸出都做了獨立的點在多邊形內檢查,256 個學校點全部落在 58 個選區內,與 schools 屬性欄位比對沒有任何不一致。

它還把三個中間圖層收進一個隱藏的 Working layers 群組,讓圖層樹保持整齊,並在回答中提醒我 OpenStreetMap 不是官方的學校普查資料。我唯一的抱怨是:在第 1 次和第 2 次執行之間,它對於要先問我選區還是 tehsil,或是自己決定,改變了做法。

在 QGIS 免費試用 AI Agent,無須信用卡

該選哪一種方法?

在我自己的工作中,當我在寫可重複使用的 Processing 腳本,或是在二十個檔案之間除錯一個自訂外掛時,我還是會在瀏覽器或終端機裡使用一般的 Claude。這種時候您會想讀 Python、把它 commit 到 Git,並在圖形介面之外執行。只要記得把您的 QGIS 版本、圖層名稱、欄位名稱和 CRS 貼進 prompt,並預期要修正一兩個 import。

如果您已經有付費的 Claude 訂閱,熟悉 uv 和 JSON 設定檔,又想在 Claude Desktop 或 Claude Code 中把本機檔案操作和 QGIS 呼叫混在一起用,就選 Claude + QGIS MCP。它在您現有方案之外不用額外付費,而且資料圖層已經載入時速度很快。

如果您想要地圖和數字,又不想一直盯著 Python traceback、Overpass 逾時或壞掉的連接埠,就選 QGIS 內的代理。對趕截止日期的分析師,或是需要一致符號、資料來源引用和一鍵復原的團隊來說,把代理和資料目錄內建在 QGIS 裡最省時間。您可以在我們的 QGIS 中的 AI 代理是什麼指南了解架構上的差異,或在 QGIS AI 總覽瀏覽目前所有的工具。

我們如何測量。 所有浦那的執行都在 2026 年 11 月 7 日巴黎時間 10:29 到 11:03 之間進行,環境為 macOS 上的 QGIS 3.44.15-Solothurn(Qt 5.15.19)。成功標準在 10:14、第一個 prompt 之前寫好。Claude Sonnet 5.5(claude-sonnet-5-5)透過 Claude Code 2.1.306 呼叫(claude -p --safe-mode --tools "" --model sonnet),在沒有 MCP 伺服器或網路存取的空白目錄中執行;回傳的兩個腳本在 QGIS Python 中執行,並用獨立的點在多邊形內腳本檢查。AI Agent 1.9.4(Balanced 模式、Medium 強度)在乾淨的專案中對同一句話執行了兩次。測試期間同一台 Mac 上還有其他 QGIS 工作階段在執行,所以實際耗時比閒置的電腦慢。每種做法在單一任務上只執行兩次,樣本很小,而 overpass-api.de 拒絕連線的情況是在一個網路、一個早上觀察到的。

常見問題

QGIS 有官方的 Claude 外掛嗎?

沒有。Anthropic 沒有發布 QGIS 外掛。截至 2026 年 11 月 7 日,QGIS 外掛庫中有九個把 Claude 連接到 QGIS 的社群外掛,連接方式包括本機的模型上下文協定(MCP)伺服器(例如 QGIS MCP 和 WAI QGIS MCP)、您自己的 API 金鑰,或本機的 Claude Code 登入(Mapsuke)。另一個選擇是 AI Agent,直接從 QGIS 外掛管理員安裝,內建 AI 模型和資料目錄。

Claude Desktop 能免費控制 QGIS 嗎?

可以,但有限制。根據 Anthropic 的方案說明文件,Claude Desktop 的聊天功能在 Free 方案中就能使用,並支援透過 claude_desktop_config.json 或 Desktop Extensions(.mcpb)加入本機 MCP 伺服器。從終端機執行 Claude Code 則需要付費的 Claude Pro、Max 或 Ultra 方案。

Claude 寫的 PyQGIS 程式碼能在 QGIS 3.44 中執行嗎?

可以,Claude Sonnet 5.5 寫的 PyQGIS 結構良好,但因為它看不到您安裝的 QGIS,也無法測試自己的程式碼,有時會捏造類別名稱,或依賴會失敗的外部伺服器。在我們於 QGIS 3.44.15 進行的兩個樣本測試中,一個腳本因 QgsClassificationNaturalBreaks 出現 ImportError 而失敗(正確的類別是 QgsClassificationJenks),另一個則在我們換掉它的 Overpass API 網址之前都無法執行。

不設定 MCP,在 QGIS 中使用 AI 最簡單的方法是什麼?

在 QGIS 中從 Plugins > Manage and Install Plugins(「外掛程式」→「管理與安裝外掛程式」)安裝整合式的代理外掛。使用 AI Agent,不需要維護 Python 環境、uv 套件管理工具或設定檔:您免費登入,每月有 5 項任務(Pro 為 300 項),在停駐的面板中輸入需求即可。

免費試用 AI Agent

在 QGIS 裡開口就能完成

AI Agent 會在你自己的 QGIS 專案中,執行你描述的任務。免費使用,不需信用卡。

免費試用 AI Agent
由以下作者撰寫Yvann Barbot
·6 min read