GeoServer MCP Server 是一个 Model Context Protocol(MCP)服务器实现,用于将大语言模型(LLM)连接到 GeoServer REST API,使 AI 助手能够与地理空间数据和服务进行交互。项目由 mahdin75 开发,当前版本 0.5.0(Beta)处于积极开发中,欢迎开发者贡献。
用途 该项目面向地理空间数据管理与自动化场景,让兼容 MCP 的 AI 客户端能够通过自然语言或工具调用方式操作 GeoServer 中的工作区、数据存储、图层、样式等资源,并执行空间查询与地图可视化。
主要能力
- 查询和操作 GeoServer 工作区、图层和样式
- 对矢量数据执行空间查询
- 生成地图可视化
- 访问符合 OGC 标准的 Web 服务(WMS、WFS)
- 与 MCP 兼容客户端轻松集成
可用工具与资源端点 服务器暴露的工具按类别组织,包括:资源端点(通过 URI 模式直接访问 GeoServer 资源)、工作区管理、数据存储与覆盖存储管理、图层管理、图层组管理、用户与用户组管理、要素类型与属性管理、样式管理、系统与服务操作、样式 XML 工具。
部署方式 GeoServer MCP 有两种运行方式,二者共享同一产品理念(通过 MCP 工具操作 GeoServer),但属于独立产物,Python 包保持不变:
- Python MCP Server:独立运行(pip、Docker 或 Smithery),进程与代理进行 MCP 通信并调用 GeoServer REST API。这是原始且当前已发布的部署方式。
- GeoServer Extension:将 GeoServer MCP 扩展直接安装到 GeoServer 中,在 /geoserver/mcp 暴露远程 MCP 端点,无需 Python 侧车,面向 GeoServer 2.28.x。架构、安装、配置、安全与客户端示例见 extension/README.md。
安装方式
- Smithery:可通过 Smithery 为 Claude Desktop 自动安装 GeoServer MCP Server。
- Docker:最快捷且隔离性最好的运行方式,适合快速测试评估、生产部署、希望避免 Python 依赖的环境以及跨系统一致部署。运行 geoserver-mcp 后配置客户端:Claude Desktop 编辑 claude_desktop_config.json,Cursor 创建 .cursor/mcp.json。
- pip:推荐给大多数希望直接在系统上运行服务器的用户,适合本地运行、已安装 Python 3.10+ 的系统、希望自定义配置的用户以及开发测试。步骤包括安装 uv 包管理器、创建虚拟环境(Python 3.10+,Windows PowerShell 有对应命令)、使用 pip 安装包、配置 GeoServer 连接、启动服务器;若使用 Claude Desktop 无需手动启动,Cursor 或自定义客户端需运行相应代码并配置客户端。
- 开发安装:面向贡献者和希望修改代码库的开发者,适合参与项目开发、修改源码、测试新功能以及调试开发。
文件存储与 --storage 用法 GeoServer MCP 服务器支持可选的 --storage 标志,用于指定所有文件读写操作的基础目录,例如上传 shapefile、GeoTIFF 或导出结果。该标志设置所有数据相关工具的文件操作根文件夹。相关工具参数可提供相对路径(相对于存储根目录)或绝对路径(绕过存储根目录)。若未设置 --storage,路径按用户提供的方式解析(相对于工作目录或绝对路径)。绝对路径(如 'C:/input/other.shp')始终按原样使用。在 Docker 中运行时,需将存储目录挂载为卷,并使用相对路径以保持可移植性;远程或容器部署时需确保文件数据在容器内可访问(必要时使用 Docker 卷)。具体哪些参数使用存储系统可查看工具文档字符串。
客户端开发 如需开发自己的客户端与 GeoServer MCP 服务器交互,可参考示例客户端实现 examples/client.py,其中演示了如何与 MCP 服务器建立连接、发送请求与处理响应、基本错误处理与连接管理,以及各种工具和操作的示例用法。
计划功能 覆盖与栅格数据管理、安全与访问控制、高级样式能力、WPS 处理操作、GeoWebCache 集成。
适用场景与限制 适用于需要通过 AI 助手管理 GeoServer 地理空间数据、执行空间查询和生成地图可视化的用户。使用前提包括 Python 3.10 或更高版本、运行中且启用 REST API 的 GeoServer 实例、MCP 兼容客户端(如 Claude Desktop 或 Cursor),以及用于安装包的互联网连接。当前版本为 0.5.0 Beta,部分功能(如栅格数据管理、安全访问控制等)仍在计划中。项目采用 MIT 许可证。