Skip to main content

MCP (Model Context Protocol) server for GeoServer - enables AI assistants to manage GeoServer workspaces, datastores, layers, and styles through natural language

Project description

GeoServer MCP Server

mcp-name: io.github.ronitjadhav/geoserver

A Model Context Protocol (MCP) server that exposes GeoServer REST API functionality for natural language interaction through AI assistants like Claude, VS Code Copilot, and other MCP-compatible clients.

About

This MCP server wraps the python-geoservercloud library, exposing 80+ GeoServer operations as MCP tools. This enables AI assistants to manage GeoServer workspaces, datastores, layers, styles, and more through natural language commands.

Example Interactions

Once connected, you can ask your AI assistant things like:

  • "List all workspaces in GeoServer"
  • "Create a new workspace called 'test_data'"
  • "What layers are available in the 'topp' workspace?"
  • "Create a PostGIS datastore connection"

Quick Start

Option 1: Full Local Development Stack

Start the MCP server with a local GeoServer and PostGIS:

cd mcp
docker compose up -d

This starts:

  • geoservercloud-mcp: The MCP server on port 8000
  • geoserver: GeoServer instance on port 8080
  • postgis: PostGIS database on port 5433

Option 2: MCP Server Only (Connect to External GeoServer)

If you have an existing GeoServer:

cd mcp
GEOSERVER_URL=http://your-geoserver:8080/geoserver \
GEOSERVER_USER=admin \
GEOSERVER_PASSWORD=your-password \
docker compose up -d geoservercloud-mcp

Connecting to AI Clients

VS Code / Cursor

  1. Open Command Palette → "MCP: Add Server"
  2. Select "Command (stdio)"
  3. Enter command: poetry run geoservercloud-mcp
  4. Enter server ID: geoserver

VS Code will create an MCP configuration file. Update it with the working directory and environment variables:

{
  "servers": {
    "geoserver": {
      "type": "stdio",
      "command": "poetry",
      "args": ["run", "geoservercloud-mcp"],
      "cwd": "/path/to/python-geoservercloud",
      "env": {
        "GEOSERVER_URL": "http://localhost:8080/geoserver",
        "GEOSERVER_USER": "admin",
        "GEOSERVER_PASSWORD": "geoserver"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "geoserver": {
      "command": "poetry",
      "args": ["run", "geoservercloud-mcp"],
      "cwd": "/path/to/python-geoservercloud",
      "env": {
        "GEOSERVER_URL": "http://localhost:8080/geoserver",
        "GEOSERVER_USER": "admin",
        "GEOSERVER_PASSWORD": "geoserver"
      }
    }
  }
}

Restart Claude Desktop after saving the configuration.


Testing with FastMCP Inspector

The MCP server includes a built-in inspector UI for debugging:

# From project root
poetry install
poetry run fastmcp dev geoservercloud/mcp/server.py

Open http://127.0.0.1:6274 in your browser to test individual tools.


Environment Variables

Variable Default Description
GEOSERVER_URL http://localhost:8080/geoserver GeoServer base URL
GEOSERVER_USER admin GeoServer username
GEOSERVER_PASSWORD geoserver GeoServer password

Docker Commands

# Start all services
cd mcp
docker compose up -d

# Stop services
docker compose down

# Stop and remove volumes (data)
docker compose down -v

# View logs
docker compose logs -f geoservercloud-mcp

Python Library

This MCP server is built on the python-geoservercloud library. For programmatic access without MCP, see the library documentation.

from geoservercloud import GeoServerCloud

geoserver = GeoServerCloud(
    url="http://localhost:8080/geoserver",
    user="admin",
    password="geoserver",
)
geoserver.create_workspace("my_workspace")

Full documentation: https://camptocamp.github.io/python-geoservercloud/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geoservercloud_mcp-0.1.3.tar.gz (16.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geoservercloud_mcp-0.1.3-py3-none-any.whl (16.2 MB view details)

Uploaded Python 3

File details

Details for the file geoservercloud_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: geoservercloud_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 16.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.10 Linux/6.14.0-37-generic

File hashes

Hashes for geoservercloud_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 aceed16a92256b2e2e8a8d5572e528f3a8991ae712e0a94cf26672d366185c64
MD5 33dcbdfa5cf462c78d9cc779bd55031b
BLAKE2b-256 474d257effa6b5e683110fdb885c3f26dec2989613ab4bab8d502e5cf88b3363

See more details on using hashes here.

File details

Details for the file geoservercloud_mcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: geoservercloud_mcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 16.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.10 Linux/6.14.0-37-generic

File hashes

Hashes for geoservercloud_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8027ba3822a931367cf71d2e765072ada3471cd31a76ce10771ba04e8927a3fd
MD5 9e2cf68037e8b38f1570f24e150eb70b
BLAKE2b-256 9c5b796a2dcf13d184e29a85377faaa0cd36e40adcb1c7c9ea61b7283e36ebad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page