@pipeworx/usda-soil
Connect: https://gateway.pipeworx.io/usda-soil/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
USDA-NRCS Soil Data Access over SSURGO — the detailed US soil survey, mapped by field crews at 1:12,000-1:63,360 and republished annually. Soil at a point, the named soil series inside a map unit with their properties and horizons, and arbitrary SQL over the full survey schema.
Tools
usda_soil_mapunit_at_point(lat, lon)— map unit key, symbol, official name, acreage, farmland class, survey area and its publication date.usda_soil_components(mukey, include_horizons?)— the soil series in a map unit with percentage, taxonomy, drainage class, slope range, hydrologic group, land capability class and hydric rating; optionally the depth horizons with sand/silt/clay, organic matter, pH, available water capacity and Ksat.usda_soil_query(sql)— read-only SELECT over the SSURGO schema.
Auth
Keyless.
Not the same as soilgrids
soilgrids is ISRIC’s 250 m machine-learning prediction for the whole globe.
This is the surveyed US ground truth: named series, official taxonomy,
interpretation ratings — and it covers only the United States and its
territories. Use soilgrids outside the US, or where a modelled continuous
surface is wanted instead of a mapped polygon.
Data sources
- https://sdmdataaccess.sc.egov.usda.gov/Tabular/post.rest — POST
{"format":"JSON+COLUMNNAME","query":"<T-SQL>"}.
Traps this pack absorbs:
- It is SQL Server.
TOP n, notLIMIT n. JSON+COLUMNNAMEreturns an array of arrays, not objects —Table[0]is the column-name row.runSqlzips them into objects.- Errors come back as OGC XML with a 400, and the first 300 characters are
entirely XML-namespace boilerplate, so slicing the raw body hides the one
sentence that names the problem.
summarizeErrorBodyfrom@pipeworx/sharedunwraps the<ServiceException>; a bad column now readsUSDA Soil Data Access: 400 Invalid query: Invalid column name 'nosuchcolumn'. (from the upstream's XML error document). - A valid SELECT that matches nothing returns an empty
Table, not an error —usda_soil_querysays so explicitly rather than presenting an empty result as a finding. - Column locations are not where you would guess.
saverest(survey area publication date) is onsacatalog, notlegend.farmlndclis onmapunit, notcomponent. Land capability oncomponentisnirrcapcl/nirrcapscl. - Point geometry goes through
SDA_Get_Mukey_from_intersection_with_WktWgs84with WKTpoint(lon lat)— longitude first.
Tools
- usda_soil_mapunit_at_point — The USDA-NRCS SSURGO soil map unit at one latitude/longitude in the United States — map unit key (mukey), symbol, the official map unit name (“Terril-Urban land complex, 2 to 5 percent slopes”), its a
- usda_soil_components — The soil components inside one USDA SSURGO map unit — each named soil series with its percentage of the unit, official taxonomic class, drainage class, slope range, hydrologic soil group, land capabil
- usda_soil_query — Run a read-only SQL SELECT against the USDA-NRCS Soil Data Access database (SSURGO) — the full US soil survey schema: legend, mapunit, component, chorizon, cointerp, plus the SDA_ spatial helper funct
Tools
usda_soil_components— The soil components inside one USDA SSURGO map unit — each named soil series with its percentage of the unit, official taxonomic class, drainage class, slope range, hydrologic soil group, land capabilusda_soil_mapunit_at_point— The USDA-NRCS SSURGO soil map unit at one latitude/longitude in the United States — map unit key (mukey), symbol, the official map unit name ( Terril-Urban land complex, 2 to 5 percent slopes ), its ausda_soil_query— Run a read-only SQL SELECT against the USDA-NRCS Soil Data Access database (SSURGO) — the full US soil survey schema: legend, mapunit, component, chorizon, cointerp, plus the SDA_ spatial helper funct