GeoServer MCP Server
Version 0.4.0 (Alpha) is under active development and will be released shortly. We are open to contributions and welcome developers to join us in building this project.
🎥 Demo
📋 Table of Contents
- Features
- Prerequisites
- Installation
- Available Tools
- Client Development
- Planned Features
- Contributing
- License
- Related Projects
- Support
- Badges
🚀 Features
- 🔍 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
📋 Prerequisites
- Python 3.10 or higher
- Running GeoServer instance with REST API enabled
- MCP-compatible client (like Claude Desktop or Cursor)
- Internet connection for package installation
🛠️ Installation
Choose the installation method that best suits your needs:
🛠️ Installation (Docker)
The Docker installation is the quickest and most isolated way to run the GeoServer MCP server. It's ideal for:
- Quick testing and evaluation
- Production deployments
- Environments where you want to avoid Python dependencies
- Consistent deployment across different systems
- Run geoserver-mcp:
- Configure the clients:
If you are using Claude Desktop, edit claude_desktop_config.json
If you are using Cursor, Create .cursor/mcp.json
🛠️ Installation (pip)
The pip installation is recommended for most users who want to run the server directly on their system. This method is best for:
- Regular users who want to run the server locally
- Systems where you have Python 3.10+ installed
- Users who want to customize the server configuration
- Development and testing purposes
- Install uv package manager.
- Create the Virtual Environment (Python 3.10+):
Linux/Mac:
Windows PowerShell:
- Install the package using pip:
- Configure GeoServer connection:
Linux/Mac:
Windows PowerShell:
- Start the server:
If you are going to use Claude desktop you don't need this step. For cursor or your own custom client you should run the following code.
Linux:
or
Windows PowerShell:
or
- Configure Clients:
If you are using Claude Desktop, edit claude_desktop_config.json
If you are using Cursor, Create .cursor/mcp.json
Windows:
Linux:
🛠️ Development installation
The development installation is designed for contributors and developers who want to modify the codebase. This method is suitable for:
- Developers contributing to the project
- Users who need to modify the source code
- Testing new features
- Debugging and development purposes
- Install uv package manager.
- Create the Virtual Environment (Python 3.10+):
- Install the package using pip:
- Configure GeoServer connection:
Linux/Mac:
Windows PowerShell:
- Start the server:
If you are going to use Claude desktop you don't need this step. For cursor or your own custom client you should run the following code.
Linux:
or
Windows PowerShell:
or
- Configure Clients:
If you are using Claude Desktop, edit claude_desktop_config.json
If you are using Cursor, Create .cursor/mcp.json
Windows:
Linux:
🛠️ Available Tools
🛠️ Workspace and Layer Management
Tool | Description |
---|---|
list_workspaces | Get available workspaces |
create_workspace | Create a new workspace |
get_layer_info | Get detailed layer metadata |
list_layers | List layers in a workspace |
create_layer | Create a new layer |
delete_resource | Remove resources |
🛠️ Data Operations
Tool | Description |
---|---|
query_features | Execute CQL queries on vector data |
update_features | Modify feature attributes |
delete_features | Remove features based on criteria |
🛠️ Visualization
Tool | Description |
---|---|
generate_map | Create styled map images |
create_style | Define new SLD styles |
apply_style | Apply existing styles to layers |
🛠️ Client Development
If you're planning to develop your own client to interact with the GeoServer MCP server, you can find inspiration in the example client implementation at examples/client.py
. This example demonstrates:
- How to establish a connection with the MCP server
- How to send requests and handle responses
- Basic error handling and connection management
- Example usage of various tools and operations
The example client serves as a good starting point for understanding the protocol and implementing your own client applications.
Also, here is the example usgage:
List Workspaces
Get Layer Information
Query Features
Generate Map
🔮 Planned Features
- Coverage and raster data management
- Security and access control
- Advanced styling capabilities
- WPS processing operations
- GeoWebCache integration
🤝 Contributing
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Related Projects
- Model Context Protocol - The core MCP implementation
- GeoServer REST API - Official GeoServer REST documentation
- GeoServer REST Python Client - Python client for GeoServer REST API
📞 Support
For support, please Open an issue
🏆 Badges
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
A Model Context Protocol server that connects Large Language Models to the GeoServer REST API, enabling AI assistants to query and manipulate geospatial data through natural language.
- 🎥 Demo
- 📋 Table of Contents
- 🚀 Features
- 📋 Prerequisites
- 🛠️ Installation
- 🛠️ Available Tools
- 🛠️ Client Development
- 🔮 Planned Features
- 🤝 Contributing
- 📄 License
- 🔗 Related Projects
- 📞 Support
- 🏆 Badges
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.Last updated -316PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server enabling AI agents to access and manipulate ServiceNow data through natural language interactions, allowing users to search for records, update them, and manage scripts.Last updated -9PythonMIT License
- -securityAlicense-qualityA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.Last updated -65891TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI agents to query Erick Wendel's talks, blog posts, and videos across different platforms using natural language.Last updated -55TypeScriptMIT License