项目简介
GeoServer MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的应用后端。它充当大型语言模型 (LLM) 客户端与 GeoServer 之间的桥梁,允许 AI 助手通过标准化的协议与 GeoServer 的 REST API 进行交互,从而实现对地理空间数据、服务和功能的智能访问和控制。
主要功能点
- 管理 GeoServer 资源: 允许 LLM 助手查询和操作 GeoServer 中的工作区 (workspaces)、图层 (layers) 和样式 (styles) 等资源。
- 执行空间查询: 能够对 GeoServer 中托管的矢量数据执行使用 CQL (Common Query Language) 的空间或属性查询。
- 生成地图可视化: 支持通过调用 GeoServer 的 WMS (Web Map Service) 功能生成带有指定图层和样式的地图图片。
- 访问 OGC 服务信息: 提供获取 GeoServer 发布的 WMS 和 WFS (Web Feature Service) 能力文档信息的能力。
安装步骤
-
确保您已安装 Python 3.10 或更高版本,并且有一个正在运行且 REST API 已启用的 GeoServer 实例。
-
克隆或下载 GeoServer MCP 服务器的代码仓库。
-
在仓库的根目录下打开终端或命令行。
-
运行以下命令安装项目及其依赖:
pip install -e . -
配置 GeoServer 连接信息。您可以通过设置环境变量或在启动服务器时通过命令行参数指定。
- 使用环境变量 (推荐):
- Linux/macOS:
export GEOSERVER_URL="http://localhost:8080/geoserver" export GEOSERVER_USER="admin" export GEOSERVER_PASSWORD="geoserver" - Windows PowerShell:
$env:GEOSERVER_URL="http://localhost:8080/geoserver" $env:GEOSERVER_USER="admin" $env:GEOSERVER_PASSWORD="geoserver"
- Linux/macOS:
- 使用命令行参数 (启动服务器时指定):
geoserver-mcp-server --url http://localhost:8080/geoserver --user admin --password geoserver
- 使用环境变量 (推荐):
服务器配置 (适用于 MCP 客户端)
GeoServer MCP 服务器是设计给 MCP 客户端(如 Claude Desktop、Cursor 等)使用的。MCP 客户端需要配置如何启动和连接到这个服务器。这通常在客户端的配置文件中完成。您需要提供启动服务器的命令及其参数。
典型的客户端配置需要包含以下信息:
- 一个唯一的服务器名称标识符(例如 '"geoserver-mcp-server"')。
- 启动服务器的可执行命令(通常是安装后在您的环境中可用的命令,本项目是 '"geoserver-mcp-server"')。
- 传递给服务器的启动参数列表。这些参数通常用于指定 GeoServer 的连接详情。
根据本项目的要求,您需要在客户端配置中指定启动命令和至少以下参数:
- '--url <GeoServer URL>': 您的 GeoServer 实例的访问地址,例如 '--url http://localhost:8080/geoserver'。
- '--user <用户名>': 用于连接 GeoServer REST API 的用户名,例如 '--user admin'。
- '--password <密码>': 对应用户的密码,例如 '--password geoserver'。
这些参数会覆盖同名的环境变量设置。
注意:具体的客户端配置格式请参考您使用的 MCP 客户端文档。
基本使用方法
一旦服务器安装并配置好连接信息,并通过 MCP 客户端成功启动并连接,您就可以通过与 LLM 助手的对话来利用 GeoServer 的功能。
例如,您可以尝试向 LLM 助手提出以下请求:
- “列出 GeoServer 中所有的工作区。” (LLM 可能会调用 'list_workspaces' 工具)
- “获取 topp 工作区中 'states' 图层的信息。” (LLM 可能会调用 'get_layer_info' 工具)
- “查询 topp:states 图层中人口超过一千万的州,只需要州名和人口属性。” (LLM 可能会调用 'query_features' 工具,并构建相应的过滤条件和属性列表)
- “生成一个显示 topp:states 图层的地图图片。” (LLM 可能会调用 'generate_map' 工具,并指定图层等参数)
LLM 助手会根据您的自然语言请求,通过 MCP 协议调用 GeoServer MCP 服务器上相应的工具和资源,并将结果呈现给您。
信息
分类
数据库与文件