Skip to main content
Glama
mahdin75

GeoServer MCP Server

Servidor MCP de GeoServer

Alfa

La versión 0.4.0 (Alfa) está en desarrollo activo y se lanzará próximamente. Estamos abiertos a contribuciones y damos la bienvenida a los desarrolladores a unirse a este proyecto.

🎥 Demostración

Related MCP server: MCP Google Map Server

📋 Índice de contenidos

🚀 Características

  • 🔍 Consultar y manipular espacios de trabajo, capas y estilos de GeoServer

  • 🗺️ Ejecutar consultas espaciales en datos vectoriales

  • 🎨 Generar visualizaciones de mapas

  • 🌐 Acceda a servicios web compatibles con OGC (WMS, WFS)

  • 🛠️ Fácil integración con clientes compatibles con MCP

📋 Requisitos previos

  • Python 3.10 o superior

  • Ejecución de una instancia de GeoServer con la API REST habilitada

  • Cliente compatible con MCP (como Claude Desktop o Cursor)

  • Conexión a Internet para la instalación del paquete

🛠️ Instalación

Elija el método de instalación que mejor se adapte a sus necesidades:

🛠️ Instalación (Docker)

La instalación de Docker es la forma más rápida y aislada de ejecutar el servidor GeoServer MCP. Es ideal para:

  • Pruebas y evaluaciones rápidas

  • Despliegues de producción

  • Entornos en los que desea evitar las dependencias de Python

  • Implementación consistente en diferentes sistemas

  1. Ejecute geoserver-mcp:

docker pull mahdin75/geoserver-mcp docker run -d mahdin75/geoserver-mcp
  1. Configurar los clientes:

Si está usando Claude Desktop, edite claude_desktop_config.json Si está usando Cursor, cree .cursor/mcp.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" ] } } }

🛠️ Instalación (pip)

Se recomienda la instalación de pip para la mayoría de los usuarios que desean ejecutar el servidor directamente en su sistema. Este método es ideal para:

  • Usuarios habituales que quieran ejecutar el servidor localmente

  • Sistemas donde tenga instalado Python 3.10+

  • Usuarios que quieran personalizar la configuración del servidor

  • Fines de desarrollo y prueba

  1. Instalar el administrador de paquetes uv.

pip install uv
  1. Crear el entorno virtual (Python 3.10+):

Linux/Mac:

uv venv --python=3.10

Windows PowerShell:

uv venv --python=3.10
  1. Instale el paquete usando pip:

uv pip install geoserver-mcp
  1. Configurar la conexión GeoServer:

Linux/Mac:

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"
  1. Iniciar el servidor:

Si va a usar el escritorio Claude, no necesita este paso. Para el cursor o su propio cliente personalizado, debe ejecutar el siguiente código.

Linux:

source .venv/bin/activate geoserver-mcp

o

source .venv/bin/activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

.\.venv\Scripts\activate geoserver-mcp

o

.\.venv\Scripts\activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug
  1. Configurar clientes:

Si está usando Claude Desktop, edite claude_desktop_config.json Si está usando Cursor, cree .cursor/mcp.json

Ventanas:

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

Linux:

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

🛠️ Instalación de desarrollo

La instalación de desarrollo está diseñada para colaboradores y desarrolladores que desean modificar el código base. Este método es adecuado para:

  • Desarrolladores que contribuyen al proyecto

  • Usuarios que necesitan modificar el código fuente

  • Probando nuevas funciones

  • Fines de depuración y desarrollo

  1. Instalar el administrador de paquetes uv.

pip install uv
  1. Crear el entorno virtual (Python 3.10+):

uv venv --python=3.10
  1. Instale el paquete usando pip:

uv pip install -e .
  1. Configurar la conexión GeoServer:

Linux/Mac:

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"
  1. Iniciar el servidor:

Si va a usar el escritorio Claude, no necesita este paso. Para el cursor o su propio cliente personalizado, debe ejecutar el siguiente código.

Linux:

source .venv/bin/activate geoserver-mcp

o

source .venv/bin/activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

.\.venv\Scripts\activate geoserver-mcp

o

.\.venv\Scripts\activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug
  1. Configurar clientes:

Si está usando Claude Desktop, edite claude_desktop_config.json Si está usando Cursor, cree .cursor/mcp.json

Ventanas:

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

Linux:

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

🛠️ Herramientas disponibles

🛠️ Gestión de espacios de trabajo y capas

Herramienta

Descripción

list_workspaces

Obtener espacios de trabajo disponibles

create_workspace

Crear un nuevo espacio de trabajo

get_layer_info

Obtener metadatos de capa detallados

list_layers

Enumerar capas en un espacio de trabajo

create_layer

Crear una nueva capa

delete_resource

Eliminar recursos

Operaciones de datos

Herramienta

Descripción

query_features

Ejecutar consultas CQL en datos vectoriales

update_features

Modificar atributos de características

delete_features

Eliminar funciones según criterios

🛠️ Visualización

Herramienta

Descripción

generate_map

Crear imágenes de mapas con estilo

create_style

Definir nuevos estilos SLD

apply_style

Aplicar estilos existentes a las capas

🛠️ Desarrollo de clientes

Si planea desarrollar su propio cliente para interactuar con el servidor GeoServer MCP, puede inspirarse en el ejemplo de implementación de cliente en examples/client.py . Este ejemplo demuestra:

  • Cómo establecer una conexión con el servidor MCP

  • Cómo enviar solicitudes y gestionar respuestas

  • Manejo básico de errores y gestión de conexiones

  • Ejemplo de uso de diversas herramientas y operaciones

El cliente de ejemplo sirve como un buen punto de partida para comprender el protocolo e implementar sus propias aplicaciones cliente.

Además, aquí está el ejemplo de uso:

Lista de espacios de trabajo

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

Obtener información de la capa

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

Características de consulta

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

Generar mapa

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

🔮 Funciones planificadas

  • [ ] Gestión de cobertura y datos ráster

  • [ ] Seguridad y control de acceso

  • [ ] Capacidades de estilo avanzadas

  • [ ] Operaciones de procesamiento de WPS

  • [ ] Integración de GeoWebCache

🤝 Contribuyendo

¡Agradecemos tus contribuciones! Puedes ayudarnos de la siguiente manera:

  1. Bifurcar el repositorio

  2. Crear una rama de características ( git checkout -b feature/AmazingFeature )

  3. Confirme sus cambios ( git commit -m 'Add some AmazingFeature' )

  4. Empujar a la rama ( git push origin feature/AmazingFeature )

  5. Abrir una solicitud de extracción

Asegúrese de que la descripción de su solicitud de relaciones públicas describa claramente el problema y la solución. Incluya el número de problema correspondiente, si corresponde.

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

🔗 Proyectos relacionados

📞 Soporte

Para obtener ayuda, abra un problema.

🏆 Insignias

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mahdin75/geoserver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server