Geospatial MCP Servers
This skill wraps a curated, version-controlled catalog of MCP servers for
geospatial work. servers.yaml is the source of truth; README.md is
generated from it.
Locate the catalog
The skill is installed at ~/.claude/skills/geo-mcp-servers, a symlink into
the cloned repo's skill/ directory. Resolve the repo root from it — do not
assume any absolute path:
REPO="$(cd "$(dirname "$(readlink ~/.claude/skills/geo-mcp-servers)")" && pwd -P)"
echo "$REPO" # repo root — parent of the skill dir
If readlink returns nothing (the skill was copied rather than symlinked), ask
the user where they cloned geo-mcp-servers, or search for it, e.g.
find ~ -name servers.yaml -path '*geo-mcp-servers*' 2>/dev/null. Use the
resolved $REPO in every command below.
Find / recommend a server
Read the catalog data:
REPO="$(cd "$(dirname "$(readlink ~/.claude/skills/geo-mcp-servers)")" && pwd -P)" cat "$REPO/servers.yaml"Match the user's need to a
categoryand to entrytags/description. Categories include: geocoding, routing, mapping, database (PostGIS/DuckDB), remote_sensing (STAC/EO), weather, desktop_gis (QGIS/ArcGIS), toolkit, data_access, other.Recommend the closest 1–3 servers with their URLs and a one-line why. If nothing fits, say so plainly rather than inventing a server.
Add a newly discovered server
When the user points you at a new geospatial MCP server (a URL, a name, "track this one"):
Confirm it's real and geospatial — fetch/inspect the source URL if needed.
Check it isn't already in
servers.yaml(match on url and name).Append an entry under
servers:in$REPO/servers.yaml:- name: <Name> url: <canonical source URL, prefer GitHub repo> description: <one line> category: <one of the keys in the categories map> author: <person/org> language: <Python|TypeScript|...> official: <true only for vendor-published> tags: [<keywords>] added: <YYYY-MM-DD>Regenerate the README (the repo ships a
.venvwith PyYAML):REPO="$(cd "$(dirname "$(readlink ~/.claude/skills/geo-mcp-servers)")" && pwd -P)" "$REPO/.venv/bin/python" "$REPO/scripts/generate_readme.py"If
$REPO/.venvis missing (fresh clone), create it once:python3 -m venv "$REPO/.venv" && "$REPO/.venv/bin/pip" install -r "$REPO/requirements.txt".Report what you added, and offer to commit
servers.yaml+README.mdtogether (don't push without asking).
Notes
- Never edit the tables in
README.mdby hand — the generator overwrites them. - Only add
official: truewhen the vendor/owner of the underlying service publishes the server. - Prefer one canonical URL per server (the GitHub repo).