项目简介

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) 能力文档信息的能力。

安装步骤

  1. 确保您已安装 Python 3.10 或更高版本,并且有一个正在运行且 REST API 已启用的 GeoServer 实例。

  2. 克隆或下载 GeoServer MCP 服务器的代码仓库。

  3. 在仓库的根目录下打开终端或命令行。

  4. 运行以下命令安装项目及其依赖:

    pip install -e .
  5. 配置 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"
    • 使用命令行参数 (启动服务器时指定):
      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 服务器上相应的工具和资源,并将结果呈现给您。

信息

分类

数据库与文件