A Model Context Protocol (MCP) server implementation that connects LLMs to the GeoServer REST API, enabling AI assistants to interact with geospatial data and services.
https://github.com/mahdin75/geoserver-mcpStop wrestling with GeoServer's REST API documentation. This MCP server lets Claude, Cursor, or any AI assistant manage your geospatial infrastructure through natural language commands.
If you've worked with GeoServer, you know the drill. Need to create a workspace? Navigate through the admin interface or craft the exact REST call. Want to query spatial features? Hope you remember the CQL syntax. Publishing a new layer? Better have the JSON payload structure memorized.
These repetitive tasks eat up development time, especially when you're prototyping spatial applications or managing multiple GeoServer instances.
Instead of this:
curl -u admin:geoserver -XPOST -H "Content-type: text/xml" \
http://localhost:8080/geoserver/rest/workspaces \
-d "<workspace><name>my_workspace</name></workspace>"
You simply tell your AI assistant: "Create a workspace called my_workspace"
The MCP server handles the REST API complexity while your assistant provides the natural language interface you actually want to use.
Spatial Data Exploration: Ask "Show me all states with population over 10 million" instead of writing CQL queries by hand. Your assistant executes the spatial query and returns results.
Layer Management: "Create a new layer for storing building footprints with these attributes..." Your assistant handles the GeoServer configuration, field definitions, and SRS setup.
Map Generation: "Generate a styled map of the western US showing population density" becomes a single command instead of configuring WMS parameters, bounding boxes, and styling.
Development Workflow: During development, you can rapidly prototype spatial features by describing what you need rather than context-switching to GeoServer documentation.
Three installation paths depending on your setup:
Docker (recommended for testing):
docker pull mahdin75/geoserver-mcp
docker run -d -e GEOSERVER_URL=http://localhost:8080/geoserver \
-e GEOSERVER_USER=admin -e GEOSERVER_PASSWORD=geoserver \
mahdin75/geoserver-mcp
pip (for regular use):
uv venv --python=3.10
uv pip install geoserver-mcp
export GEOSERVER_URL="http://localhost:8080/geoserver"
geoserver-mcp
Development (for contributors):
Clone, install with uv pip install -e ., and you're ready to modify the codebase.
The server exposes 15+ tools covering the GeoServer operations you actually use:
Each tool is designed around real workflows - not just API coverage for the sake of completeness.
Configure once in your MCP client (Claude Desktop or Cursor):
{
"mcpServers": {
"geoserver-mcp": {
"command": "/path/to/.venv/bin/geoserver-mcp",
"args": ["--url", "http://localhost:8080/geoserver", "--user", "admin", "--password", "geoserver"]
}
}
}
Then your spatial data infrastructure becomes as accessible as asking questions. No more keeping GeoServer docs open in another tab.
This MCP server shines when you're:
At 22 stars and active development, geoserver-mcp is building momentum in the spatial developer community. The alpha status means it's ready for testing and experimentation, with the core functionality solid enough for real development work.
If you're already using AI assistants for development and work with geospatial data, this MCP server belongs in your toolkit. It's the kind of productivity multiplier that makes you wonder how you managed spatial infrastructure before having an AI assistant that actually understands GeoServer.