Skip to content
All data sources

US Soils API and MCP server

No authsoils

USDA soil survey context for land, development, agricultural, and due-diligence workflows.

US Soils is published by USDA NRCS Soil Data Access and covers United States soil survey areas represented in SSURGO or STATSGO.

It refreshes on a schedule the publisher sets.

Last verified . That is when these facts were last rebuilt from the ParcelOps source registry, not when USDA NRCS Soil Data Access last refreshed the data itself.

API access

Your AI client reaches US Soils through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.

Where it came from

Freshness and coverage

FreshnessScheduled · Follows USDA NRCS SSURGO and STATSGO publication updates; survey dates vary by area.
Places coveredUnited States soil survey areas represented in SSURGO or STATSGO
Time coveredNot declared
CredentialsNo credentials required

What this source cannot tell you

  • Anything outside United States soil survey areas represented in SSURGO or STATSGO. A request past that edge comes back empty rather than approximated.
  • Which years it spans, because the covered period is not declared.
  • Anything USDA NRCS Soil Data Access does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
  • Soil survey context does not replace current field investigation, engineering, or site-specific geotechnical analysis.

Methods (3)

A method is one call your agent can make against this source.

  • queryAtPoint

    read

    Query soil map units at a point using the shared point-query method name.

    What you must providelatitudelongitude
    Records returnedsoil-map-unit
    How to get more resultsnone
    Coordinate systemEPSG:4326
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "source": {
          "type": "string"
        },
        "coverage": {
          "type": "string"
        },
        "mapUnits": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "notice": {
          "type": "string"
        }
      },
      "required": [
        "latitude",
        "longitude",
        "source",
        "mapUnits",
        "notice"
      ],
      "additionalProperties": true
    }
  • querySoilAtPoint

    read

    Backward-compatible alias for queryAtPoint.

    What you must providelatitudelongitude
    Records returnedsoil-map-unit
    How to get more resultsnone
    Coordinate systemEPSG:4326
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "source": {
          "type": "string"
        },
        "coverage": {
          "type": "string"
        },
        "mapUnits": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "notice": {
          "type": "string"
        }
      },
      "required": [
        "latitude",
        "longitude",
        "source",
        "mapUnits",
        "notice"
      ],
      "additionalProperties": true
    }
  • getServiceInfo

    read

    Return USDA source metadata and caveats.

    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    }

Where this source is used