Skip to content
Back to GISGP

Card snapshot

gisgp.com · 2026-10-18 14:33:50 UTC · b7decc01da7a61448ce9cb6dd724120faab7e390967c8d4a38b2d680549ab254

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "GISGP",
  "description": "Hosted geospatial tool server for AI agents: coordinate conversion, format conversion (GeoJSON/Shapefile/KML/GPX/DXF/CSV), open-data discovery, terrain, land cover, protected areas, hazard and site assessments. Wire protocol is MCP (Streamable HTTP, JSON-RPC over POST /mcp) \u2014 109 tools, 87 free without signup, 22 paid via credits or x402.",
  "url": "https://gisgp.com/mcp",
  "protocol": "mcp",
  "interfaces": [
    {
      "transport": "mcp-streamable-http",
      "url": "https://gisgp.com/mcp"
    }
  ],
  "provider": {
    "organization": "GISGP",
    "url": "https://gisgp.com"
  },
  "version": "1.2.5",
  "documentationUrl": "https://gisgp.com/api",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "authentication": {
    "schemes": [
      "none",
      "bearer"
    ],
    "note": "Free tools need no auth. Paid tools: Bearer API key from https://gisgp.com/app/settings, or x402."
  },
  "trust": "https://gisgp.com/.well-known/tool-trust.json",
  "llms_txt": "https://gisgp.com/llms.txt",
  "skills": [
    {
      "id": "convert_coordinates",
      "name": "convert coordinates",
      "description": "Convert coordinate pairs between EPSG coordinate systems (max 1000 points).",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "validate_geojson",
      "name": "validate geojson",
      "description": "Check whether a GeoJSON file/string is valid \u2014 catches broken geometry,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_csv",
      "name": "geojson to csv",
      "description": "Convert GeoJSON to CSV/spreadsheet \u2014 one row per feature, properties",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "count_features",
      "name": "count features",
      "description": "Count features in an ArcGIS FeatureServer layer, optionally filtered by a WHERE clause.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "extract_domains",
      "name": "extract domains",
      "description": "Extract coded value domains from an ArcGIS FeatureServer layer.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "check_field_types",
      "name": "check field types",
      "description": "Inspect the field schema of an ArcGIS FeatureServer layer.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "check_service_health",
      "name": "check service health",
      "description": "Check whether an ArcGIS FeatureServer layer is reachable and responsive.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "rest_explore",
      "name": "rest explore",
      "description": "List the layers and tables of an ArcGIS FeatureServer/MapServer root.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "compare_schemas",
      "name": "compare schemas",
      "description": "Compare the field schemas of two ArcGIS FeatureServer layers.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "shapefile_to_geojson",
      "name": "shapefile to geojson",
      "description": "Convert a Shapefile ZIP (base64-encoded .zip with .shp/.dbf/.shx[/.prj])",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "kml_to_geojson",
      "name": "kml to geojson",
      "description": "Convert Google Earth / Google My Maps KML (2.0\u20132.2) to GeoJSON \u2014 the",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "gpx_to_geojson",
      "name": "gpx to geojson",
      "description": "Convert a GPS track/route file (GPX \u2014 from Garmin, Strava exports,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_gpx",
      "name": "geojson to gpx",
      "description": "Convert GeoJSON to a GPX file \u2014 e.g. \"export this as a GPS track\",",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "flatgeobuf_to_geojson",
      "name": "flatgeobuf to geojson",
      "description": "Convert a FlatGeobuf file (base64-encoded .fgb) to a GeoJSON",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_flatgeobuf",
      "name": "geojson to flatgeobuf",
      "description": "Convert GeoJSON to FlatGeobuf (.fgb) \u2014 the cloud-native binary",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "mapinfo_tab_to_geojson",
      "name": "mapinfo tab to geojson",
      "description": "Convert a MapInfo TAB file set (base64-encoded .zip containing",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_mapinfo_tab",
      "name": "geojson to mapinfo tab",
      "description": "Convert GeoJSON to a MapInfo TAB file set, ready for MapInfo Pro.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "query_features",
      "name": "query features",
      "description": "Fetch actual feature records (attributes + geometry) from a FeatureServer layer.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "query_statistics",
      "name": "query statistics",
      "description": "Server-side aggregate stats on a numeric field of a FeatureServer layer.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geometry_stats",
      "name": "geometry stats",
      "description": "Compute area (m\u00b2/km\u00b2), length (m/km), vertex count, centroid and bbox of GeoJSON.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "reproject_geojson",
      "name": "reproject geojson",
      "description": "Change a GeoJSON's coordinate reference system (CRS/projection) \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "simplify_geometry",
      "name": "simplify geometry",
      "description": "Reduce the number of vertices in GeoJSON geometry (Douglas-Peucker",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "reduce_precision",
      "name": "reduce precision",
      "description": "Round every coordinate to N decimal places to shrink a GeoJSON file's",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "csv_to_geojson",
      "name": "csv to geojson",
      "description": "Convert a CSV/spreadsheet with lat/lon (or X/Y) columns to GeoJSON \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_kml",
      "name": "geojson to kml",
      "description": "Convert GeoJSON to KML for Google Earth / Google My Maps (e.g. \"open",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_shapefile",
      "name": "geojson to shapefile",
      "description": "Convert GeoJSON to an Esri Shapefile ZIP \u2014 the format ArcGIS Desktop",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "gpx_to_kml",
      "name": "gpx to kml",
      "description": "Convert a GPS track file (GPX) directly to KML for Google Earth \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "kml_to_shapefile",
      "name": "kml to shapefile",
      "description": "Convert a Google Earth/My Maps KML file directly to an Esri Shapefile",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "kml_to_gpx",
      "name": "kml to gpx",
      "description": "Convert a Google Earth/My Maps KML file directly to GPX \u2014 waypoints",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "shapefile_to_gpx",
      "name": "shapefile to gpx",
      "description": "Convert a Shapefile ZIP (base64-encoded .zip with .shp/.dbf/.shx[/.prj])",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "gpx_to_shapefile",
      "name": "gpx to shapefile",
      "description": "Convert a GPS track file (GPX) directly to an Esri Shapefile ZIP \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "csv_to_gpx",
      "name": "csv to gpx",
      "description": "Convert a CSV with latitude/longitude columns directly to GPX",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "gpx_to_csv",
      "name": "gpx to csv",
      "description": "Convert a GPS track file (GPX) directly to CSV (2026-09-03) \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "wkt_to_geojson",
      "name": "wkt to geojson",
      "description": "Convert a WKT (Well-Known Text) geometry string \u2014 the format",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_wkt",
      "name": "geojson to wkt",
      "description": "Convert a GeoJSON geometry (or a Feature's geometry) to WKT \u2014 the",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "dxf_to_geojson",
      "name": "dxf to geojson",
      "description": "Convert an AutoCAD DXF file's contents to GeoJSON \u2014 e.g. \"convert",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_to_dxf",
      "name": "geojson to dxf",
      "description": "Convert GeoJSON to an AutoCAD DXF file \u2014 e.g. \"export this GeoJSON",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "list_dxf_layers",
      "name": "list dxf layers",
      "description": "List the distinct DXF layer names used in a drawing \u2014 e.g. \"what",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "georeference_dxf",
      "name": "georeference dxf",
      "description": "Reproject a DXF drawn in a local/arbitrary CAD coordinate system",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "dxf_to_pdf_report",
      "name": "dxf to pdf report",
      "description": "PAID (150 credits) \u2014 render a DXF drawing to a one-page PDF site-plan",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "grade_service",
      "name": "grade service",
      "description": "Grade an ArcGIS FeatureServer layer A\u2013F across 5 categories (schema quality,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "audit_service",
      "name": "audit service",
      "description": "Full one-call QA report of an ArcGIS FeatureServer layer: health (latency,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "find_layer_issues",
      "name": "find layer issues",
      "description": "Scan an ArcGIS FeatureServer layer for common problems: missing ObjectID,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "share_map",
      "name": "share map",
      "description": "Publish a GeoJSON FeatureCollection as a live, shareable map page on gisgp.com.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "embed_map_snippet",
      "name": "embed map snippet",
      "description": "Ready-to-paste <iframe> embed code for a live interactive map \u2014 thin",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "buffer_geojson",
      "name": "buffer geojson",
      "description": "Buffer every feature by a distance in METRES (negative shrinks).",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "dissolve_geojson",
      "name": "dissolve geojson",
      "description": "Merge overlapping/adjacent geometries into one (optionally grouped by a",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "centroids_geojson",
      "name": "centroids geojson",
      "description": "Get the center point of each polygon/line feature \u2014 e.g. \"find the",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "convex_hull_geojson",
      "name": "convex hull geojson",
      "description": "Draw the smallest polygon that wraps around all input features (a",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "overlay_geojson",
      "name": "overlay geojson",
      "description": "Combine two GeoJSON FeatureCollections with a boolean set operation.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "spatial_join_geojson",
      "name": "spatial join geojson",
      "description": "Attach properties from every B feature that satisfies a spatial",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "nearest_features_geojson",
      "name": "nearest features geojson",
      "description": "For each feature in A, find the nearest feature in B by centroid-to-",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "fix_geometry",
      "name": "fix geometry",
      "description": "Repair invalid geometries (self-intersections, bad rings) via GEOS",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geojson_diff",
      "name": "geojson diff",
      "description": "Compare two GeoJSON FeatureCollections \u2014 added/removed/changed features.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "epsg_suggest",
      "name": "epsg suggest",
      "description": "Suggest the correct UTM EPSG code to project a WGS84 lon/lat into for",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "tile_math",
      "name": "tile math",
      "description": "Convert a WGS84 lon/lat + zoom level to Slippy Map (XYZ) tile x/y,",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "envelope_geojson",
      "name": "envelope geojson",
      "description": "Get the bounding box (min/max rectangle) around each feature \u2014 e.g.",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "minimum_rotated_rectangle",
      "name": "minimum rotated rectangle",
      "description": "Smallest-area rectangle wrapping all input features combined \u2014 can be",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "voronoi_geojson",
      "name": "voronoi geojson",
      "description": "Divide space into regions closest to each input point (Voronoi",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "full_service_audit",
      "name": "full service audit",
      "description": "Complete one-call QA report: A-F grade + full audit (health/fields/",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geometry_health_report",
      "name": "geometry health report",
      "description": "Complete one-call GeoJSON health check: validate + auto-repair invalid",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "get_terrain_profile",
      "name": "get terrain profile",
      "description": "Get the ground elevation (metres above sea level) at a coordinate \u2014",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "get_climate_history",
      "name": "get climate history",
      "description": "Daily historical weather for a point/date range via Open-Meteo's",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "classify_land_cover",
      "name": "classify land cover",
      "description": "Land cover class at a WGS84 point via ESA CCI Land Cover 2018 (ArcGIS",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "analyze_location",
      "name": "analyze location",
      "description": "Reverse-geocode a WGS84 point to country/region/locality via OSM",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "geocode_address",
      "name": "geocode address",
      "description": "Forward-geocode a free-text address to lon/lat. Default: OSM Nominatim",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "offset_coordinates",
      "name": "offset coordinates",
      "description": "Move a WGS84 point by a geodesic distance (metres) along a compass",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "detect_coordinate_order",
      "name": "detect coordinate order",
      "description": "Detect whether [x, y] pairs are [lon, lat] or [lat, lon] \u2014 resolves",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "guess_crs_from_coordinates",
      "name": "guess crs from coordinates",
      "description": "Best-guess candidate CRS for raw [x, y] coordinates with no metadata",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "parse_coordinate",
      "name": "parse coordinate",
      "description": "Parse ANY single coordinate string a human might paste into WGS84",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "format_coordinate",
      "name": "format coordinate",
      "description": "Express one WGS84 point in every common notation at once: decimal",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "generate_static_map_image",
      "name": "generate static map image",
      "description": "Render a GeoJSON FeatureCollection/Feature to a static PNG map image",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_grid_exposure",
      "name": "assess grid exposure",
      "description": "Electric grid infrastructure proximity at a US point: nearby",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_renewable_site",
      "name": "assess renewable site",
      "description": "One-call solar/wind site-scouting indicator: terrain + land cover +",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_pipeline_proximity",
      "name": "assess pipeline proximity",
      "description": "Natural gas interstate/intrastate transmission pipeline proximity at",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_protected_area_proximity",
      "name": "assess protected area proximity",
      "description": "US protected/conservation area proximity via USGS PAD-US (public",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "get_river_flow_status",
      "name": "get river flow status",
      "description": "Nearest USGS real-time stream/river gauge to a point (US rivers and",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "discover_open_geodata",
      "name": "discover open geodata",
      "description": "Keyword search across ArcGIS Hub Open Data \u2014 real public",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_ev_charging_site",
      "name": "assess ev charging site",
      "description": "One-call EV charging site-scouting indicator: grid proximity (power",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_telecom_site",
      "name": "assess telecom site",
      "description": "One-call cell tower site-scouting indicator: grid proximity + terrain",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "rank_renewable_sites",
      "name": "rank renewable sites",
      "description": "Bulk solar/wind site screener \u2014 evaluates up to 25 candidate points",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_wildfire_risk",
      "name": "assess wildfire risk",
      "description": "Real-time active wildfire proximity at a point via NASA FIRMS",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "calculate_route",
      "name": "calculate route",
      "description": "Real driving distance + duration between two points. Default: OSRM",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "estimate_cost",
      "name": "estimate cost",
      "description": "FREE \u2014 quote a paid tool's cost WITHOUT executing it or charging the",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "check_wallet_balance",
      "name": "check wallet balance",
      "description": "FREE \u2014 check your own MCP credits wallet balance (the same account",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_property_hazard",
      "name": "assess property hazard",
      "description": "PAID (200 credits) \u2014 multi-source US property hazard indicator: USGS",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "rank_hazard_safe_sites",
      "name": "rank hazard safe sites",
      "description": "PAID (200 credits PER CANDIDATE, max 25 candidates/call) \u2014 bulk seismic-",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_portfolio_climate_disclosure",
      "name": "assess portfolio climate disclosure",
      "description": "PAID (200 credits PER PROPERTY, max 25 properties/call) \u2014 bulk physical",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_supply_chain_redundancy",
      "name": "assess supply chain redundancy",
      "description": "PAID (400 credits) \u2014 checks whether two supposedly-redundant sites",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_energy_community_credit",
      "name": "assess energy community credit",
      "description": "PAID (100 credits) \u2014 US Inflation Reduction Act \"energy community\"",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_datacenter_site",
      "name": "assess datacenter site",
      "description": "PAID (300 credits) \u2014 data center site-scouting composite: grid",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_reforestation_site",
      "name": "assess reforestation site",
      "description": "PAID (100 credits) \u2014 reforestation/afforestation site-scouting",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "get_elevation_profile",
      "name": "get elevation profile",
      "description": "PAID (50 credits) \u2014 elevation PROFILE along a line, not a single point:",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "discover_open_geodata_pro",
      "name": "discover open geodata pro",
      "description": "PAID (30 credits) \u2014 open-data discovery with the metadata an agent",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_airspace_obstruction_proximity",
      "name": "assess airspace obstruction proximity",
      "description": "PAID (100 credits) \u2014 nearby FAA-registered vertical obstructions",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "assess_site_due_diligence",
      "name": "assess site due diligence",
      "description": "PAID (300 credits) \u2014 master due-diligence report for a point: wraps",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "export_geojson_to_pdf",
      "name": "export geojson to pdf",
      "description": "PAID (150 credits) \u2014 render an ad-hoc GeoJSON FeatureCollection to a",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "export_geojson_to_excel",
      "name": "export geojson to excel",
      "description": "PAID (80 credits) \u2014 convert a GeoJSON FeatureCollection to an Excel",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_migrate_convert",
      "name": "bundle migrate convert",
      "description": "PAID (40 credits) \u2014 one-call file migration: convert a raw file to",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_export_fixed",
      "name": "bundle export fixed",
      "description": "PAID (150 credits) \u2014 fetch ALL records from a live FeatureServer layer",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_export_multi_format",
      "name": "bundle export multi format",
      "description": "PAID (120 credits) \u2014 fetch ALL records from a live FeatureServer layer",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_migration_readiness",
      "name": "bundle migration readiness",
      "description": "PAID (100 credits) \u2014 migration-readiness report comparing two",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_geocode_enrich",
      "name": "bundle geocode enrich",
      "description": "PAID (30 credits PER ADDRESS, max 10 addresses/call) \u2014 batch geocode",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "bundle_create_export_schedule",
      "name": "bundle create export schedule",
      "description": "PAID PER DELIVERY (30 credits each time it fires, NOT at creation \u2014 free to",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "cancel_export_schedule",
      "name": "cancel export schedule",
      "description": "FREE \u2014 cancel a schedule created by bundle_create_export_schedule. Only",
      "tags": [
        "gis",
        "geospatial",
        "free"
      ]
    },
    {
      "id": "assess_property_hazard_x402",
      "name": "assess property hazard x402",
      "description": "PAID via x402 (USDC on Base Sepolia testnet, ~$0.20/call) \u2014 no GISGP account or API key needed, the agent pays directly on-chain. Multi-source US property hazard indicator (USGS seismic + FEMA disaste",
      "tags": [
        "gis",
        "geospatial",
        "free",
        "x402"
      ]
    },
    {
      "id": "guess_crs",
      "name": "guess crs",
      "description": "GISGP Lite ($3 a month, or $1 once for 24 hours) \u2014 pass the api_key of that",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "get_elevation",
      "name": "get elevation",
      "description": "GISGP Lite ($3 a month, or $1 once for 24 hours) \u2014 pass the api_key of that",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    },
    {
      "id": "convert_file",
      "name": "convert file",
      "description": "GISGP Lite ($3 a month, or $1 once for 24 hours) \u2014 pass the api_key of that",
      "tags": [
        "gis",
        "geospatial",
        "paid"
      ]
    }
  ]
}