{
  "markdown": "# GISGP MCP Server\n\n[![Glama MCP Server](https://glama.ai/mcp/servers/uponex/gisgp-mcp/badge)](https://glama.ai/mcp/servers/uponex/gisgp-mcp)\n\nFree remote MCP (Model Context Protocol) server for GIS/ArcGIS Online automation.\n\n**Endpoint:** `https://gisgp.com/mcp` (Streamable HTTP, stateless, no auth for public layers)\n\n## Client config\n\n```json\n{ \"mcpServers\": { \"gisgp\": { \"url\": \"https://gisgp.com/mcp\" } } }\n```\n\n## Local/stdio server (open-source subset)\n\n`server.py` is a self-contained, open-source MCP server (stdio transport)\nimplementing the format-conversion and geometry tools that need no external\nservice access — no ArcGIS Online credentials, no network calls. Build and\nrun it with the included `Dockerfile`:\n\n```bash\ndocker build -t gisgp-mcp .\ndocker run -i --rm gisgp-mcp\n```\n\n```json\n{ \"mcpServers\": { \"gisgp-local\": { \"command\": \"docker\", \"args\": [\"run\", \"-i\", \"--rm\", \"gisgp-mcp\"] } } }\n```\n\nThe tools that inspect/query a live ArcGIS Online FeatureServer\n(`count_features`, `extract_domains`, `check_field_types`,\n`check_service_health`, `rest_explore`, `compare_schemas`, `query_features`,\n`query_statistics`) require a real AGOL connection and stay on the hosted\nremote endpoint above — they are not part of this local server.\n\n## Hosted QA tools (hosted endpoint only)\n\nThe hosted server at `https://gisgp.com/mcp` also exposes ArcGIS Online QA tools that\nneed a live AGOL connection and can't run in this local/stdio server:\n\n| Tool | What it does |\n|---|---|\n| `grade_service` | Grade any FeatureServer A–F across 5 categories (schema, completeness, performance, maintenance, configuration) — returns a public shareable scorecard link |\n| `audit_service` | One-call QA report: health + field schema + coded domains + summary counts |\n| `find_layer_issues` | Scan a layer for problems: all-null fields, empty geometries, stale data, missing ObjectID, disabled query |\n| `share_map` | Publish a GeoJSON FeatureCollection as a live shareable web map |\n| `full_service_audit` | Merges grade_service + audit_service + find_layer_issues into a single call |\n| `count_features` / `extract_domains` / `check_field_types` / `check_service_health` / `rest_explore` / `compare_schemas` / `query_features` / `query_statistics` | Inspect/query a live ArcGIS FeatureServer |\n\nAlso hosted-only: `get_terrain_profile`, `get_climate_history`, `classify_land_cover`,\n`analyze_location` — free geo primitives backed by third-party open-data APIs\n(Open-Meteo, ESA CCI Land Cover, OSM Nominatim), kept on the hosted endpoint rather\nthan this offline server since they need outbound internet access to those services.\n\n### Layer 2 — paid tools (hosted endpoint only)\n\n| Tool | What it does |\n|---|---|\n| `estimate_cost` | Free — quote a paid tool's credit cost without executing it |\n| `check_wallet_balance` | Free — check your own MCP credits balance (needs an API key) |\n| `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 |\n| `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 |\n\nThese require live infrastructure (ArcGIS/S3, DynamoDB credits wallet, or third-party\nAPIs) and are not part of the open-source subset below — everything below runs fully\noffline.\n\n## Tools\n\n40 tools in this local/offline server subset (see the hosted-only sections\nabove for the full 92-tool catalog including AGOL QA/query tools and Layer 2\npaid tools).\n\n| Tool | Description |\n|---|---|\n| `convert_coordinates` | Convert coordinate pairs between EPSG coordinate systems |\n| `validate_geojson` | Validate GeoJSON: RFC 7946 structure, topology, WGS84 ranges |\n| `geojson_to_csv` | Convert a GeoJSON FeatureCollection to CSV |\n| `shapefile_to_geojson` | Convert a Shapefile ZIP to GeoJSON |\n| `kml_to_geojson` | Convert KML to GeoJSON |\n| `gpx_to_geojson` | Convert GPX to GeoJSON |\n| `geometry_stats` | Compute area/length/vertex count/centroid/bbox of GeoJSON (equal-area projection) |\n| `reproject_geojson` | Reproject an entire GeoJSON between EPSG coordinate systems |\n| `simplify_geometry` | Simplify GeoJSON geometry (Douglas–Peucker) |\n| `reduce_precision` | Round GeoJSON coordinates to N decimal places (shrinks payload size) |\n| `csv_to_geojson` | Convert CSV with auto-detected coordinate columns to GeoJSON |\n| `geojson_to_kml` | Convert a GeoJSON FeatureCollection to KML |\n| `geojson_to_shapefile` | Convert a GeoJSON FeatureCollection to a Shapefile ZIP |\n| `gpx_to_kml` | Convert GPX to KML |\n| `kml_to_shapefile` | Convert KML to a Shapefile ZIP |\n| `wkt_to_geojson` | Convert a WKT geometry string to GeoJSON (e.g. from PostGIS) |\n| `geojson_to_wkt` | Convert a GeoJSON geometry to a WKT string |\n| `buffer_geojson` | Buffer every feature by a distance in metres, geodesically accurate at any latitude |\n| `dissolve_geojson` | Merge overlapping/adjacent geometries into one, optionally grouped by a property field |\n| `centroids_geojson` | Replace each feature's geometry with its centroid Point |\n| `convex_hull_geojson` | Smallest convex polygon containing all input features combined |\n| `overlay_geojson` | Boolean set operation (intersection/difference/symmetric_difference/union) between two GeoJSON inputs |\n| `spatial_join_geojson` | Attach properties from every matching feature in B to each feature in A |\n| `nearest_features_geojson` | For each feature in A, find the nearest feature in B by geodesic distance |\n| `fix_geometry` | Repair invalid geometries (self-intersections, bad rings) via GEOS make_valid |\n| `geojson_diff` | Added/removed/changed features between two GeoJSON FeatureCollections |\n| `epsg_suggest` | Suggest the correct UTM EPSG code for a lon/lat pair |\n| `tile_math` | Convert lon/lat + zoom to Slippy Map (XYZ) tile x/y, bbox and Bing quadkey |\n| `envelope_geojson` | Bounding-box rectangle (envelope) per feature |\n| `minimum_rotated_rectangle` | Smallest-area rotated rectangle containing all input features combined |\n| `voronoi_geojson` | Voronoi diagram of the input points |\n| `geometry_health_report` | One-call health check: validate + auto-repair + stats + envelope, merged |\n| `dxf_to_geojson` | Convert an AutoCAD DXF file to GeoJSON (POINT/LINE/LWPOLYLINE/POLYLINE/ARC/CIRCLE, layer name kept as a property) |\n| `geojson_to_dxf` | Convert GeoJSON to an AutoCAD DXF file |\n| `list_dxf_layers` | List the distinct layer names used in a DXF drawing |\n| `georeference_dxf` | Reproject a DXF's local/arbitrary drawing coordinates to real-world lon/lat via a 2-point similarity transform |\n| `geojson_to_gpx` | Convert GeoJSON to a GPX file (points -> waypoints, lines/polygon rings -> tracks) |\n| `offset_coordinates` | Move a WGS84 point by a geodesic distance and bearing |\n| `detect_coordinate_order` | Detect whether [x, y] pairs are [lon, lat] or [lat, lon] |\n| `guess_crs_from_coordinates` | Best-guess candidate CRS for raw coordinates with no metadata (e.g. missing .prj) |\n\nCookbook: real task -> tool call examples in [COOKBOOK.md](COOKBOOK.md)\n\nDocs: https://gisgp.com/api · Homepage: https://gisgp.com\n",
  "bytes": 7223,
  "sha": "6182edabfb0f6d8adc80fc6a11148d982e9fbc6fa87d63b80182ce14aff8b117",
  "repo_slug": "uponex/gisgp-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_uponex_gisgp_cbf6e8ce/readme"
}