內容可能有改動,一切以原文為準。
- 寫在前面
- 如何安裝
- 註冊模型服務
- 安裝uv
- 安裝QGIS插件以及MCP服務器
- 安裝QGIS插件
- 安裝MCP服務器
- 使用案例
- 渲染地圖風格
- 屬性統計
- NDVI計算
- 獲取地理位置以及顯示
- 背後的原理
- 寫在後面
- 參考
寫在前面
近期MCP[1]很火哎,不斷涌現出各種各樣的工具。例如利用MCP進行代碼補全/生成,瀏覽器控制,地圖導航,尋址,網絡搜索等[2],一切都是基於自然語言實現的自動化。當然除了上述,我最關心的還是它在GIS領域開出了什麼花,一番搜索之下發現當前開源社區已經存在了一款功能強大的插件——qgis_mcp。
代碼倉庫地址:https://github.com/jjsantos01/qgis_mcp
在我搜索過程中, 幾個頭部的國內外傳統GIS公司,都還沒有發佈正式的MCP工具,如ESRI,Mapinfo和SuperMap(或許已經在開發中只是仍未成熟等待發布,又或許還沒有,又或許是我沒找到)。相較於開源的QGIS,任何人,如果你有能力,都可以給它加上你想要的功能,這一點我認為非常棒,這使得它在某些功能/特性方面推進的更快,雖然效果不一定比閉源好。
嘗試使用這個MCP工具,看看效果如何。
如何安裝
儘管倉庫作者寫的安裝説明已經很清晰明瞭,但由於描述語言是英文,對中文母語者可能不太友好,所以在這裏記錄自己的完整安裝過程。
這個插件系統包含兩個組件,一個是QGIS插件,另一個是MCP服務器。除此之外,還需註冊有一個能正常使用的大模型,可以使用在線的Claude或者DeepSeek等模型提供商。
這些是運行的環境要求:
- 安裝有QGIS版本 3.X
- 安裝有Claude desktop(如果使用Claude需要)
- 安裝有5ire(如果使用DeepSeek,OpenAI等其它模型需要)
- 安裝有Python 解釋器版本為3.10 或更新
- 安裝有Python包管理器uv
註冊模型服務
一步步來,首先最重要的是模型提供商的賬户。Deepseek等直接到官網註冊即可,而Claude以及OpenAI等並未在中國大陸及港澳台提供模型服務,所以註冊步驟會有點曲折,網上也有許多相關資料攻略,這裏就不再延伸展開。
安裝uv
用它來運行MCP 服務器本體,macOS用户可使用homebrew安裝,執行如下命令:
brew install uv
windows用户可使用powershell安裝,執行如下命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
如若通過上述命令無法安裝,則直接上官網下載。
安裝QGIS插件以及MCP服務器
安裝QGIS插件
下載倉庫源碼,使用Git或者直接以zip格式下載後解壓。
打開QGIS,依次點擊Settings->User profiles->Open active profile folder,進入目錄之後,再進入 python -> plugin目錄,將上一步下載好的插件文件夾裏的qgis_mcp_plugin複製到plugin,接着重啓QGIS。

再次打開,進入 Plugins -> Mange Plugins,選擇Installed,勾選啓用插件。
接着你的軟件界面會出現如下窗口,點擊Start Server,插件就安裝好了。
安裝MCP服務器
如果用的是Claude則安裝該客户端,否則跳過。
先到Claude官網按照操作系統下載客户端,安裝後運行。
進入設置 Settings -> Developer -> Edit Concig
編寫如下,其中只需要修改一項,然後重啓Claude客户端。
{
"mcpServers": {
"qgis": {
"command": "uv",
"args": [
"--directory",
"/這裏是填寫下載倉庫代碼後打開的目錄/qgis_mcp/src/qgis_mcp",
"run",
"qgis_mcp_server.py"
]
}
}
}
打開Claude對話框,聊天框底部有個小錘子,就代表安裝成功了(如果僅安裝了QGIS MCP一個服務的話,不放心可以點擊小錘子,查看是否有QGIS相關服務)
如果使用DeepSeek或者OpenAI等,則安裝該客户端。
打開5ire發行頁面,根據操作系統選擇合適版本下載後安裝,打開設置頁面。
先設置大模型
接着設置MCP服務
名稱,標識什麼的隨便填寫,但是命令必須如以下格式一致。
使用案例
這裏使用Claude客户端來測試,而使用5ire的話流程是一樣的。
渲染地圖風格
先來測試一下,我預先往地圖畫布中添加一個矢量圖層,然後按照字段讓它分層設色。

接着提問它:
當前圖層中,幫我按照“地級碼”對圖層進行分組,並設置不同顏色風格

屬性統計
可以看到它正確理解了我的指令並完成相關工作。然後我又讓它統計即每個要素(即圖中的區縣)的面積,並生成統計表格和圖表。
幫我統計當前矢量圖層中,每一個要素的面積,並製作一份柱狀圖統計表格,我使用的是macOS,桌面路徑為/Users/wsh/Desktop。

執行結果有一份excel和下面這張圖片。我猜測它使用Matplotlib來繪製,因為沒有正確設置字體,所以中文標籤變成口口口。

需要再點撥一下,將提示詞修改為如下,再次執行,圖表就顯示正常了。
幫我計算所有要素的面積,並生成一個柱狀圖,圖表標籤是地名,地名字段的名稱為“地名”。圖表標籤是中文,所以你需要正確設置繪製指令以至顯示,最後將結果保存在我的桌面上。

NDVI計算
難度提升,讓它計算Landsat 5 多波段遙感影像的NDVI指數,
在路徑為/Users/wsh/Desktop/data的文件夾,裏面的子文件夾是一期Ladsat 5衞星遙感影像,包含多個波段。根據這些影像,請幫我計算NDVI指數,並顯示在地圖上
下圖的NDVI計算結果是錯誤的,不知道是不是因為我沒有提供足夠的信息,調整了好幾次提示詞,都沒有成功。

下圖是我手動計算的結果。

獲取地理位置以及顯示
我讓它幫忙查看杭州所有大學在地圖上的分佈。
幫我獲取杭州所有大學的名單及其經緯度座標,並顯示在地圖上
大模型獲取到了座標信息,但是並不能將其渲染到QGIS地圖畫布中,因為該MCP工具暫時還不支持根據文本座標創建點圖層。不過它令人驚喜的一點是,在MCP不支持自動生成點圖層的情況下,它通過生成一份HTML網頁這種“曲線救國”的方式完成了我的需求,用瀏覽器打開,可以進行簡單的交互查看。

背後的原理
先暫時拋開那些專業且複雜的名詞,定義,簡單瞭解下大模型,MCP服務器,QGIS插件,QGIS四者,它們之間如何互相協同完成需求[3]。
大模型作為總指揮,它理解人類語言將需求分解,然後間接控制QGIS執行一系列動作來完成需求,而MCP服務器和QGIS插件可以看作是控制的手段(類似計算機裏的中間件)。它通過MCP協議與MCP服務器交互。
MCP服務器作為工具箱的角色,它告訴大模型它內部實現了什麼服務,通過它可以執行哪些功能,執行功能的時候需要提供哪些輸入數據等一系列上下文信息。
QGIS插件則是MCP服務器所描述的功能的實現者。通俗點説就是MCP服務器畫大餅,然後它來幹活。它與服務器一般採用WebAPI來通信。
最後是QGIS,其實它才是真正的打工人,因為QGIS插件只是調用了它的API來完成具體工作。
寫在後面
目前MCP在GIS領域的應用尚在起步階段,功能還不是很豐富,未來應該會有越來越多服務集成進來,特別是基於位置的服務(LBS)。
附帶一些小吐槽,首先是整個MCP體系太繁瑣了,安裝這又那的,而且每一個MCP服務都是獨立的,也就是説A電腦安裝後無法與B電腦共享(未來會不會出現那種MCPServerHub)。
其次MCP服務的運行環境是python或者node,如果安裝多個服務是否會造成資源浪費,畢竟不是每一個服務都時刻在用,能不能複用一套環境呢。
最後這一條僅針對GIS,使用它來處理地理數據有泄密風險。因為GIS特殊的行業性質,導致許多數據涉密,不能使用互聯網上公開的大模型服務來處理,除非是個人或者企業內部部署,光這一條我覺得就已經將一半的人攔在門外。
參考
-
https://www.claudemcp.com/ ↩︎
-
https://www.bilibili.com/video/BV1MjZ5YrESn/?spm_id_from=333.1007.top_right_bar_window_dynamic.content.click&vd_source=10d0f86227f3c318f8237345caac47c8 ↩︎
-
https://www.cnblogs.com/lwp-nicol/p/18793956 ↩︎