Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

GeoServer MCP

An MCP server that wraps the python-geoservercloud library, exposing 80+ GeoServer operations as natural-language tools for AI assistants like Claude, VS Code Copilot, and other MCP-compatible clients.

Once connected, you can just ask:

  • "List all workspaces in GeoServer"
  • "Create a new workspace called test_data"
  • "Publish the roads table from my PostGIS database"

Quick start (Claude Code)

One command — no manual install, uvx fetches and runs the server for you.

Simplest — no credentials up front:

claude mcp add geoserver -- uvx geoservercloud-mcp

The AI will ask you for the GeoServer URL, username, and password when it first needs them. Great for trying it out or switching between servers.

Or set the connection up front:

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

That's it — start Claude Code and ask it to list your workspaces to confirm it's connected.

Manage it later with claude mcp list, claude mcp get geoserver, or claude mcp remove geoserver. Add --scope user to the add command to make it available in every project instead of just this one.


Other clients

Claude Desktop

Add this to your config file, then restart Claude Desktop:

  • 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"
      }
    }
  }
}
VS Code / Cursor

Add this to .vscode/mcp.json:

{
  "servers": {
    "geoserver": {
      "command": "uvx",
      "args": ["geoservercloud-mcp"],
      "env": {
        "GEOSERVER_URL": "http://localhost:8080/geoserver",
        "GEOSERVER_USER": "admin",
        "GEOSERVER_PASSWORD": "geoserver"
      }
    }
  }
}
Install manually (pip / uvx)
# with pip
pip install geoservercloud-mcp
geoservercloud-mcp

# or run without installing (requires uv: https://docs.astral.sh/uv/)
uvx geoservercloud-mcp

Published to the MCP Registry as io.github.ronitjadhav/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

All three are optional — if you skip them, you can configure the connection at runtime by asking the AI.


Development

Want to run it from source or contribute?

git clone https://github.com/ronitjadhav/geoservercloud-mcp.git
cd geoservercloud-mcp

poetry install                    # set up the environment
poetry run pytest                 # run the tests
poetry run geoservercloud-mcp     # run the server (stdio)

Need a GeoServer to test against? cd docker && docker compose up -d spins up GeoServer + PostGIS + the MCP server.

For the full workflow — adding new tools, linting, releasing, and how publishing works — see the Developer Guide.


Python library

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

from geoservercloud import GeoServerCloud

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

Full library docs: https://camptocamp.github.io/python-geoservercloud/

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.1.dev29565507996.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file geoservercloud_mcp-1.0.1.dev29565507996.tar.gz.

File metadata

File hashes

Hashes for geoservercloud_mcp-1.0.1.dev29565507996.tar.gz
Algorithm Hash digest
SHA256 75b3830b2562f81288b00ee6448268cc13f328ff92781fe8dba0e1a0640f9fb6
MD5 d38dcf171812bd6505f39fb8c532f892
BLAKE2b-256 224de59dc4f760f155be7eff04e30905c9c99e905926d7f18fb060d062410799

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoservercloud_mcp-1.0.1.dev29565507996.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.1.dev29565507996-py3-none-any.whl.

File metadata

File hashes

Hashes for geoservercloud_mcp-1.0.1.dev29565507996-py3-none-any.whl
Algorithm Hash digest
SHA256 f295fe0487e06c664c8c44ee2881311224edf1f2026bea2d530e28ee9d724f11
MD5 3783817c92bc3ad6671c0553e146fadf
BLAKE2b-256 fba5daeb586f9f9f8a7862d7798f9f309efef81b91699ff7a287911fefd22a3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for geoservercloud_mcp-1.0.1.dev29565507996-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