返回市场
QGIS_MCP服务器

QGIS_MCP服务器

作者:jjsantos01700 星标更新:2025-10-01

项目介绍

QGISMCP - QGIS 模型上下文协议集成

QGISMCP 通过 模型上下文协议 (MCP)QGIS 连接到 Claude AI,使 Claude 能够直接与 QGIS 交互并控制它。此集成支持提示辅助项目创建、图层加载、代码执行等功能。

该项目基于 Siddharth AhujaBlenderMCP 项目。

功能

  • 双向通信:通过基于套接字的服务器连接 Claude AI 和 QGIS。
  • 项目操作:在 QGIS 中创建、加载和保存项目。
  • 图层操作:向项目中添加或移除矢量或栅格图层。
  • 处理执行:执行处理算法(处理工具箱)。
  • 代码执行:从 Claude 在 QGIS 中运行任意 Python 代码。非常强大,但也需要谨慎使用。

组件

系统由两个主要组件组成:

  1. QGIS 插件:一个 QGIS 插件,在 QGIS 内部创建一个套接字服务器以接收和执行命令。
  2. MCP 服务器:一个实现模型上下文协议并连接到 QGIS 插件的 Python 服务器。

安装

先决条件

  • QGIS 3.X(仅测试过 3.22 版本)
  • Claude 桌面版
  • Python 3.10 或更新版本
  • uv 包管理器:

如果你使用的是 Mac,请安装 uv:

brew install uv

在 Windows PowerShell 上:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

否则,请参阅其网站上的安装说明:安装 uv

⚠️ 在安装 UV 之前请勿继续

下载代码

将此仓库下载到你的计算机。你可以通过以下方式克隆它:

git clone git@github.com:jjsantos01/qgis_mcp.git

QGIS 插件

你需要将文件夹 qgis_mcp_plugin 及其内容复制到你的 QGIS 配置文件插件文件夹中。

你可以在 QGIS 中通过菜单 设置 -> 用户配置文件 -> 打开活动配置文件夹 获取你的配置文件夹。然后,进入 Python/plugins 并粘贴文件夹 qgis_mcp_plugin

在 Windows 机器上,插件文件夹通常位于:C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

在 MacOS 上:~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins

然后关闭 QGIS 并重新打开。转到菜单选项 插件 > 安装和管理插件,选择 全部 标签并搜索 "QGIS MCP",然后勾选 QGIS MCP 复选框。

Claude 桌面版集成

转到 Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json,包括以下内容:

如果找不到“开发者”标签或 claude_desktop_config.json 文件,请查看此 文档

{
    "mcpServers": {
        "qgis": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp",
                "run",
                "qgis_mcp_server.py"
            ]
        }

    }
}

使用

启动连接

  1. 在 QGIS 中,转到 插件 > QGIS MCP > QGIS MCP 插件菜单
  2. 点击 "启动服务器" 启动服务器

与 Claude 结合使用

一旦在 Claude 中设置了配置文件,并且 QGIS 中的服务器正在运行,你将看到一个锤子图标,其中包含用于 QGIS MCP 的工具。

Claude 工具

工具

  • ping - 简单的 ping 命令,检查服务器连通性
  • get_qgis_info - 获取当前 QGIS 安装的信息
  • load_project - 从指定路径加载 QGIS 项目
  • create_new_project - 创建新项目并保存
  • get_project_info - 获取当前项目信息
  • add_vector_layer - 向项目中添加矢量图层
  • add_raster_layer - 向项目中添加栅格图层
  • get_layers - 获取当前项目中的所有图层
  • remove_layer - 通过其 ID 移除项目中的图层
  • zoom_to_layer - 放大到指定图层的范围
  • get_layer_features - 从矢量图层中获取特征,可选限制数量
  • execute_processing - 执行具有给定参数的处理算法
  • save_project - 将当前项目保存到给定路径
  • render_map - 将当前地图视图渲染为图像文件
  • execute_code - 执行作为字符串提供的任意 PyQGIS 代码

示例命令

这是我在 演示 中使用的示例:

你有权访问与 QGIS 交互的工具。你将执行以下操作:
	1. 发送 ping 命令检查连接。如果成功,则继续进行以下步骤。
	2. 创建一个新项目并将其保存至:"C:/Users/USER/GitHub/qgis_mcp/data/cdmx.qgz"
	3. 加载矢量图层:"C:/Users/USER/GitHub/qgis_mcp/data/cdmx/mgpc_2019.shp" 并命名为 "Colonias"。
	4. 加载栅格图层:"C:/Users//USER/GitHub/qgis_mcp/data/09014.tif" 并命名为 "BJ"
	5. 放大到 "BJ" 图层。
	6. 对 "Colonias" 图层执行质心算法。跳过几何检查。将输出保存为 "colonias_centroids.geojson"。
	7. 执行代码以使用 "Colonias" 图层中的 "POB2010" 字段创建分级填充地图。使用五类分位数分类方法和 Spectral 颜色渐变。
	8. 将地图渲染为 "C:/Users/USER/GitHub/qgis_mcp/data/cdmx.png"
	9. 保存项目。