Skip to main content
Glama

GeoServer MCP Server

MIT License
33
  • Linux
  • Apple

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

📋 Í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

HerramientaDescripción
list_workspacesObtener espacios de trabajo disponibles
create_workspaceCrear un nuevo espacio de trabajo
get_layer_infoObtener metadatos de capa detallados
list_layersEnumerar capas en un espacio de trabajo
create_layerCrear una nueva capa
delete_resourceEliminar recursos

Operaciones de datos

HerramientaDescripción
query_featuresEjecutar consultas CQL en datos vectoriales
update_featuresModificar atributos de características
delete_featuresEliminar funciones según criterios

🛠️ Visualización

HerramientaDescripción
generate_mapCrear imágenes de mapas con estilo
create_styleDefinir nuevos estilos SLD
apply_styleAplicar 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

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.
    Last updated -
    1,641
    136
    TypeScript
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides Google Maps API integration, allowing users to search locations, get place details, geocode addresses, calculate distances, obtain directions, and retrieve elevation data through LLM processing capabilities.
    Last updated -
    7
    983
    63
    TypeScript
    MIT License
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables large language models to interact with Apache Superset databases through REST API, supporting database queries, table lookups, field information retrieval, and SQL execution.
    Last updated -
    4
    4
    TypeScript
  • A
    security
    A
    license
    A
    quality
    A customizable Model Context Protocol server implementation that enables AI models to interact with external tools including weather queries, Google search, and camera control functionality.
    Last updated -
    1
    13
    Python
    Apache 2.0
    • Linux
    • Apple

View all related MCP servers

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