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.dev28658291121.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.dev28658291121.tar.gz.

File metadata

File hashes

Hashes for geoservercloud_mcp-1.0.1.dev28658291121.tar.gz
Algorithm Hash digest
SHA256 0de60c1b3b446c43dd5025a6870067593986f1d9ba02571faf2beba84fce9ecd
MD5 8af315b8220a88ca2c37b10c581afd5f
BLAKE2b-256 cbaea6493d092975b8bf6ff3773a1f4187037299fd8b9f3f06a64d3713c66c1b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for geoservercloud_mcp-1.0.1.dev28658291121-py3-none-any.whl
Algorithm Hash digest
SHA256 ce8bcf9161dfe7e5294d0f38cc7679e6b31cb7a446e08e0b02047e59f63f5272
MD5 0a5d99640d20d2fc5b85664c0cc9932e
BLAKE2b-256 e8ed1a2632d178d43b825c98527ccebd548b3386dc4bbd08b47fafe2bf008b40

See more details on using hashes here.

Provenance

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