本项目提供了一个MCP服务器,可通过三个API全面访问美国地质调查局(USGS)的水资源数据,为水资源相关的研究、监测和决策提供有力支持。
若你想使用一个简洁的Web界面来调用这些工具,请访问 https://aqua-node.onrender.com/landing 并协助我进行一些测试!
此MCP服务器通过三个API提供对USGS水资源数据的全面访问:
服务器采用模块化设计,通过单个入口点统一不同的API处理程序。
pip install -e .
pip install httpx mcp
以下是一个获取波托马克河水流数据的示例:
{
"name": "USGS:01646500:00060:00000",
"sourceInfo": {
"siteName": "POTOMAC RIVER NEAR WASHINGTON, DC",
"siteCode": [
{
"value": "01646500",
"network": "NWIS",
"agencyCode": "USGS"
}
]
},
"variable": {
"variableCode": [
{
"value": "00060",
"network": "NWIS",
"vocabulary": "NWIS:UnitValues",
"variableName": "Streamflow, ft³/s",
"variableDescription": "Discharge, cubic feet per second"
}
]
},
"values": [
{
"value": [
{
"value": "6420",
"qualifiers": ["A"],
"dateTime": "2023-10-01T12:00:00.000"
}
]
}
]
}
usgs-water-mcp/
├── main.py # 统一入口点
├── water_data_api.py # USGS Water Services API工具
├── flood_impact_api.py # Real-Time Flood Impacts API工具
├── ogc_api.py # OGC API工具
├── current_water_levels.py # 旧的组合文件(已弃用)
├── Dockerfile # Docker配置
├── pyproject.toml # 项目依赖项
└── README.md # 本文件
fetch_usgs_data从USGS监测站获取即时水资源数据。 参数:
sites(必需):以逗号分隔的站点编号(例如,"01646500" 或 "01646500,01647000")parameter_codes(可选):以逗号分隔的参数代码(例如,"00060,00065")start_date(可选):ISO格式的开始日期(YYYY-MM-DD 或 YYYY-MM-DDTHH:MM)end_date(可选):ISO格式的结束日期period(可选):周期代码(例如,"P7D" 表示7天)常见参数代码:
00060:流量(水流)00065:水位00010:水温00300:溶解氧00400:pH值使用示例:
获取华盛顿特区附近波托马克河的当前水流:
sites: "01646500"
parameter_codes: "00060"
get_flooding_reference_points获取当前正在发生洪水的参考点(每30分钟更新一次)。
get_reference_points获取参考点的分页列表。 参数:
page(可选):页码(默认值:1)limit(可选):每页的结果数量(默认值:100)get_reference_point_by_id通过ID获取特定的参考点。 参数:
reference_point_id(必需):参考点IDget_reference_points_by_state获取特定州的参考点。 参数:
state_id(必需):州ID(例如,"CA","TX")get_reference_point_by_nwis_id通过USGS水位计ID获取参考点。 参数:
nwis_id(必需):USGS国家水资源信息系统站点IDget_reference_points_by_nws_id通过国家气象局ID获取参考点。 参数:
nws_id(必需):国家气象局位置IDget_inactive_reference_points获取非活动参考点。
get_states获取州列表。
get_state_by_id获取特定州的信息。 参数:
state_id(必需):州ID(例如,"CA","TX")get_counties获取县列表。
get_counties_by_state获取特定州的县。 参数:
state_id(必需):州ID(例如,"CA","TX")get_nws_usgs_crosswalk获取国家气象局/USGS交叉引用数据。
get_monitoring_locations获取具有广泛过滤选项的监测位置。 参数:
bbox(可选):以 "minx,miny,maxx,maxy" 表示的边界框limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)agency_code(可选):按机构代码过滤(例如,"USGS")state_code(可选):按州代码过滤(例如,"CA")county_code(可选):按县代码过滤site_type_code(可选):按站点类型代码过滤monitoring_location_number(可选):特定的监测位置编号get_monitoring_location_by_id通过ID获取特定的监测位置。 参数:
location_id(必需):监测位置IDget_agency_codes获取机构识别代码。 参数:
limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)get_altitude_datums获取垂直基准信息(推荐:NAVD88)。 参数:
limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)get_aquifer_codes获取含水层识别信息。 参数:
limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)get_aquifer_types获取含水层类型信息(承压与非承压)。 参数:
limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)get_coordinate_accuracy_codes获取经纬度值的坐标精度代码。 参数:
limit(可选):最大结果数量(默认值:100)offset(可选):分页的起始偏移量(默认值:0)使用 USGS Water Data for the Nation 网站查找你感兴趣区域的监测站站点编号。