GISGP MCP

Hosted ArcGIS Online QA/audit MCP: schema grading, geometry, hazard & format-conversion tools

Documentation

GISGP MCP Server

Glama MCP Server

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

{ "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:

docker build -t gisgp-mcp .
docker run -i --rm gisgp-mcp
{ "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:

ToolWhat it does
grade_serviceGrade any FeatureServer A–F across 5 categories (schema, completeness, performance, maintenance, configuration) — returns a public shareable scorecard link
audit_serviceOne-call QA report: health + field schema + coded domains + summary counts
find_layer_issuesScan a layer for problems: all-null fields, empty geometries, stale data, missing ObjectID, disabled query
share_mapPublish a GeoJSON FeatureCollection as a live shareable web map
full_service_auditMerges 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_statisticsInspect/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)

ToolWhat it does
estimate_costFree — quote a paid tool's credit cost without executing it
check_wallet_balanceFree — check your own MCP credits balance (needs an API key)
assess_property_hazardPaid, 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_x402Paid, ~$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 (32)

ToolDescription
convert_coordinatesConvert coordinate pairs between EPSG coordinate systems
validate_geojsonValidate GeoJSON: RFC 7946 structure, topology, WGS84 ranges
geojson_to_csvConvert a GeoJSON FeatureCollection to CSV
shapefile_to_geojsonConvert a Shapefile ZIP to GeoJSON
kml_to_geojsonConvert KML to GeoJSON
gpx_to_geojsonConvert GPX to GeoJSON
geometry_statsCompute area/length/vertex count/centroid/bbox of GeoJSON (equal-area projection)
reproject_geojsonReproject an entire GeoJSON between EPSG coordinate systems
simplify_geometrySimplify GeoJSON geometry (Douglas–Peucker)
reduce_precisionRound GeoJSON coordinates to N decimal places (shrinks payload size)
csv_to_geojsonConvert CSV with auto-detected coordinate columns to GeoJSON
geojson_to_kmlConvert a GeoJSON FeatureCollection to KML
geojson_to_shapefileConvert a GeoJSON FeatureCollection to a Shapefile ZIP
gpx_to_kmlConvert GPX to KML
kml_to_shapefileConvert KML to a Shapefile ZIP
wkt_to_geojsonConvert a WKT geometry string to GeoJSON (e.g. from PostGIS)
geojson_to_wktConvert a GeoJSON geometry to a WKT string
buffer_geojsonBuffer every feature by a distance in metres, geodesically accurate at any latitude
dissolve_geojsonMerge overlapping/adjacent geometries into one, optionally grouped by a property field
centroids_geojsonReplace each feature's geometry with its centroid Point
convex_hull_geojsonSmallest convex polygon containing all input features combined
overlay_geojsonBoolean set operation (intersection/difference/symmetric_difference/union) between two GeoJSON inputs
spatial_join_geojsonAttach properties from every matching feature in B to each feature in A
nearest_features_geojsonFor each feature in A, find the nearest feature in B by geodesic distance
fix_geometryRepair invalid geometries (self-intersections, bad rings) via GEOS make_valid
geojson_diffAdded/removed/changed features between two GeoJSON FeatureCollections
epsg_suggestSuggest the correct UTM EPSG code for a lon/lat pair
tile_mathConvert lon/lat + zoom to Slippy Map (XYZ) tile x/y, bbox and Bing quadkey
envelope_geojsonBounding-box rectangle (envelope) per feature
minimum_rotated_rectangleSmallest-area rotated rectangle containing all input features combined
voronoi_geojsonVoronoi diagram of the input points
geometry_health_reportOne-call health check: validate + auto-repair + stats + envelope, merged

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