Gisgp
io.github.uponex/gisgpGIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
Tools · 92
Convert coordinate pairs between EPSG coordinate systems (max 1000 points). points: [[x, y], ...] in from_epsg axis order (lon/lat for EPSG:4326). Returns JSON: {"points": [[x, y], ...], "fro…
Check whether a GeoJSON file/string is valid — catches broken geometry, malformed structure, self-intersections, and out-of-range coordinates before you try to use the file elsewhere (e.g. "is…
Convert GeoJSON to CSV/spreadsheet — one row per feature, properties as columns, geometry flattened into a column (e.g. "turn this GeoJSON into Excel/CSV", "I need a spreadsheet from these map…
Count features in an ArcGIS FeatureServer layer, optionally filtered by a WHERE clause. service_url: full layer URL ending in /FeatureServer/<n>. token: only for private layers. Returns JSON:…
Extract coded value domains from an ArcGIS FeatureServer layer. Returns JSON: {"layer_name": ..., "domains": {field: {name, field_alias, codes}}}.
Inspect the field schema of an ArcGIS FeatureServer layer. Returns JSON: {layer_name, geometry_type, fields:[{name, alias, type, length, nullable, has_domain}]} — useful before importing/mapp…
Check whether an ArcGIS FeatureServer layer is reachable and responsive. Returns JSON: {ok, ms (latency), name, geometry_type, field_count, record_count, capabilities, max_record_count}.
List the layers and tables of an ArcGIS FeatureServer/MapServer root. Point at a service root to enumerate its layers/tables, or at a single layer URL to describe it. Returns JSON: {is_server…
Compare the field schemas of two ArcGIS FeatureServer layers. Returns JSON diff: {added, removed, changed:[{field, diffs}], same, geometry_match, identical} — useful for QA before an import o…
Convert a Shapefile ZIP (base64-encoded .zip with .shp/.dbf/.shx[/.prj]) to a GeoJSON FeatureCollection. Reprojects to WGS84 if a .prj says otherwise. Returns JSON: {geojson: {...}, reproject…
Convert Google Earth / Google My Maps KML (2.0–2.2) to GeoJSON — the common request when someone exported a map from Google Earth or Google My Maps and needs it in a format other GIS tools/API…
Convert a GPS track/route file (GPX — from Garmin, Strava exports, hiking/cycling apps, waypoints) to GeoJSON (e.g. "convert my GPS track to GeoJSON", "GPX to GeoJSON", "import my Strava route…
Convert GeoJSON to a GPX file — e.g. "export this as a GPS track", "GeoJSON to GPX for my Garmin", "make waypoints from this GeoJSON". Points become GPX waypoints; lines and polygon rings beco…
Fetch actual feature records (attributes + geometry) from a FeatureServer layer. Free preview capped at 50 records (WHERE filter + chosen fields). Returns JSON: {returned, total, truncated, g…
Server-side aggregate stats on a numeric field of a FeatureServer layer. No records fetched — AGOL computes sum/avg/min/max/count (also stddev/var). Optional WHERE filter and group_by field. …
Compute area (m²/km²), length (m/km), vertex count, centroid and bbox of GeoJSON. Metric measurements use an equal-area projection so area/length are real metres.
Change a GeoJSON's coordinate reference system (CRS/projection) — e.g. "reproject to Web Mercator", "convert WGS84 to UTM", "my coordinates are in the wrong CRS", "EPSG:4326 to EPSG:3857". Rep…
Reduce the number of vertices in GeoJSON geometry (Douglas-Peucker algorithm) — e.g. "simplify this polygon", "this shape has too many points", "reduce vertex count for faster rendering". Tole…
Round every coordinate to N decimal places to shrink a GeoJSON file's size — e.g. "my GeoJSON file is too big", "reduce coordinate precision", "strip excess decimal places". 6 decimals ≈ 11cm …
Convert a CSV/spreadsheet with lat/lon (or X/Y) columns to GeoJSON — auto-detects the coordinate columns (e.g. "map this spreadsheet", "CSV with lat/lon to GeoJSON", "turn my Excel export into…
Convert GeoJSON to KML for Google Earth / Google My Maps (e.g. "open this in Google Earth", "GeoJSON to KML", "make this viewable in Google My Maps"). Returns the KML as plain text.
Convert GeoJSON to an Esri Shapefile ZIP — the format ArcGIS Desktop Pro/QGIS/most legacy GIS software still expects (e.g. "I need a shapefile for ArcGIS Pro", "GeoJSON to SHP", "convert for Q…
Convert a GPS track file (GPX) directly to KML for Google Earth — e.g. "open my Garmin/Strava track in Google Earth", "GPX to KML".
Convert a Google Earth/My Maps KML file directly to an Esri Shapefile ZIP — e.g. "Google Earth file to shapefile for ArcGIS", "KML to SHP". Returns JSON: {shapefile_zip_base64, warnings}.
Convert a WKT (Well-Known Text) geometry string — the format PostGIS/SQL geometry columns print by default — to GeoJSON (e.g. "this came from a PostGIS query", "WKT to GeoJSON", "parse this PO…
Convert a GeoJSON geometry (or a Feature's geometry) to WKT — the format needed to insert geometry into PostGIS/SQL (e.g. "I need this for a PostGIS INSERT", "GeoJSON to WKT", "geometry as WKT…
Convert an AutoCAD DXF file's contents to GeoJSON — e.g. "convert this DXF to GeoJSON", "AutoCAD drawing to GIS format", "DXF export from Civil 3D to GeoJSON", "extract only the UTILITIES laye…
Convert GeoJSON to an AutoCAD DXF file — e.g. "export this GeoJSON to DXF for AutoCAD", "GIS data to CAD format", "convert to .dxf for Civil 3D". Points become DXF POINT entities; lines and po…
List the distinct DXF layer names used in a drawing — e.g. "what layers does this DXF have", "list layers before I extract one". Real CAD exports organize entities into named layers (BOUNDARY,…
Reproject a DXF drawn in a local/arbitrary CAD coordinate system into real-world coordinates — e.g. "this DXF isn't in real coordinates, fix it", "georeference this site plan", "I know 2 point…
PAID (150 credits) — render a DXF drawing to a one-page PDF site-plan report (vector plot + entity-type breakdown + layer list, base64- encoded PDF) — e.g. "make a PDF of this site plan", "DXF…
Grade an ArcGIS FeatureServer layer A–F across 5 categories (schema quality, data completeness, performance, maintenance, configuration). Returns JSON: {grade, score, categories:[{key, label,…
Full one-call QA report of an ArcGIS FeatureServer layer: health (latency, record count, capabilities) + field schema + coded domains + summary counts. One call replaces separate health/field…
Scan an ArcGIS FeatureServer layer for common problems: missing ObjectID, disabled query, stale data, all-null fields, features without geometry. Sample-based (first 200 records). Returns JSO…
Publish a GeoJSON FeatureCollection as a live, shareable map page on gisgp.com. Returns JSON: {url, expires_at} — url is a public interactive map a human can open in a browser (free links liv…
Ready-to-paste <iframe> embed code for a live interactive map — thin wrapper around share_map (same live page, same 30-day TTL), for embedding directly in a website/dashboard rather than shari…
Buffer every feature by a distance in METRES (negative shrinks). Geodesically accurate at any latitude (each feature is buffered in a local equidistant projection). Returns JSON {ok, distance…
Merge overlapping/adjacent geometries into one (optionally grouped by a property field `by` → one dissolved feature per distinct value). Returns JSON {ok, by, group_count, geojson}.
Get the center point of each polygon/line feature — e.g. "find the center of each parcel", "convert polygons to points for labeling", "centroid of each feature". Properties are kept. Retu…
Draw the smallest polygon that wraps around all input features (a convex hull) — e.g. "draw a boundary around these points", "find the outer perimeter of my data", "convex hull of these locati…
Combine two GeoJSON FeatureCollections with a boolean set operation. op: intersection | difference (a minus b) | symmetric_difference | union. Each side is unioned into one geometry first, th…
Attach properties from every B feature that satisfies a spatial predicate to each A feature (as a `_matches` list). predicate: intersects | within | contains | touches | crosses | overlaps. …
For each feature in A, find the nearest feature in B by centroid-to- centroid geodesic distance. Attaches `_nearest` properties and `_nearest_distance_m`. Returns JSON {ok, geojson}.
Repair invalid geometries (self-intersections, bad rings) via GEOS make_valid. Already-valid geometries are left untouched. Returns JSON {ok, fixed_count, feature_count, geojson}.
Compare two GeoJSON FeatureCollections — added/removed/changed features. Matched by an `id_field` property if given, else by array position (exact structural comparison, not topological equal…
Suggest the correct UTM EPSG code to project a WGS84 lon/lat into for accurate metric measurements (buffer/area/distance). Returns JSON {ok, epsg, utm_zone, hemisphere, name, warning}.
Convert a WGS84 lon/lat + zoom level to Slippy Map (XYZ) tile x/y, that tile's lon/lat bbox, and its Bing quadkey. Returns JSON {ok, zoom, x, y, tile_bbox, quadkey}.
Get the bounding box (min/max rectangle) around each feature — e.g. "get the bounding box of this shape", "bbox for each feature", "rectangular extent of my geometry". Properties are kept. …
Smallest-area rectangle wrapping all input features combined — can be tilted to fit tighter than a straight bounding box (e.g. "tightest rectangle around this data", "minimum bounding rectangl…
Divide space into regions closest to each input point (Voronoi diagram) — e.g. "find the service area for each location", "which points are closest to which store", "Voronoi/Thiessen polygons"…
Complete one-call QA report: A-F grade + full audit (health/fields/ domains/summary) + issue scan, merged into one response — replaces 3 separate calls (grade_service + audit_service + find_la…
Complete one-call GeoJSON health check: validate + auto-repair invalid geometry + stats (area/length/vertices) + bbox envelope, merged — replaces 4 separate calls (validate_geojson + fix_geome…
Get the ground elevation (metres above sea level) at a coordinate — e.g. "what's the elevation here", "is this point in a flood-risk lowland", "elevation at this address". Via Open-Meteo (Cope…
Daily historical weather for a point/date range via Open-Meteo's ERA5-based archive (no key, free, data back to 1940). Dates are YYYY-MM-DD. Returns JSON: {ok, daily: {time, <variables>...}, s…
Land cover class at a WGS84 point via ESA CCI Land Cover 2018 (ArcGIS Living Atlas ImageServer, no key, 300m resolution). Returns JSON: {ok, class_code, class_label, source}. NOTE 2026-07…
Reverse-geocode a WGS84 point to country/region/locality via OSM Nominatim (no key, free — fair-use rate limited, best-effort). Returns JSON: {ok, display_name, country, country_code, region, …
Forward-geocode a free-text address to lon/lat. Default: OSM Nominatim (no key, free, fair-use rate limited) — the complement to analyze_location's reverse geocode. Optional agol_token: route …
Move a WGS84 point by a geodesic distance (metres) along a compass bearing (0=N, 90=E, 180=S, 270=W). Pure computation, no external API. Returns JSON: {ok, lon, lat, origin_lon, origin_lat, di…
Detect whether [x, y] pairs are [lon, lat] or [lat, lon] — resolves a genuinely common real-world confusion (one of the most-viewed GIS StackExchange questions ever, 550k+ views). Certain when…
Best-guess candidate CRS for raw [x, y] coordinates with no metadata (e.g. a shapefile with a missing .prj) — real demand signal (79k+ views on GIS StackExchange). Genuinely ambiguous by natur…
Render a GeoJSON FeatureCollection/Feature to a static PNG map image (base64 data URL) — for embedding in reports/emails/documents, unlike share_map's interactive live page. basemap: 'topo', '…
Electric grid infrastructure proximity at a US point: nearby substations + transmission lines within 10 miles (community ArcGIS mirror of HIFLD data — proximity indicator, not a certified surv…
One-call solar/wind site-scouting indicator: terrain + land cover + 1-year solar/wind climate averages + grid proximity, combined from GISGP's existing free primitives (no new external source)…
Natural gas interstate/intrastate transmission pipeline proximity at a US point (EIA/HIFLD, 32,892 segments). Substitute for proprietary local-utility "call before you dig" data — covers major…
US protected/conservation area proximity via USGS PAD-US (public domain, commercial-use OK — unlike Protected Planet/WDPA, whose API explicitly forbids commercial-entity use). Reports whether …
Keyword search across ArcGIS Hub Open Data — real public FeatureServer/MapServer datasets from government/organization ArcGIS Online portals worldwide. Returns real service_url values usable …
One-call EV charging site-scouting indicator: grid proximity (power for fast-charging) + land cover + locality context, combined from GISGP's existing free primitives. No key needed. Retur…
One-call cell tower site-scouting indicator: grid proximity + terrain elevation (line-of-sight proxy) + land cover, combined from GISGP's existing free primitives. No key needed. Returns J…
Bulk solar/wind site screener — evaluates up to 25 candidate points (each {"lon": ..., "lat": ...}) and returns only the top_n, ranked by average daily solar radiation. Candidates with unsuita…
Real-time active wildfire proximity at a point via NASA FIRMS (VIIRS satellite hotspot detections, last 2 days) + electric grid exposure (transmission lines are a documented wildfire-ignition-…
Real driving distance + duration between two points. Default: OSRM (public demo instance, no key — fair-use limited, not a production SLA). Optional agol_token: route through Esri's own World …
FREE — quote a paid tool's cost WITHOUT executing it or charging the wallet (call this before assess_property_hazard etc.). `units` = candidate/item count for per-unit-priced tools (currently …
FREE — check your own MCP credits wallet balance (the same account paid tools like assess_property_hazard charge against). Requires Authorization: Bearer <api_key> — an agent can call this on …
PAID (200 credits) — multi-source US property hazard indicator: USGS seismic risk (required), plus best-effort FEMA disaster declaration history (state, last 10 years) and NOAA real-time activ…
PAID (200 credits PER CANDIDATE, max 25 candidates/call) — bulk seismic- risk screener. Runs assess_property_hazard's seismic check under the hood for each [lon, lat] candidate and returns onl…
PAID (200 credits PER PROPERTY, max 25 properties/call) — bulk physical climate-risk disclosure input for a real-estate/asset portfolio (SEC climate disclosure rule / EU CSRD physical-risk rep…
PAID (400 credits) — checks whether two supposedly-redundant sites (e.g. two "backup" suppliers/warehouses/data centers) are actually independent: real geodesic distance between them + each si…
PAID (100 credits) — US Inflation Reduction Act "energy community" bonus tax credit qualification lookup for a renewable energy project site. Checks both DOE/NETL-published qualifying pathways…
PAID (300 credits) — data center site-scouting composite: grid proximity (power availability), multi-source hazard (seismic + FEMA + NOAA, required — same contract as assess_property_hazard), …
PAID (100 credits) — reforestation/afforestation site-scouting composite: terrain, land cover (flags already-forested/urban/water/snow as unsuitable), and a year of precipitation history (tree…
PAID (100 credits) — nearby FAA-registered vertical obstructions (towers, stacks, wind turbines) at a US point, for telecom/tower-siting due diligence (e.g. "is there anything tall already nea…
PAID (300 credits) — master due-diligence report for a point: wraps assess_property_hazard (seismic + FEMA + NOAA, required) plus grid proximity, land cover, and reverse-geocoded locality — al…
PAID (150 credits) — render an ad-hoc GeoJSON FeatureCollection to a one-page PDF report (static map + property table, base64-encoded PDF). Separate from the web app's own PDF Builder (AGOL-se…
PAID (80 credits) — convert a GeoJSON FeatureCollection to an Excel workbook (.xlsx, base64-encoded). Point geometries get LATITUDE/LONGITUDE columns; other geometry types get a GEOMETRY_WKT c…
PAID (40 credits) — one-call file migration: convert a raw file to GeoJSON, then optionally reproject and simplify, then round coordinates. Replaces 2-4 separate free tool calls (convert + rep…
PAID (150 credits) — fetch ALL records from a live FeatureServer layer (no 50-record preview cap), auto-repair invalid geometries (GEOS make_valid), and scan for common problems, in one call. …
PAID (120 credits) — fetch ALL records from a live FeatureServer layer once, then export the same data as Shapefile + CSV + GeoJSON + KML + Excel in a single ZIP (base64-encoded). Replaces an …
PAID (100 credits) — migration-readiness report comparing two FeatureServer layers: schema diff, coded-value domains, and field types for both. Replaces compare_schemas + extract_domains×2 + …
PAID (30 credits PER ADDRESS, max 10 addresses/call) — batch geocode + enrich. For each address: forward-geocodes to lon/lat (free fallback chain: OSM Nominatim -> Photon -> US Census), then r…
PAID PER DELIVERY (30 credits each time it fires, NOT at creation — free to create/cancel) — the only MCP tool that exposes GISGP's core recurring-export product to agents: creates a schedule …
FREE — cancel a schedule created by bundle_create_export_schedule. Only the API key that created it can cancel it. Returns JSON: {ok} or {ok: false, error}.
PAID via x402 (USDC on Base Sepolia testnet, ~$0.20/call) — no GISGP account or API key needed, the agent pays directly on-chain. Multi-source US property hazard indicator (USGS seismic + FEMA disaste…
Similar MCP servers embedding-nearest
How to use
Add to your Claude Desktop / Cursor / Cline MCP config:
{
"mcpServers": {
"gisgp": {
"url": "https://gisgp.com/mcp",
"transport": "streamable-http"
}
}
}