使用说明
气象MCP服务器
实现模型上下文协议(MCP)服务器的实践项目,该服务器通过美国国家气象局API提供天气数据。该项目遵循 人类MCP文件 并为构建其他MCP服务器提供了有益的参考。
概述
此MCP服务器提供两个主要的天气信息工具:
- 天气警报:获取美国任何州的活跃天气警报
- 天气预报:获取特定坐标的详细天气预报
该服务器使用美国国家气象局(NWS)API,为美国各地提供免费、可靠的天气数据。
特性
- ✅ 州天气警报:按州代码检索当前天气警报
- ✅ 位置预测:使用纬度/经度坐标获取详细预报
- ✅ 错误处理:针对API故障和无效位置的稳健错误处理
- ✅ TypeScript:具有正确类型定义的完整TypeScript实现
- ✅ Zod验证:使用Zod模式进行输入验证
安装
- 克隆存储库:
git clone <repository-url>
cd weather-mcp
- 安装依赖项:
npm install
- 构建项目:
npm run build
用法
作为MCP服务器
服务器在stdio上运行,可以与MCP兼容的客户端集成:
node /path/to/weather-mcp/build/index.js
可用工具
get_alerts
获取特定州的天气警报。
参数:
state(string):两个字母的状态码(例如,“CA”、“NY”、“TX”)
例子:
{
"name": "get_alerts",
"arguments": {
"state": "CA"
}
}
get_forecast
获取特定坐标的天气预报。
参数:
latitude(数字):纬度(-90到90)longitude(数字):经度(-180到180)
例子:
{
"name": "get_forecast",
"arguments": {
"latitude": 37.7749,
"longitude": -122.4194
}
}
发展
脚本
npm run build:将TypeScript编译为JavaScriptnpm test:运行测试(当前未实现)
依赖项
@modelcontextprotocol/sdk:核心MCP SDKzod:架构验证库typescript:TypeScript编译器@types/node:Node.js类型定义
局限性
- 仅支持美国地区(NWS API限制)
- API调用需要互联网连接
- NWS API限制的费率(尽管限制很慷慨)