内容大概有改动,统统以原文为准。
目录
写在前面
近期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安装,执行如下命令: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]。
graph TDuser[用户1] --> llm[大模子]user2[用户2] --> llm[大模子]llm mcp[MCP服务器]mcp plugin[QGIS插件]plugin QGIS大模子作为总指挥,它理解人类语言将需求分解,然后间接控制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特殊的行业性质,导致许多数据涉密,不能利用互联网上公开的大模子服务来处置惩罚,除非是个人或者企业内部部署,光这一条我觉得就已经将一半的人拦在门外。
参考
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |