GeoServer MCP Server
@mahdin75
A Model Context Protocol (MCP) server implementation that connects LLMs to the GeoServer REST API
Overview
What is GeoServer MCP Server?
GeoServer MCP Server is a Model Context Protocol (MCP) server implementation that connects large language models (LLMs) to the GeoServer REST API. It enables AI assistants to interact with geospatial data and services, making it suitable for developers, GIS professionals, and anyone integrating GeoServer with MCP-compatible clients.
How to use GeoServer MCP Server?
Install via Docker (docker pull mahdin75/geoserver-mcp), pip (uv pip install geoserver-mcp), or Smithery (npx -y @smithery/cli install @mahdin75/geoserver-mcp --client claude). Configure the GeoServer connection using environment variables (GEOSERVER_URL, GEOSERVER_USER, GEOSERVER_PASSWORD) or CLI arguments (--url, --user, --password). Optionally set a file‑storage root with --storage. Then integrate with an MCP client (e.g., Claude Desktop, Cursor) by editing its configuration file.
Key features of GeoServer MCP Server
- Query and manipulate GeoServer workspaces, layers, and styles
- Execute spatial queries on vector data
- Generate map visualizations
- Access OGC-compliant web services (WMS, WFS)
- Easy integration with MCP-compatible clients
- Supports Docker, pip, and development installations
Use cases of GeoServer MCP Server
- Managing GeoServer workspaces, datastores, and layers via natural language
- Running spatial queries and retrieving feature information
- Generating and styling maps using GeoServer’s WMS/WFS services
- Automating geospatial workflows with AI assistants in tools like Claude Desktop or Cursor
FAQ from GeoServer MCP Server
What are the prerequisites for using GeoServer MCP Server?
Python 3.10 or higher, a running GeoServer instance with the REST API enabled, an MCP-compatible client (e.g., Claude Desktop or Cursor), and an internet connection for package installation.
How do I configure the GeoServer connection?
Set the environment variables GEOSERVER_URL, GEOSERVER_USER, and GEOSERVER_PASSWORD, or pass them as CLI arguments (--url, --user, --password). The default values are http://localhost:8080/geoserver, admin, and geoserver.
Can I run GeoServer MCP Server in Docker?
Yes. Pull the image with docker pull mahdin75/geoserver-mcp and run it with the required environment variables. Mount a host directory as a Docker volume when using the --storage flag for file operations.
How does file storage work with the --storage flag?
The --storage flag sets a base directory for all file read/write operations (e.g., uploading shapefiles or exporting results). Relative paths are resolved against this root; absolute paths are used as‑is. When running in Docker, ensure the directory is mounted as a volume.
Which MCP clients are supported?
GeoServer MCP Server works with any MCP-compatible client. The README provides configuration examples for Claude Desktop and Cursor.