Skip to main content

GeoServer MCP Server

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"

Installation

From PyPI

pip install geoservercloud-mcp

Or use uvx to run without installing (requires uv):

# Install uv first (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Run the MCP server
uvx geoservercloud-mcp

From MCP Registry

This server is published to the MCP Registry as:

io.github.ronitjadhav/geoservercloud-mcp

Connecting to AI Clients

VS Code / Cursor

Add to your MCP configuration (.vscode/mcp.json):

{
  "servers": {
    "geoserver": {
      "command": "uvx",
      "args": ["geoservercloud-mcp"],
      "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": "uvx",
      "args": ["geoservercloud-mcp"],
      "env": {
        "GEOSERVER_URL": "http://localhost:8080/geoserver",
        "GEOSERVER_USER": "admin",
        "GEOSERVER_PASSWORD": "geoserver"
      }
    }
  }
}

Restart Claude Desktop after saving the configuration.

Claude Code

Add the server with the claude mcp add command:

claude mcp add geoserver \
  --env GEOSERVER_URL=http://localhost:8080/geoserver \
  --env GEOSERVER_USER=admin \
  --env GEOSERVER_PASSWORD=geoserver \
  -- uvx geoservercloud-mcp

This adds it at the default local (per-project) scope. Use --scope user to make it available in all your projects, or --scope project to write it to a shared .mcp.json committed in the repo. Omit the --env flags to configure the connection at runtime instead (the AI will ask for the URL and credentials).

Manage it with:

claude mcp list
claude mcp get geoserver
claude mcp remove geoserver

Dynamic Configuration (No Hardcoded Credentials)

You can omit the env section entirely. The AI will ask you for the GeoServer URL, username, and password at runtime:

{
  "mcpServers": {
    "geoserver": {
      "command": "uvx",
      "args": ["geoservercloud-mcp"]
    }
  }
}

Environment Variables

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

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/


Development

For local development, testing, and publishing, see the Developer Guide.

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-1.0.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

geoservercloud_mcp-1.0.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: geoservercloud_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geoservercloud_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5c964aee042a7bde510f605853c2a6228159ba5290d802e052d46115324c427a
MD5 6e8730414cd105f3e42036e6b1e21c12
BLAKE2b-256 f325947d7fb1d95755e30a8d7b6a6383b99f95b2befabe1a6e37bc0bee1f9f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoservercloud_mcp-1.0.0.tar.gz:

Publisher: publish.yaml on ronitjadhav/geoservercloud-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for geoservercloud_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99bd29ab6ea542292436f076331e9f3ed65c7546875f82606de5e71140ea0202
MD5 6a3e3d577dcb324f3503002c0072facd
BLAKE2b-256 f3b556590f64fac19f48353df9d975d339d41525773e105a32f3e1e1acefd631

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoservercloud_mcp-1.0.0-py3-none-any.whl:

Publisher: publish.yaml on ronitjadhav/geoservercloud-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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