mcpField
G
Gdal Mcp

Gdal Mcp

本地服务
github.com/Wayfinder-Foundry地图与出行8323 周前更新

关于 Gdal Mcp

gdal-mcp 是一个 MCP 服务,将 GDAL 与 Rasterio 的栅格和矢量操作开放给 AI Agent。其中的反思中间件要求在执行关键操作(如 CRS 选择、重采样方法、查询范围)前提交结构化理由。

主要功能

  1. 01栅格与矢量数据的信息查看与转换
  2. 02坐标参考系统(CRS)重投影
  3. 03矢量裁剪、缓冲与简化
  4. 04按工作区目录限制可访问路径
  5. 05关键操作前需提交结构化理由

适用场景

  1. 01由 AI Agent 辅助处理遥感与 GIS 数据
  2. 02批量转换或重投影地理空间数据文件
  3. 03记录地理空间处理中方法选择的依据

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 raster_* 与 vector_* 系列工具、资源以及用于理由说明的提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gdal": {
"command": "uvx",
"args": [
"gdal-mcp"
],
"env": {
"GDAL_MCP_WORKSPACES": "<GDAL_MCP_WORKSPACES>"
}
}
}
}
启动命令uvx gdal-mcp
需要配置的环境变量
GDAL_MCP_WORKSPACES

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigdal-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

gdal-mcp

向 AI Agent 提供 GDAL/Rasterio 操作的 MCP 服务,并带有反思中间件:对于方法选择很重要的操作(CRS 选择、重采样方法、查询范围),执行前必须提供结构化说明。

CI License: MIT Python 3.11+ FastMCP 2.0 PyPI Downloads

安装

通过 uvx(推荐)
uvx --from gdal-mcp gdal --transport stdio
通过 Docker
docker build -t gdal-mcp .
docker run -i gdal-mcp gdal --transport stdio
本地开发
git clone https://github.com/Wayfinder-Foundry/gdal-mcp.git
cd gdal-mcp
uv sync
uv run gdal --transport stdio

配置 MCP 客户端

Claude Desktop

将以下内容添加到 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/, Windows:%APPDATA%\Claude\,Linux:~/.config/Claude/):

{
  "mcpServers": {
    "gdal-mcp": {
      "command": "uvx",
      "args": ["--from", "gdal-mcp", "gdal", "--transport", "stdio"],
      "env": {
        "GDAL_MCP_WORKSPACES": "/path/to/your/geospatial/data"
      }
    }
  }
}

重启 Claude Desktop。此时应显示 MCP 服务指示器,并且可以使用 raster_* 和 vector_* 工具。

工作区范围限制

GDAL_MCP_WORKSPACES 是一个以冒号分隔的目录列表,指定服务允许访问的目录。 如果未设置,则允许访问所有路径,并记录一条警告。

可选的工具范围标志:RASTER=true、VECTOR=true。完整列表请参阅 docs/ENVIRONMENT_VARIABLES.md。

工具

  • 栅格: raster_info、raster_convert、raster_reproject、raster_stats、raster_query
  • 矢量: vector_info、vector_convert、vector_reproject、vector_clip、vector_buffer、vector_simplify、vector_query
  • **资源:**目录(workspace://...)、元数据(metadata://...)、参考资料(reference://...)、查询结果(query://result/{id})
  • 提示词: justify_crs_selection、justify_resampling_method、justify_query_extent(以及 src/prompts/ 中的更多提示词)

参数、返回结构和示例请参阅 TOOLS.md。

反思中间件

对于方法选择很重要的工具,调用 Agent 必须先提供结构化说明,否则工具不会执行。流程如下:

  1. Agent 调用例如 raster_reproject(dst_crs="EPSG:3857", resampling="cubic", ...)。
  2. 中间件会在 .preflight/justifications/{domain}/ 中检查是否存在匹配的哈希值。
  3. 如果未找到,调用会抛出 ToolError,并提示使用相关提示词(例如 justify_crs_selection)。
  4. Agent 调用该提示词,填写 Justification 模式(意图、考虑过的替代方案、选择、权衡、置信度),然后通过 __reflection 负载重新调用工具。
  5. 说明会按领域缓存,因此后续调用 raster_reproject 和 vector_reproject 时,针对 EPSG:3857 的 CRS 说明都能满足要求。

模式和缓存布局请参阅 docs/REFLECTION.md,了解此功能的缘由请参阅 docs/PHILOSOPHY.md。

文档

故障排除

Access denied: path outside allowed workspaces — 将相关目录添加到 GDAL_MCP_WORKSPACES 中(参阅“工作区范围限制”)。

MCP 客户端看不到服务 — 先确认 uvx --from gdal-mcp gdal --help 可以独立运行,然后在编辑配置文件后重启客户端。

License

MIT — see LICENSE.

Built on FastMCP, Rasterio, pyogrio, and Shapely.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。