乐于分享
好东西不私藏

原地起飞:QGIS搭载MCP工具,让AI操作QGIS干活!

原地起飞:QGIS搭载MCP工具,让AI操作QGIS干活!

QGIS作为一款强大的开源GIS桌面软件,其功能的丰富性无需多言。就作者自身使用经验而言,熟练掌握和运用该工具来进行各类场景的数据处理任务,需要较长时间的学习和沉淀。然而在AI时代,各类MCP实现了AI引擎和工具的连接,有没有能够连接QGIS和AI引擎的MCP,从而让QGIS自己干活呢?答案是肯定的,有!

本文要介绍的QGIS的MCP项目地址如下:

https://github.com/jjsantos01/qgis_mcp.git

通过使用该MCP,能够在QGIS和AI引擎之间建立连接,在AI聊天窗口写出需求,即能让引擎操作QGIS自动完成任务。


功能简介

从项目的介绍信息来看,该工具能够实现的功能如下:

  1. 双向通信:通过socket套接字服务实现 AI引擎与 QGIS 的互联。
  2. 项目管理:在 QGIS 中新建、加载、保存工程文件。
  3. 图层管理:向QGIS工程添加或移除矢量、栅格图层。
  4. 处理工具调用:运行 QGIS 工具箱内的各类空间处理算法。
  5. 代码执行:由AI引擎远程在 QGIS 环境中运行任意 Python 代码。该功能能力极强,但使用时需谨慎。

安装方式

本文结合自身实践来分享安装过程:

一、先安装基础环境

  1. QGIS:3.28+(建议 3.34/3.40)
  2. Python 3.10+(系统 Python,不是 QGIS 内置)
  3. uv 包管理器(用来跑 QGIS-MCP 服务)。在powershell窗口执行以下命令来安装uv:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装完把C:\Users\你的用户名\.local\bin加入系统环境变量Path

二、安装 QGIS MCP 插件

  1. 下载源码(ZIP 也行):https://github.com/jjsantos01/qgis_mcp
  2. 找到 QGIS 插件目录:QGIS 菜单 → Settings → User Profiles → Open Active Profile Folder → 进入 python/plugins

Windows 一般是:

C:\Users\你的用户名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

3、把源码里的qgis_mcp_plugin整个文件夹复制进去。(注意不是源码目录,而是源码目录里面的qgis_mcp_plugin目录)

4、重启 QGIS →PluginsManage and Install Plugins→ 启用QGIS MCP

三、在 QGIS 里启动 MCP 服务

1、QGIS 菜单:Plugins → QGIS MCP → QGIS MCP
2、点击 Start Server(默认端口 9876),显示 Running 即可。

四、AI工具中添加 QGIS MCP

作者使用的AI工具是Trae。主流的工具如Cursor、VS Code等配置方式类似。这里以Trae来介绍:

1、打开 Trae → 右上角 AI 侧栏 → 点设置 ⚙️ → 选 MCP。
2、点 添加 → 手动添加。

粘贴下面配置,注意替换其中的directory路径为你本地的实际路径。

{  "mcpServers": {    "qgis": {      "command": "uv",      "disabled": false,      "timeout": 60,      "type": "stdio",      "args": [        "--directory",        "D:/qgis_mcp/src/qgis_mcp",  // 换成你本地qgis_mcp 源码路径,注意是源码路径下的src路径下的qgis_mcp目录        "run",        "qgis_mcp_server.py"      ]    }  }}

确认后,Trae MCP 列表里出现qgis,绿色对勾就是正常。


在 Trae 中用 QGIS

1、Trae AI 聊天框 → 选 Builder with MCP或Agent 模式。
2、万事大吉,现在可以在Trae的聊天框给QGIS提需求了。作者尝试了几个不同复杂度的需求,QGIS都较快地自动完成了任务。

任务一:加载【九大农业区划】shp数据到QGIS。

任务二:将该数据按CODE字段来分类设色。

完成结果:

任务三:将新加载的"灯光2023"的栅格数据按"九大农业区划数据"来进行分割。

完成结果:

总体测试下来,准确度和满意度都比较高。在测试任务三时QGIS还合理的按矢量数据的名称字段来对分割后的栅格数据进行了命名。

当然MCP只是桥接工具,至于对需求理解能力和水平还是要看使用的AI模型。作者使用的AI模型是Gemini-3.1-Pro-Preview,至于其他模型在操作QGIS时表现如何,还有待后续进一步测试分享。

Github上还有一个类似的QGIS的MCP项目,地址https://github.com/jjsantos01/qgis_mcp,该项目从标星数量和Fork数量来看,比本文所使用的Git项目都少很多,作者暂未进行下载测试。


写在最后

现在各类AI工具能够帮助完成很多的重复性和流程性的工作,这就给人们节省了大量的时间和精力。就作者的体会来说,对于个体而言,基础知识和原理的掌握显得更为重要了,因为脱离了自身实操,很多知识和概念更容易遗忘和混淆。没有基础,AI完成的产出成果很容易变为空中楼阁。现阶段AI最大的价值体现,或许是帮助人们解放出时间和精力,去思考如何满足用户需求,以及设计更好用的产品。