返回市场
量子地理信息系统MCP修改1

量子地理信息系统MCP修改1

作者:syauqi-uqi8 星标更新:2025-04-11

项目介绍

QGISMCP - QGIS Model Context Protocol 集成(更新版本来自 https://github.com/jjsantos01/qgis_mcp)

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

该项目基于 (https://github.com/jjsantos01/qgis_mcp)。我只是修复了一些我找到的错误。

该项目强烈依赖于 BlenderMCP 项目由 Siddharth Ahuja

功能

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

组件

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

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

安装

先决条件

  • QGIS 3.X(仅测试过 3.22 和 3.34)
  • 云端桌面
  • 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 后再继续

下载代码

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

https://github.com/syauqi-uqi/qgis_mcp_modify1.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",
                "#更改此行为你的目录#",
                "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 代码

示例命令

这是我在 演示 中使用的示例: 或者,对于这个更新版本,请参见 (https://www.linkedin.com/posts/syauqi-arka-yudisti-73b236288_qgis-ai-vibemapping-activity-7316248625045483524-hQdB?utm_source=share&utm_medium=member_android&rcm=ACoAAEXNN58BLMyjf4iZIy1KZZJBUFyiNlLtNSg)

你有权访问与 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" 字段创建分级色彩填充图。使用五类分位数分类方法和光谱色阶。
	8. 将地图渲染为 "C:/Users/USER/GitHub/qgis_mcp/data/cdmx.png"
	9. 保存项目。

我版本的另一个示例命令

你有权访问与 QGIS 交互的工具。你将执行以下操作:

1. **发送 ping 命令检查连接**。如果成功,则继续进行以下步骤。

2. **创建一个新的 QGIS 项目**并保存到:
   **"D:/PROJECT/MCP/claudemap.qgz"** (使用斜杠 `/` 以确保兼容性)。

3. **加载矢量图层**:
   a. 加载 **"D:/PROJECT/MCP/map (2).osm"** (OSM 图层将分为 `points`、`lines`、`multilinestrings`、`multipolygons`)。
   b. 加载 **"D:/PROJECT/MCP/Bahan_Mundupesisir/aoi.shp"** 并命名为 **"aoi"**。

4. **放大到 "aoi" 图层**以设置初始范围。

5. **移除/隐藏不必要的图层**:
   a. 移除图层 **"map (2) — points"** (右键点击 > 移除图层)。
   b. 隐藏图层 **"aoi"** (为了保留范围但不在地图上显示它)。

6. **样式图层**:
   a. **"map (2) — lines"**:
      - 线颜色:**#ff6201**(橙色)
      - 笔画宽度:**0.5 mm**
   b. **"map (2) — multilinestrings"**:
      - 线颜色:**#8bff07**(霓虹绿)
      - 笔画宽度:**0.8 mm**
   c. **"map (2) — multipolygons"**:
      - 填充颜色:**#fff65f**(淡黄色)
      - 笔画颜色:**#fff65f**(与填充相同)
      - 笔画宽度:**0.3 mm**
      - 透明度:**80%**

7. **创建打印布局(A4 纵向)**:
   a. 添加一个 **Map Item**,尺寸为 A4(210x297 mm)。
   b. 设置比例尺为 **1:10,000** 并启用 **"锁定图层以供地图项使用"**。
   c. 添加 **标题**:
      - 文本:**"PETA MUNDUPESISIR BY CLAUDE.AI"**
      - 字体:**粗体,24pt**
      - 位置:顶部居中。
   d. 添加 **比例尺** 和 **图例**(可选)。

8. **导出为 PNG**:
   - 路径:**"D:/PROJECT/MCP/claudemap.png"**
   - 分辨率:**600 DPI**(确保文件大小不会太大)。

9. **保存 QGIS 项目**。