Skip to main content
Glama

GeoServer MCP Server

MIT License
18
  • 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

  • A
    security
    A
    license
    A
    quality
    A 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 -
    3
    16
    Python
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A 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 -
    9
    Python
    MIT License
  • -
    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 -
    378
    96
    TypeScript
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A 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 -
    55
    TypeScript
    MIT License

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