MCP serverio.github.uponex/gisgp
GIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
Overview
Score?
UNRATED 0.672
of what a free look can see, on 30 looks
Looks
35
last 11 hr ago
Tools
106
changed 9 days ago
More info
URL
gisgp.com/mcp
streamable-http
Says it is
GISGP 1.28.1
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.672 · highest on record 0.8561
Toolsfrom sha256:7986418685…d8f108 · +0 −0 9 days ago
| Tool | Schema |
|---|---|
| analyze_location 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, co |
input · output |
| assess_airspace_obstruction_proximity 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 anyth |
input · output |
| assess_datacenter_site PAID (300 credits) — data center site-scouting composite: grid
proximity (power availability), multi-source hazard (seismic + FEMA +
NOAA, required — same contract as asses |
input · output |
| assess_energy_community_credit 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 |
input · output |
| assess_ev_charging_site 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 k |
input · output |
| assess_grid_exposure Electric grid infrastructure proximity at a US point: nearby
substations + transmission lines within 10 miles (community ArcGIS
mirror of HIFLD data — proximity indicator, |
input · output |
| assess_pipeline_proximity 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" |
input · output |
| assess_portfolio_climate_disclosure 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 CS |
input · output |
| assess_property_hazard 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 |
input · output |
| assess_property_hazard_x402 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 se |
input · no output |
| assess_protected_area_proximity US protected/conservation area proximity via USGS PAD-US (public
domain, commercial-use OK — unlike Protected Planet/WDPA, whose API
explicitly forbids commercial-entity us |
input · output |
| assess_reforestation_site PAID (100 credits) — reforestation/afforestation site-scouting
composite: terrain, land cover (flags already-forested/urban/water/snow
as unsuitable), and a year of precipi |
input · output |
| assess_renewable_site 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 |
input · output |
| assess_site_due_diligence 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-ge |
input · output |
| assess_supply_chain_redundancy PAID (400 credits) — checks whether two supposedly-redundant sites
(e.g. two "backup" suppliers/warehouses/data centers) are actually
independent: real geodesic distance be |
input · output |
| assess_telecom_site 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 n |
input · output |
| assess_wildfire_risk 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 documente |
input · output |
| audit_service Full one-call QA report of an ArcGIS FeatureServer layer: health (latency,
record count, capabilities) + field schema + coded domains + summary counts.
One call replaces s |
input · output |
| buffer_geojson Buffer every feature by a distance in METRES (negative shrinks).
Geodesically accurate at any latitude (each feature is buffered in a local
equidistant projection). Return |
input · output |
| bundle_create_export_schedule 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: |
input · output |
| bundle_export_fixed 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 pro |
input · output |
| bundle_export_multi_format 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-en |
input · output |
| bundle_geocode_enrich 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 - |
input · output |
| bundle_migrate_convert 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 |
input · output |
| bundle_migration_readiness PAID (100 credits) — migration-readiness report comparing two
FeatureServer layers: schema diff, coded-value domains, and field types
for both. Replaces compare_schemas + e |
input · output |
| calculate_route 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 throu |
input · output |
| cancel_export_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}. |
input · output |
| centroids_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 |
input · output |
| check_field_types Inspect the field schema of an ArcGIS FeatureServer layer.
Returns JSON: {layer_name, geometry_type, fields:[{name, alias, type,
length, nullable, has_domain}]} — useful b |
input · output |
| check_service_health Check whether an ArcGIS FeatureServer layer is reachable and responsive.
Returns JSON: {ok, ms (latency), name, geometry_type, field_count,
record_count, capabilities, max |
input · output |
| check_wallet_balance 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 age |
input · output |
| classify_land_cover 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 |
input · output |
| compare_schemas Compare the field schemas of two ArcGIS FeatureServer layers.
Returns JSON diff: {added, removed, changed:[{field, diffs}], same,
geometry_match, identical} — useful for Q |
input · output |
| convert_coordinates 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": |
input · output |
| convex_hull_geojson 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 |
input · output |
| count_features 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 layer |
input · output |
| csv_to_geojson 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 |
input · output |
| csv_to_gpx Convert a CSV with latitude/longitude columns directly to GPX
waypoints (2026-09-03) — e.g. "these coordinates to a GPX for my GPS".
Column names are auto-detected (lat/lat |
input · output |
| detect_coordinate_order 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+ |
input · output |
| discover_open_geodata Keyword search across ArcGIS Hub Open Data — real public
FeatureServer/MapServer datasets from government/organization ArcGIS
Online portals worldwide. Returns real service |
input · output |
| discover_open_geodata_pro PAID (30 credits) — open-data discovery with the metadata an agent
needs BEFORE querying: up to 50 ArcGIS Hub results (free tool: 10) and,
for the top 25, each layer's geom |
input · output |
| dissolve_geojson 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, |
input · output |
| dxf_to_geojson 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 onl |
input · output |
| dxf_to_pdf_report 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 t |
input · output |
| embed_map_snippet 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/dashboa |
input · output |
| envelope_geojson 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". Prop |
input · output |
| epsg_suggest 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, na |
input · output |
| estimate_cost 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-pric |
input · output |
| export_geojson_to_excel PAID (80 credits) — convert a GeoJSON FeatureCollection to an Excel
workbook (.xlsx, base64-encoded). Point geometries get LATITUDE/LONGITUDE
columns; other geometry types |
input · output |
| export_geojson_to_pdf 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 |
input · output |
| extract_domains Extract coded value domains from an ArcGIS FeatureServer layer.
Returns JSON: {"layer_name": ..., "domains": {field: {name, field_alias, codes}}}.
|
input · output |
| find_layer_issues Scan an ArcGIS FeatureServer layer for common problems: missing ObjectID,
disabled query, stale data, all-null fields, features without geometry.
Sample-based (first 200 r |
input · output |
| fix_geometry Repair invalid geometries (self-intersections, bad rings) via GEOS
make_valid. Already-valid geometries are left untouched. Returns JSON
{ok, fixed_count, feature_count, ge |
input · output |
| flatgeobuf_to_geojson Convert a FlatGeobuf file (base64-encoded .fgb) to a GeoJSON
FeatureCollection. FlatGeobuf is a cloud-native binary format with a
built-in spatial index, used for fast HTTP |
input · output |
| format_coordinate Express one WGS84 point in every common notation at once: decimal
degrees, DMS, DDM, UTM (zone/band/easting/northing), MGRS and USNG,
British National Grid reference (insid |
input · output |
| full_service_audit 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 + aud |
input · output |
| generate_static_map_image 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 |
input · output |
| geocode_address 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. Optiona |
input · output |
| geojson_diff Compare two GeoJSON FeatureCollections — added/removed/changed features.
Matched by an `id_field` property if given, else by array position (exact
structural comparison, n |
input · output |
| geojson_to_csv 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 spread |
input · output |
| geojson_to_dxf 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 en |
input · output |
| geojson_to_flatgeobuf Convert GeoJSON to FlatGeobuf (.fgb) — the cloud-native binary
format with a built-in spatial index. FlatGeobuf holds one geometry
type per file, so mixed point/line/polygo |
input · output |
| geojson_to_gpx 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 an |
input · output |
| geojson_to_kml 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 pl |
input · output |
| geojson_to_mapinfo_tab Convert GeoJSON to a MapInfo TAB file set, ready for MapInfo Pro.
TAB is a multi-sidecar-file format (.tab/.dat/.id/.map) and single
geometry type per file, like Shapefile |
input · output |
| geojson_to_shapefile 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 |
input · output |
| geojson_to_wkt 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 WK |
input · output |
| geometry_health_report Complete one-call GeoJSON health check: validate + auto-repair invalid
geometry + stats (area/length/vertices) + bbox envelope, merged — replaces
4 separate calls (validate |
input · output |
| geometry_stats 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.
|
input · output |
| georeference_dxf 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 pl |
input · output |
| get_climate_history 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 |
input · output |
| get_elevation_profile PAID (50 credits) — elevation PROFILE along a line, not a single point:
pass points=[[lon,lat],…] (up to 100) or start=[lon,lat] + end=[lon,lat]
with samples (2-100, evenly |
input · output |
| get_river_flow_status Nearest USGS real-time stream/river gauge to a point (US rivers and
streams only): live streamflow (ft3/s) and gauge height (ft), reported
honestly as provisional USGS data |
input · output |
| get_terrain_profile 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". |
input · output |
| gpx_to_csv Convert a GPS track file (GPX) directly to CSV (2026-09-03) —
waypoints get LATITUDE/LONGITUDE columns, tracks/routes get a
GEOMETRY_WKT column instead. |
input · output |
| gpx_to_geojson 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", "im |
input · output |
| gpx_to_kml 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". |
input · output |
| gpx_to_shapefile Convert a GPS track file (GPX) directly to an Esri Shapefile ZIP —
waypoints become points, tracks/routes become lines (2026-09-03).
Returns JSON: {shapefile_zip_base64, wa |
input · output |
| grade_service Grade an ArcGIS FeatureServer layer A–F across 5 categories (schema quality,
data completeness, performance, maintenance, configuration).
Returns JSON: {grade, score, cate |
input · output |
| guess_crs_from_coordinates 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). Genuinel |
input · output |
| kml_to_geojson 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 |
input · output |
| kml_to_gpx Convert a Google Earth/My Maps KML file directly to GPX — waypoints
from Points, tracks from Lines/Polygons — e.g. "KML to GPX for my
Garmin", "load this map on my GPS" (20 |
input · output |
| kml_to_shapefile 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_bas |
input · output |
| list_dxf_layers 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 nam |
input · output |
| mapinfo_tab_to_geojson Convert a MapInfo TAB file set (base64-encoded .zip containing
.tab + its .dat/.map/.id sidecar files) to a GeoJSON FeatureCollection.
MapInfo TAB is the native format of M |
input · output |
| minimum_rotated_rectangle 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", "minim |
input · output |
| nearest_features_geojson 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, |
input · output |
| offset_coordinates 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 |
input · output |
| overlay_geojson Combine two GeoJSON FeatureCollections with a boolean set operation.
op: intersection | difference (a minus b) | symmetric_difference | union.
Each side is unioned into on |
input · output |
| parse_coordinate Parse ANY single coordinate string a human might paste into WGS84
lat/lon — decimal degrees with any separator or an EU decimal comma,
DMS (42°41'51.7"N 23°19'18.9"E), DDM |
input · output |
| query_features Fetch actual feature records (attributes + geometry) from a FeatureServer layer.
Free preview capped at 50 records (WHERE filter + chosen fields). Returns JSON:
{returned, |
input · output |
| query_statistics 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 |
input · output |
| rank_hazard_safe_sites 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] candi |
input · output |
| rank_renewable_sites 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. Can |
input · output |
| reduce_precision 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" |
input · output |
| reproject_geojson 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:432 |
input · output |
| rest_explore 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. Retu |
input · output |
| shapefile_to_geojson 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: {geojs |
input · output |
| shapefile_to_gpx Convert a Shapefile ZIP (base64-encoded .zip with .shp/.dbf/.shx[/.prj])
directly to GPX — points become waypoints, lines/polygons become tracks
(2026-09-03). Returns GPX 1 |
input · output |
| share_map 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 bro |
input · output |
| simplify_geometry 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 fas |
input · output |
| spatial_join_geojson Attach properties from every B feature that satisfies a spatial
predicate to each A feature (as a `_matches` list).
predicate: intersects | within | contains | touches | c |
input · output |
| tile_math 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}.
|
input · output |
| validate_geojson 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 |
input · output |
| voronoi_geojson 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", "Vorono |
input · output |
| wkt_to_geojson 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 GeoJ |
input · output |
Verify it yourself
npx teppi-check https://gisgp.com/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2NNQ9R23HTCD3YGF6BPA