NCEI ADS MCP服务器
NOAA NCEI访问数据服务API的模型上下文协议(MCP)服务器-通过Claude Desktop访问天气和气候数据。
特性
- 🌦️ API全面覆盖: 支持所有官方NCEI ADS参数
- 🔍 车站查找器: 按地址、邮政编码或坐标查找最近的气象站
- 📊 多种格式: JSON、CSV、SSV
- 🗓️ 灵活日期: 支持时区的ISO 8601日期和时间戳
- 🗺️ 地理过滤: 边界框查询
- 📏 单位转换: 标准或公制单位
- ⚡ 生产就绪: 全面的错误处理和测试
- 🏗️ 模块化架构: 可维护性关注点的清晰分离
快速开始
1.安装uv
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"2.配置克劳德桌面
添加到您的配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ncei-ads": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Shubham-Saboo/NCICS-MCP.git",
"ncei-ads-mcp"
]
}
}
}3.重新启动克劳德桌面
就是这样!服务器将自动下载、设置和运行。
可用工具
1.查找最近的车站
按地址、邮政编码或坐标查找车站ID。返回最近的气象站及其ID。
示例提示:
- “查找距离纽约最近的每日摘要站”
- “离邮政编码02101最近的气象站是哪里?”
- 查找纬度42.3601、经度-71.0589附近的全球小时站
参数:
dataset-数据集名称(例如,“每日摘要”、“全球每小时”)location-地址或邮政编码(例如“马萨诸塞州波士顿”或“02101”)- 或
latitude+longitude-十进制坐标 radius_km-搜索半径(默认值:50km,建议最大值:200km)
退货:
- 站ID(与fetch_data工具一起使用)
- 车站名称和坐标
- 与您所在位置的距离
- 即用型示例
2.获取天气数据
从NCEI检索历史天气和气候数据。
示例提示:
- “获取2024年1月1日至3日USW00094728站的温度数据”
- “获取2016年1月北大西洋的海风数据”
每日温度数据:
dataset: daily-summaries
startDate: 2024-01-01
endDate: 2024-01-03
stations: USW00094728
dataTypes: TMAX,TMIN,PRCP
units: metric
format: json带边界框的海洋数据:
dataset: global-marine
startDate: 2016-01-01
endDate: 2016-01-02
boundingBox: 90,-180,-90,180
dataTypes: WIND_DIR,WIND_SPEED
format: csv看 测试_会话.md 用于14+个综合测试用例。
支持的参数
必修的:
dataset-数据集标识符(例如,“每日摘要”、“全球海洋”)startDate-ISO 8601日期(YYYY-MM-DD或YYYY-MM-MM-DTHH:MM:ssZ)endDate-ISO 8601日期
可选:
stations-逗号分隔的站IDdataTypes-逗号分隔的数据类型代码boundingBox-地理过滤器为“N、W、S、E”units-“标准”或“公制”format-“json”(默认)、“csv”或“ssv”includeAttributes,includeStationName,includeStationLocation-布尔标志options-高级选项字符串
文档: https://www.ncei.noaa.gov/support/access-data-service-api-user-documentation
发展
本地设置
git clone https://github.com/Shubham-Saboo/NCICS-MCP.git
cd NCICS-MCP
uv pip install -e ".[dev]"运行测试
uv run pytest tests/ -v所有测试均通过,包括:
- 数据提取(所有格式:JSON、CSV、SSV)
- HTTP错误处理(400500)
- 超时和连接错误
- 参数验证
- 模块化架构(API客户端、实用程序、工具)
项目结构
src/ncei_ads_mcp/
├── server.py # Main MCP server with tool registration
├── api/
│ ├── client.py # HTTP client for NCEI API
│ └── endpoints.py # API URLs
├── tools/
│ ├── fetch_data.py # Data fetching tool
│ └── find_station.py # Station finder tool
└── utils/
├── distance.py # Haversine distance calculations
├── geocoding.py # Address to coordinates conversion
└── error_handlers.py # HTTP error handling贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 运行测试
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证.md
