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