m

mahdin75

@mahdin75/geoserver-mcp
0 Stars 385 次浏览 mahdin75 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "geoserver-mcp": {
      "args": [
        "--url",
        "http://localhost:8080/geoserver",
        "--user",
        "admin",
        "--password",
        "geoserver"
      ],
      "command": "C:\\path\\to\\geoserver-mcp\\.venv\\Scripts\\geoserver-mcp"
    }
  }
}

服务介绍

GeoServer MCP 服务器

Alpha

版本 0.4.0(Alpha)正在积极开发中,并将很快发布。我们欢迎贡献者和开发者加入我们共同构建这个项目。

🎥 演示

📋 目录

🚀 功能

  • 🔍 查询和操作 GeoServer 工作区、图层和样式
  • 🗺️ 对矢量数据执行空间查询
  • 🎨 生成地图可视化
  • 🌐 访问 OGC 兼容的 Web 服务 (WMS, WFS)
  • 🛠️ 与 MCP 兼容的客户端轻松集成

📋 前提条件

  • Python 3.10 或更高版本
  • 正在运行的 GeoServer 实例并启用了 REST API
  • MCP 兼容的客户端(如 Claude Desktop 或 Cursor)
  • 用于包安装的互联网连接

🛠️ 安装

选择最适合您需求的安装方法:

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 GeoServer MCP 服务器,请使用以下命令:

bash
npx -y @smithery/cli install @mahdin75/geoserver-mcp --client claude

🛠️ Docker 安装

Docker 安装是运行 GeoServer MCP 服务器最快且最隔离的方式。它适用于:

  • 快速测试和评估
  • 生产部署
  • 不希望依赖 Python 环境的情况
  • 在不同系统上保持一致的部署
  1. 运行 geoserver-mcp:

bash
docker pull mahdin75/geoserver-mcp
docker run -d mahdin75/geoserver-mcp

  1. 配置客户端:

如果您使用的是 Claude Desktop,请编辑 claude_desktop_config.json
如果您使用的是 Cursor,请创建 .cursor/mcp.json

json
{
"mcpServers": {
"geoserver-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GEOSERVER_URL=http://localhost:8080/geoserver",
"-e",
"GEOSERVER_USER=admin",
"-e",
"GEOSERVER_PASSWORD=geoserver",
"-p",
"8080:8080",
"mahdin75/geoserver-mcp"
]
}
}
}

🛠️ pip 安装

pip 安装推荐给大多数希望直接在系统上运行服务器的用户。此方法适用于:

  • 希望在本地运行服务器的普通用户
  • 已安装 Python 3.10+ 的系统
  • 希望自定义服务器配置的用户
  • 开发和测试目的
  1. 安装 uv 包管理器。

bash
pip install uv

  1. 创建虚拟环境(Python 3.10+):

Linux/Mac:

bash
uv venv --python=3.10

Windows PowerShell:

bash
uv venv --python=3.103. 使用 pip 安装包:

bash
uv pip install geoserver-mcp

  1. 配置 GeoServer 连接:

Linux/Mac:

bash
export GEOSERVER_URL="http://localhost:8080/geoserver"
export GEOSERVER_USER="admin"
export GEOSERVER_PASSWORD="geoserver"

Windows PowerShell:

powershell
$env:GEOSERVER_URL="http://localhost:8080/geoserver"
$env:GEOSERVER_USER="admin"
$env:GEOSERVER_PASSWORD="geoserver"

  1. 启动服务器:

如果你将使用 Claude 桌面版,则不需要此步骤。对于 Cursor 或你自己的自定义客户端,你应该运行以下代码。

Linux:

bash
source .venv/bin/activate

geoserver-mcp

bash
source .venv/bin/activate

geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

bash
..venvScriptsactivate
geoserver-mcp

bash
..venvScriptsactivate
geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

  1. 配置客户端:

如果你使用的是 Claude 桌面版,请编辑 claude_desktop_config.json
如果你使用的是 Cursor,请创建 .cursor/mcp.json

Windows:

json
{
"mcpServers": {
"geoserver-mcp": {
"command": "C:\path\to\geoserver-mcp\.venv\Scripts\geoserver-mcp",
"args": [
"--url",
"http://localhost:8080/geoserver",
"--user",
"admin",
"--password",
"geoserver"
]
}
}
}

Linux:

json
{
"mcpServers": {
"geoserver-mcp": {
"command": "/path/to/geoserver-mcp/.venv/bin/geoserver-mcp",
"args": [
"--url",
"http://localhost:8080/geoserver",
"--user",
"admin",
"--password",
"geoserver"
]
}
}
}

🛠️ 开发安装

开发安装是为贡献者和开发者设计的,他们希望修改代码库。这种方法适用于:

  • 为项目做贡献的开发者
  • 需要修改源代码的用户
  • 测试新功能
  • 调试和开发目的
  1. 安装 uv 包管理器。

bash
pip install uv

  1. 创建虚拟环境(Python 3.10+):

bash
uv venv --python=3.10

  1. 使用 pip 安装包:

bash
uv pip install -e .

  1. 配置 GeoServer 连接:

Linux/Mac:

bash
export GEOSERVER_URL="http://localhost:8080/geoserver"
export GEOSERVER_USER="admin"
export GEOSERVER_PASSWORD="geoserver"

Windows PowerShell:

powershell
$env:GEOSERVER_URL="http://localhost:8080/geoserver"
$env:GEOSERVER_USER="admin"
$env:GEOSERVER_PASSWORD="geoserver"

  1. 启动服务器:

如果你将使用 Claude 桌面版,则不需要此步骤。对于 Cursor 或你自己的自定义客户端,你应该运行以下代码。

Linux:

bash
source .venv/bin/activate

geoserver-mcp

bash
source .venv/bin/activate

geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

bash
..venvScriptsactivate
geoserver-mcp

bash
..venvScriptsactivate
geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

  1. 配置客户端:

如果你使用的是 Claude 桌面版,请编辑 claude_desktop_config.json
如果你使用的是 Cursor,请创建 .cursor/mcp.json

Windows:

json
{
"mcpServers": {
"geoserver-mcp": {
"command": "C:\path\to\geoserver-mcp\.venv\Scripts\geoserver-mcp",
"args": [
"--url",
"http://localhost:8080/geoserver",
"--user",
"admin",
"--password",
"geoserver"
]
}
}
}

Linux:

json
{
"mcpServers": {
"geoserver-mcp": {
"command": "/path/to/geoserver-mcp/.venv/bin/geoserver-mcp",
"args": [
"--url",
"http://localhost:8080/geoserver",
"--user",
"admin",
"--password",
"geoserver"
]
}
}
}## 🛠️ 可用工具

🛠️ 工作区和图层管理

工具 描述
list_workspaces 获取可用的工作区
create_workspace 创建新的工作区
get_layer_info 获取详细的图层元数据
list_layers 列出工作区中的图层
create_layer 创建新的图层
delete_resource 删除资源

🛠️ 数据操作

工具 描述
query_features 在矢量数据上执行CQL查询
update_features 修改要素属性
delete_features 根据条件删除要素

🛠️ 可视化

工具 描述
generate_map 创建样式化的地图图像
create_style 定义新的SLD样式
apply_style 将现有样式应用到图层

🛠️ 客户端开发

如果您计划开发自己的客户端来与GeoServer MCP服务器交互,可以在examples/client.py中找到示例客户端实现的灵感。该示例展示了:

  • 如何与MCP服务器建立连接
  • 如何发送请求并处理响应
  • 基本的错误处理和连接管理
  • 各种工具和操作的使用示例

示例客户端是理解协议和实现您自己的客户端应用程序的良好起点。

此外,这里有一些示例用法:

列出工作区

Tool: list_workspaces
Parameters: {}
Response: ["default", "demo", "topp", "tiger", "sf"]

获取图层信息

Tool: get_layer_info
Parameters: {
"workspace": "topp",
"layer": "states"
}

查询要素

Tool: query_features
Parameters: {
"workspace": "topp",
"layer": "states",
"filter": "PERSONS > 10000000",
"properties": ["STATE_NAME", "PERSONS"]
}

生成地图

Tool: generate_map
Parameters: {
"layers": ["topp:states"],
"styles": ["population"],
"bbox": [-124.73, 24.96, -66.97, 49.37],
"width": 800,
"height": 600,
"format": "png"
}

🔮 计划中的功能

  • 覆盖和栅格数据管理
  • 安全性和访问控制
  • 高级样式功能
  • WPS处理操作
  • GeoWebCache集成

🤝 贡献

我们欢迎贡献!以下是您可以帮助的方式:

  1. 分叉仓库
  2. 创建一个特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个拉取请求

请确保您的PR描述清楚地说明了问题和解决方案。如果适用,请包含相关的issue编号。

📄 许可证

此项目根据MIT许可证许可 - 详情请参阅LICENSE文件。

🔗 相关项目

📞 支持

如需支持,请打开issue

🏆 徽章

相关 MCP 服务