GIS tools for AI agents: 24 tools — EPSG conversion, GeoJSON ops, ArcGIS inspection.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The GISGP MCP server exposes 92 tools, focused primarily on database, developer, and web capabilities. Its published description reads: "GIS tools for AI agents: 24 tools — EPSG conversion, GeoJSON ops, ArcGIS inspection". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates GISGP F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Data-exfiltration parameters" and "Data-exfiltration parameters". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check GISGP's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add GISGP to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://gisgp.com/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
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], ...], "from_epsg":
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 this Ge
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 feature
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: count_features
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: extract_domains
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: check_field_types
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: check_service_health
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: rest_explore
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: compare_schemas
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url_a"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: query_features
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: query_statistics
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: dxf_to_geojson
A tool description tries to alter the model’s use of another tool.
ities — see list_dxf_layers to discover what layer names exist first.RecommendationDescriptions must describe only their own tool.
tool: list_dxf_layers
A tool description tries to alter the model’s use of another tool.
the result with dxf_to_geojson's `layer` param to pull out just one. ReturRecommendationDescriptions must describe only their own tool.
tool: dxf_to_pdf_report
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
zation: Bearer <api_key> and sufficient credits balance. Returns JSRecommendationRemove side-channel parameters; constrain tool inputs.
tool: dxf_to_pdf_report
A tool description tries to alter the model’s use of another tool.
lon/lat) — use georeference_dxf first if you need a real-world-referenced rRecommendationDescriptions must describe only their own tool.
tool: grade_service
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
end to a human. token: only for private layers (never stored in the sRecommendationRemove side-channel parameters; constrain tool inputs.
tool: audit_service
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
ype":"string"},"token":{"default":"","title":"Token","type":"string"}RecommendationRemove side-channel parameters; constrain tool inputs.
tool: find_layer_issues
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: share_map
A tool description tries to alter the model’s use of another tool.
ually instead of pasting raw GeoJSON.RecommendationDescriptions must describe only their own tool.
tool: embed_map_snippet
A tool description tries to alter the model’s use of another tool.
wrapper around share_map (same live page, same 30-day TTL), for embeRecommendationDescriptions must describe only their own tool.
tool: full_service_audit
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
ype":"string"},"token":{"default":"","title":"Token","type":"string"}RecommendationRemove side-channel parameters; constrain tool inputs.
tool: full_service_audit
A tool description tries to alter the model’s use of another tool.
separate calls (grade_service + audit_service + find_layer_issues). RetuRecommendationDescriptions must describe only their own tool.
tool: geometry_health_report
A tool description tries to alter the model’s use of another tool.
separate calls (validate_geojson + fix_geometry + geometry_stats + envelope_RecommendationDescriptions must describe only their own tool.
tool: geocode_address
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
s YOUR OWN AGOL credentials/quota, not GISGP's (no extra charge eitherRecommendationRemove side-channel parameters; constrain tool inputs.
tool: geocode_address
A tool description tries to alter the model’s use of another tool.
mplement to analyze_location's reverse geocode. Optional agol_token: route tRecommendationDescriptions must describe only their own tool.
tool: generate_static_map_image
A tool description tries to alter the model’s use of another tool.
nts, unlike share_map's interactive live page. basemap: 'topo', 'streRecommendationDescriptions must describe only their own tool.
tool: discover_open_geodata
A tool description tries to alter the model’s use of another tool.
query_features/count_features/rest_explore/compare_schemas. Free, no APIRecommendationDescriptions must describe only their own tool.
tool: estimate_cost
A tool description tries to alter the model’s use of another tool.
all this before assess_property_hazard etc.). `units` = candidate/item count for pRecommendationDescriptions must describe only their own tool.
tool: check_wallet_balance
A tool description tries to alter the model’s use of another tool.
paid tools like assess_property_hazard charge against). Requires Authorization: BeRecommendationDescriptions must describe only their own tool.
tool: assess_property_hazard
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
declaration history (state, last 10 years) and NOAA real-time activRecommendationRemove side-channel parameters; constrain tool inputs.
tool: assess_property_hazard
A tool description tries to alter the model’s use of another tool.
dits/topup. Use estimate_cost first to quote without charging. Returns JSRecommendationDescriptions must describe only their own tool.
tool: rank_hazard_safe_sites
A tool description tries to alter the model’s use of another tool.
or context. Use estimate_cost(tool_name= "rank_hazard_safe_sites", units=RecommendationDescriptions must describe only their own tool.
tool: assess_portfolio_climate_disclosure
A tool description tries to alter the model’s use of another tool.
risk score. Use estimate_cost(tool_name= "assess_portfolio_climate_discloRecommendationDescriptions must describe only their own tool.
tool: assess_datacenter_site
A tool description tries to alter the model’s use of another tool.
ame contract as assess_property_hazard), land cover, and a year of temperature hisRecommendationDescriptions must describe only their own tool.
tool: assess_site_due_diligence
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
on: Bearer <api_key> and sufficient credits balance. Use estimate_cRecommendationRemove side-channel parameters; constrain tool inputs.
tool: assess_site_due_diligence
A tool description tries to alter the model’s use of another tool.
ts balance. Use estimate_cost first to quote. Returns JSON: {ok, hazard,RecommendationDescriptions must describe only their own tool.
tool: export_geojson_to_pdf
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
zation: Bearer <api_key> and sufficient credits balance. Returns JSRecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_migrate_convert
A tool description tries to alter the model’s use of another tool.
n by hand — see estimate_cost's "replaces" field. Requires Authorization:RecommendationDescriptions must describe only their own tool.
tool: bundle_export_fixed
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_export_fixed
A tool description tries to alter the model’s use of another tool.
an uncapped query_features call (itself a paid-only capability) plus fRecommendationDescriptions must describe only their own tool.
tool: bundle_export_multi_format
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_migration_readiness
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
zation: Bearer <api_key> and sufficient credits balance. ReturRecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_migration_readiness
A tool description tries to alter the model’s use of another tool.
mpare_schemas + extract_domains×2 + check_field_types×2. Requires AuthorizaRecommendationDescriptions must describe only their own tool.
tool: bundle_geocode_enrich
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
zation: Bearer <api_key> and sufficient credits balance. Returns JRecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_geocode_enrich
A tool description tries to alter the model’s use of another tool.
lyze_location + classify_land_cover. Use estimate_cost(tool_name= "bundle_geocoRecommendationDescriptions must describe only their own tool.
tool: bundle_create_export_schedule
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "service_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: bundle_create_export_schedule
A tool description tries to alter the model’s use of another tool.
rmally. Use estimate_cost or check_wallet_balance to plan ahead. Delete vRecommendationDescriptions must describe only their own tool.
tool: cancel_export_schedule
A tool description tries to alter the model’s use of another tool.
dule created by bundle_create_export_schedule. Only the API key that created it can canceRecommendationDescriptions must describe only their own tool.
tool: assess_property_hazard_x402
A tool description tries to alter the model’s use of another tool.
erlying data as assess_property_hazard. Returns JSON: {ok, pga_percent_g, hazard_note,RecommendationDescriptions must describe only their own tool.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
tureServer A-F (grade_service), run a one-call QA report (audit_service), scaRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: geojson_to_wkt
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "geojson_to_wkt"RecommendationScope tools to the minimum needed.
tool: grade_service
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "grade_service"RecommendationScope tools to the minimum needed.
tool: overlay_geojson
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "overlay_geojson"RecommendationScope tools to the minimum needed.
tool: bundle_create_export_schedule
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "bundle_create_export_schedule"RecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
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: {"ok": t
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/mapping data.
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, layers:
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 or migrati
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: {...}, reprojection_notic
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/APIs accept
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"). Retu
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 become GPX t
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, geojson, n
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. Returns J
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". Reprojects
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". Tolerance in
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 precisio
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 map poi
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 QGIS impo
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 POLYGON(..
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 string"
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 layer from t
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 polygon ri
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, UTILITI
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 points on thi
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 to PDF
Grade an ArcGIS FeatureServer layer A–F across 5 categories (schema quality, data completeness, performance, maintenance, configuration). Returns JSON: {grade, score, categories:[{key, label, score, n
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/fields/domains
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 JSON: {layer
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 live 30 days
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 sharing a lin
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_m, geojs
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. Returns JSON {ok,
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 locations". Re
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, then the op
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. Returns JS
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 equals). Retur
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. Returns JSO
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 rectangle", "ori
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". Non-po
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_layer_issu
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_geometry + ge
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 (Copernicus D
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>...}, source}.
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-26: gated se
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, locality
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 through
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, distance_m
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 any val
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 nature — retu
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', 'streets'
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 survey). No
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). No key
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 transmi
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 the poin
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 directly
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. Returns JSON: {ok
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 JSON: {ok, gr
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 unsuitable land
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- liabili
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 Route Se
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 only ran
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 its own,
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 active severe
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 only the to
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 reporting).
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 site's own
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 (coal-m
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), land cov
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-viabili
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 near this p
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 — all in one
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-service-ti
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 column. S
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 + reproject +
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. Replaces
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 uncapped
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 + check_fie
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 reverse-g
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 that re-
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