pypi geoservercloud-mcpstdioBSD-2-Clauseupdated 1mo ago
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.
What can you do with geoservercloud 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
roadstable 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
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"
}
}
}
}
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"
}
}
}
}
# 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/
Install
Add geoservercloud mcp to your client. Pick the one you use.
claude mcp add geoservercloud-mcp -- uvx geoservercloud-mcpcodex mcp add geoservercloud-mcp -- uvx geoservercloud-mcpamp mcp add geoservercloud-mcp -- uvx geoservercloud-mcp{
"mcpServers": {
"geoservercloud-mcp": {
"command": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"geoservercloud-mcp": {
"command": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"geoservercloud-mcp","command":"uvx","args":["geoservercloud-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"geoservercloud-mcp": {
"command": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"geoservercloud-mcp": {
"command": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"geoservercloud-mcp": {
"command": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"geoservercloud-mcp": {
"type": "local",
"command": "uvx",
"args": [
"geoservercloud-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"geoservercloud-mcp": {
"command": {
"path": "uvx",
"args": [
"geoservercloud-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx geoservercloud-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance22/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 41 days ago
- Has a release history
- Repository is not archived
- Licensed BSD-2-Clause
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.0.1.dev29565507996 | Jul 17, 2026 |
| 1.0.1.dev28658291121 | Jul 3, 2026 |
| 1.0.1.dev28604588779 | Jul 2, 2026 |
| 1.0.0Latest | Jul 2, 2026 |
| 0.0.2.dev28591572552 | Jul 2, 2026 |
| 0.0.2.dev28589796843 | Jul 2, 2026 |
| 0.0.2.dev28588438246 | Jul 2, 2026 |
| 0.0.1 | Jul 2, 2026 |
| 0.4.0.dev28534405430 | Jul 1, 2026 |
| 0.3.0 | Jul 1, 2026 |
| 0.3.0.dev28533867167 | Jul 1, 2026 |
| 0.3.0.dev28533628698 | Jul 1, 2026 |
| 0.3.0.dev1 | Jul 1, 2026 |
| 0.3.0.dev5 | Jul 1, 2026 |
| 0.3.0.dev4 | Jul 1, 2026 |
| 0.2.0 | Jul 1, 2026 |
| 0.1.7 | Feb 6, 2026 |
| 0.1.0 | Feb 6, 2026 |