关于 Usda Soil
Usda Soil 是一个 MCP 服务,用于查询美国及其领地的 USDA-NRCS SSURGO 土壤调查数据。它提供地图单元、土壤组成与土层属性,并支持只读 SQL 查询,适用于土壤研究和土地评估。
主要功能
- 01查询指定坐标的土壤地图单元
- 02获取地图单元中的土壤组成
- 03查看土层属性
- 04对 SSURGO 执行只读 SQL
适用场景
- 01查询美国地点的地图土壤类型
- 02查看排水、坡度和土层信息
- 03检索用于土地评估的调查记录
MCP 相关
通过 Pipeworx 网关端点或独立 stdio 服务,向 MCP 客户端提供 SSURGO 点位查询、土壤组成和只读查询工具。网关端点还列出 Pipeworx 共享元工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/usda-soil/mcpclaude mcp add --transport http pipeworx-io-usda-soil https://gateway.pipeworx.io/usda-soil/mcp{"mcpServers":{"pipeworx-io-usda-soil":{"type":"http","url":"https://gateway.pipeworx.io/usda-soil/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-usda-soil":{"type":"http","url":"https://gateway.pipeworx.io/usda-soil/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-usda-soil":{"type":"http","url":"https://gateway.pipeworx.io/usda-soil/mcp"}}}{"mcpServers":{"pipeworx-io-usda-soil":{"serverUrl":"https://gateway.pipeworx.io/usda-soil/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/usda-soil
USDA-NRCS 土壤数据访问服务基于 SSURGO——这是详细的美国土壤调查数据,由野外调查队按 1:12,000-1:63,360 的比例绘制,并每年重新发布。查询某个点的土壤、地图单元内具名土壤系列的属性和土层,以及对完整调查架构执行任意 SQL 查询。
属于 Pipeworx 的一部分——一个将 AI Agent 连接到 1684+ 个实时数据源的 MCP 网关。
工具
usda_soil_mapunit_at_point(lat, lon)— 地图单元键、符号、正式名称、面积、农田类别、调查区域及其发布日期。usda_soil_components(mukey, include_horizons?)— 地图单元内的土壤系列及其占比、分类、排水类别、坡度范围、水文组、土地利用能力类别和水成土评级;也可选择包含土层深度,以及沙粒/粉粒/黏粒、有机质、pH、有效水容量和 Ksat。usda_soil_query(sql)— 对 SSURGO 架构执行只读 SELECT 查询。
身份验证
无需密钥。
与 soilgrids 并不相同
soilgrids 是 ISRIC 提供的全球 250 m 机器学习预测数据。
这是经过实地调查的美国真实数据:具名土壤系列、官方分类、解释评级——且仅覆盖美国及其领土。在美国以外使用 soilgrids;如果需要的是模型生成的连续表面,而不是地图多边形,也应使用 soilgrids。
数据源
- https://sdmdataaccess.sc.egov.usda.gov/Tabular/post.rest — POST
{"format":"JSON+COLUMNNAME","query":"<T-SQL>"}。
此工具包处理了以下陷阱:
- 这是 SQL Server。 使用
TOP n,而不是LIMIT n。 JSON+COLUMNNAME返回的是数组的数组,而不是对象——Table[0]是列名行。runSql会将它们合并为对象。- 错误会以 OGC XML 和 400 状态码返回,且前 300 个字符全是 XML 命名空间样板内容,因此截取原始响应正文会隐藏指出问题所在的那句话。
@pipeworx/shared中的summarizeErrorBody会解析<ServiceException>;现在,错误列名会显示为USDA Soil Data Access: 400 Invalid query: Invalid column name 'nosuchcolumn'. (from the upstream's XML error document)。 - 合法的 SELECT 查询若没有匹配结果,会返回空的
Table,而不是错误——usda_soil_query会明确说明这一点,而不会将空结果呈现为发现。 - 列的位置并非凭直觉就能猜到。
saverest(调查区域发布日期)位于sacatalog,而非legend。farmlndcl位于mapunit,而非component。component上的土地利用能力列是nirrcapcl/nirrcapscl。 - 点几何通过
SDA_Get_Mukey_from_intersection_with_WktWgs84处理,使用 WKTpoint(lon lat)——经度在前。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"usda-soil": {
"url": "https://gateway.pipeworx.io/usda-soil/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/usda-soil/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点会列出大约 30 个共享工具,以及该工具包自己的工具。连接的 initialize 响应会说明其确切范围,是判断当前范围的权威依据。
这是有意设计的,并非意外的多路复用。元工具让范围受限的连接也能回答此工具包不涵盖的问题——通过 ask_pipeworx 在整个目录中进行路由——而无需添加第二个 MCP 服务。目前无法在不包含这些工具的情况下挂载工具包端点;如果额外的架构定义消耗的上下文超过了路由带来的价值,请改为连接一次完整网关,而不是连接多个工具包端点。
也可以连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是当前工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1684+ 个数据源。唯一的区别在于直接列出的是哪个工具包的工具;无论连接哪个端点,ask_pipeworx 都能访问所有工具包。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/usda_soil_mapunit_at_point \
-H 'Content-Type: application/json' \
-d '{"lat":41.6,"lon":-93.6}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/usda_soil_mapunit_at_point。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需通过网关往返:
{
"mcpServers": {
"usda-soil": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-usda-soil"]
}
}
}
也可以直接运行,确认其能够启动:
npx -y @pipeworx/mcp-usda-soil
它通过 stdin/stdout 使用 MCP 通信,并为仅此工具包的工具响应 initialize/tools/list/tools/call——不包含上文网关连接提供的任何共享元工具。来源相同,工具相同,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
你也可以用通俗易懂的英语提问,而不是直接调用工具——此功能既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Usda Soil data" })
网关会选择合适的工具并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。