# GISGP GIS Tools [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/uponex/gisgp-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gisgp-gis-tools

## Description
GIS tools for AI agents: EPSG conversion, GeoJSON validate/CSV, ArcGIS FeatureServer inspection.

## Tools
Capabilities this server exposes over MCP:

- **convert_coordinates** — Convert coordinate pairs between EPSG coordinate systems
- **validate_geojson** — Validate GeoJSON: RFC 7946 structure, topology, WGS84 ranges
- **geojson_to_csv** — Convert a GeoJSON FeatureCollection to CSV
- **shapefile_to_geojson** — Convert a Shapefile ZIP to GeoJSON
- **kml_to_geojson** — Convert KML to GeoJSON
- **gpx_to_geojson** — Convert GPX to GeoJSON
- **geometry_stats** — Compute area/length/vertex count/centroid/bbox of GeoJSON (equal-area projection)
- **reproject_geojson** — Reproject an entire GeoJSON between EPSG coordinate systems
- **simplify_geometry** — Simplify GeoJSON geometry (Douglas–Peucker)
- **reduce_precision** — Round GeoJSON coordinates to N decimal places (shrinks payload size)
- **csv_to_geojson** — Convert CSV with auto-detected coordinate columns to GeoJSON
- **geojson_to_kml** — Convert a GeoJSON FeatureCollection to KML
- **geojson_to_shapefile** — Convert a GeoJSON FeatureCollection to a Shapefile ZIP
- **gpx_to_kml** — Convert GPX to KML
- **kml_to_shapefile** — Convert KML to a Shapefile ZIP
- **wkt_to_geojson** — Convert a WKT geometry string to GeoJSON (e.g. from PostGIS)
- **geojson_to_wkt** — Convert a GeoJSON geometry to a WKT string
- **buffer_geojson** — Buffer every feature by a distance in metres, geodesically accurate at any latitude
- **dissolve_geojson** — Merge overlapping/adjacent geometries into one, optionally grouped by a property field
- **centroids_geojson** — Replace each feature's geometry with its centroid Point
- **convex_hull_geojson** — Smallest convex polygon containing all input features combined
- **overlay_geojson** — Boolean set operation (intersection/difference/symmetric_difference/union) between two GeoJSON inputs
- **spatial_join_geojson** — Attach properties from every matching feature in B to each feature in A
- **nearest_features_geojson** — For each feature in A, find the nearest feature in B by geodesic distance
- **fix_geometry** — Repair invalid geometries (self-intersections, bad rings) via GEOS make_valid
- **geojson_diff** — Added/removed/changed features between two GeoJSON FeatureCollections
- **epsg_suggest** — Suggest the correct UTM EPSG code for a lon/lat pair
- **tile_math** — Convert lon/lat + zoom to Slippy Map (XYZ) tile x/y, bbox and Bing quadkey
- **envelope_geojson** — Bounding-box rectangle (envelope) per feature
- **minimum_rotated_rectangle** — Smallest-area rotated rectangle containing all input features combined
- **voronoi_geojson** — Voronoi diagram of the input points
- **geometry_health_report** — One-call health check: validate + auto-repair + stats + envelope, merged
- **dxf_to_geojson** — Convert an AutoCAD DXF file to GeoJSON (POINT/LINE/LWPOLYLINE/POLYLINE/ARC/CIRCLE, layer name kept as a property)
- **geojson_to_dxf** — Convert GeoJSON to an AutoCAD DXF file
- **list_dxf_layers** — List the distinct layer names used in a DXF drawing
- **georeference_dxf** — Reproject a DXF's local/arbitrary drawing coordinates to real-world lon/lat via a 2-point similarity transform
- **geojson_to_gpx** — Convert GeoJSON to a GPX file (points -> waypoints, lines/polygon rings -> tracks)
- **offset_coordinates** — Move a WGS84 point by a geodesic distance and bearing
- **detect_coordinate_order** — Detect whether [x, y] pairs are [lon, lat] or [lat, lon]
- **guess_crs_from_coordinates** — Best-guess candidate CRS for raw coordinates with no metadata (e.g. missing .prj)

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "gisgp-gis-tools": {
    "command": "npx",
    "args": ["-y","gisgp-gis-tools"]
  }
}
```

## Documentation & README

# GISGP MCP Server

[![Glama MCP Server](https://glama.ai/mcp/servers/uponex/gisgp-mcp/badge)](https://glama.ai/mcp/servers/uponex/gisgp-mcp)

Free remote MCP (Model Context Protocol) server for GIS/ArcGIS Online automation.

**Endpoint:** `https://gisgp.com/mcp` (Streamable HTTP, stateless, no auth for public layers)

## Client config

```json
{ "mcpServers": { "gisgp": { "url": "https://gisgp.com/mcp" } } }
```

## Local/stdio server (open-source subset)

`server.py` is a self-contained, open-source MCP server (stdio transport)
implementing the format-conversion and geometry tools that need no external
service access — no ArcGIS Online credentials, no network calls. Build and
run it with the included `Dockerfile`:

```bash
docker build -t gisgp-mcp .
docker run -i --rm gisgp-mcp
```

```json
{ "mcpServers": { "gisgp-local": { "command": "docker", "args": ["run", "-i", "--rm", "gisgp-mcp"] } } }
```

The tools that inspect/query a live ArcGIS Online FeatureServer
(`count_features`, `extract_domains`, `check_field_types`,
`check_service_health`, `rest_explore`, `compare_schemas`, `query_features`,
`query_statistics`) require a real AGOL connection and stay on the hosted
remote endpoint above — they are not part of this local server.

## Hosted QA tools (hosted endpoint only)

The hosted server at `https://gisgp.com/mcp` also exposes ArcGIS Online QA tools that
need a live AGOL connection and can't run in this local/stdio server:

| Tool | What it does |
|---|---|
| `grade_service` | Grade any FeatureServer A–F across 5 categories (schema, completeness, performance, maintenance, configuration) — returns a public shareable scorecard link |
| `audit_service` | One-call QA report: health + field schema + coded domains + summary counts |
| `find_layer_issues` | Scan a layer for problems: all-null fields, empty geometries, stale data, missing ObjectID, disabled query |
| `share_map` | Publish a GeoJSON FeatureCollection as a live shareable web map |
| `full_service_audit` | Merges grade_service + audit_service + find_layer_issues into a single call |
| `count_features` / `extract_domains` / `check_field_types` / `check_service_health` / `rest_explore` / `compare_schemas` / `query_features` / `query_statistics` | Inspect/query a live ArcGIS FeatureServer |

Also hosted-only: `get_terrain_profile`, `get_climate_history`, `classify_land_cover`,
`analyze_location` — free geo primitives backed by third-party open-data APIs
(Open-Meteo, ESA CCI Land Cover, OSM Nominatim), kept on the hosted endpoint rather
than this offline server since they need outbound internet access to those services.

### Layer 2 — paid tools (hosted endpoint only)

| Tool | What it does |
|---|---|
| `estimate_cost` | Free — quote a paid tool's credit cost without executing it |
| `check_wallet_balance` | Free — check your own MCP credits balance (needs an API key) |
| `assess_property_hazard` | Paid, 200 credits (€0.20) — multi-source US property hazard: USGS seismic risk + FEMA 10-year disaster history + NOAA active weather alerts, charged via credits wallet |
| `assess_property_hazard_x402` | Paid, ~$0.20 via the x402 protocol — same multi-source hazard data, paid directly in USDC on-chain (Base), no GISGP account needed |

These require live infrastructure (ArcGIS/S3, DynamoDB credits wallet, or third-party
APIs) and are not part of the open-source subset below — everything below runs fully
offline.

## Tools

40 tools in this local/offline server subset (see the hosted-only sections
above for the full 92-tool catalog including AGOL QA/query tools and Layer 2
paid tools).

| Tool | Description |
|---|---|
| `convert_coordinates` | Convert coordinate pairs between EPSG coordinate systems |
| `validate_geojson` | Validate GeoJSON: RFC 7946 structure, topology, WGS84 ranges |
| `geojson_to_csv` | Convert a GeoJSON FeatureCollection to CSV |
| `shapefile_to_geojson` | Convert a Shapefile ZIP to GeoJSON |
| `kml_to_geojson` | Convert KML to GeoJSON |
| `gpx_to_geojson` | Convert GPX to GeoJSON |
| `geometry_stats` | Compute area/length/vertex count/centroid/bbox of GeoJSON (equal-area projection) |
| `reproject_geojson` | Reproject an entire GeoJSON between EPSG coordinate systems |
| `simplify_geometry` | Simplify GeoJSON geometry (Douglas–Peucker) |
| `reduce_precision` | Round GeoJSON coordinates to N decimal places (shrinks payload size) |
| `csv_to_geojson` | Convert CSV with auto-detected coordinate columns to GeoJSON |
| `geojson_to_kml` | Convert a GeoJSON FeatureCollection to KML |
| `geojson_to_shapefile` | Convert a GeoJSON FeatureCollection to a Shapefile ZIP |
| `gpx_to_kml` | Convert GPX to KML |
| `kml_to_shapefile` | Convert KML to a Shapefile ZIP |
| `wkt_to_geojson` | Convert a WKT geometry string to GeoJSON (e.g. from PostGIS) |
| `geojson_to_wkt` | Convert a GeoJSON geometry to a WKT string |
| `buffer_geojson` | Buffer every feature by a distance in metres, geodesically accurate at any latitude |
| `dissolve_geojson` | Merge overlapping/adjacent geometries into one, optionally grouped by a property field |
| `centroids_geojson` | Replace each feature's geometry with its centroid Point |
| `convex_hull_geojson` | Smallest convex polygon containing all input features combined |
| `overlay_geojson` | Boolean set operation (intersection/difference/symmetric_difference/union) between two GeoJSON inputs |
| `spatial_join_geojson` | Attach properties from every matching feature in B to each feature in A |
| `nearest_features_geojson` | For each feature in A, find the nearest feature in B by geodesic distance |
| `fix_geometry` | Repair invalid geometries (self-intersections, bad rings) via GEOS make_valid |
| `geojson_diff` | Added/removed/changed features between two GeoJSON FeatureCollections |
| `epsg_suggest` | Suggest the correct UTM EPSG code for a lon/lat pair |
| `tile_math` | Convert lon/lat + zoom to Slippy Map (XYZ) tile x/y, bbox and Bing quadkey |
| `envelope_geojson` | Bounding-box rectangle (envelope) per feature |
| `minimum_rotated_rectangle` | Smallest-area rotated rectangle containing all input features combined |
| `voronoi_geojson` | Voronoi diagram of the input points |
| `geometry_health_report` | One-call health check: validate + auto-repair + stats + envelope, merged |
| `dxf_to_geojson` | Convert an AutoCAD DXF file to GeoJSON (POINT/LINE/LWPOLYLINE/POLYLINE/ARC/CIRCLE, layer name kept as a property) |
| `geojson_to_dxf` | Convert GeoJSON to an AutoCAD DXF file |
| `list_dxf_layers` | List the distinct layer names used in a DXF drawing |
| `georeference_dxf` | Reproject a DXF's local/arbitrary drawing coordinates to real-world lon/lat via a 2-point similarity transform |
| `geojson_to_gpx` | Convert GeoJSON to a GPX file (points -> waypoints, lines/polygon rings -> tracks) |
| `offset_coordinates` | Move a WGS84 point by a geodesic distance and bearing |
| `detect_coordinate_order` | Detect whether [x, y] pairs are [lon, lat] or [lat, lon] |
| `guess_crs_from_coordinates` | Best-guess candidate CRS for raw coordinates with no metadata (e.g. missing .prj) |

Cookbook: real task -> tool call examples in [COOKBOOK.md](https://github.com/uponex/gisgp-mcp/blob/HEAD/COOKBOOK.md)

Docs: https://gisgp.com/api · Homepage: https://gisgp.com

