气象MCP服务器
一种模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气信息。此服务器公开了两个用于检索美国各地天气警报和预报的工具。
特性
- 天气警报:使用2个字母的州代码获取美国任何州的活跃天气警报
- 天气预报:获取特定坐标(纬度/经度)的详细天气预报
- 使用TypeScript和MCP SDK构建
- 使用美国国家气象局API(无需API密钥)
先决条件
- Node.js(v16或更高版本)
- npm或纱线
- MCP兼容客户端(如Claude Desktop或Warp)
安装
- 克隆或下载此存储库
- 安装依赖项:
npm install建筑
构建TypeScript源代码:
npm run build这将:
- 编译TypeScript文件
src/向build/ - 使输出具有适当的权限可执行
用法
可用工具
get_alerts
获取美国某个州的天气警报。
参数:
state(string):两个字母的状态码(例如,“CA”、“NY”、“TX”)
例子:
Get weather alerts for Californiaget_forecast
获取特定坐标的天气预报。
参数:
latitude(数字):纬度(-90到90)longitude(数字):经度(-180到180)
例子:
Get weather forecast for latitude 37.7749, longitude -122.4194MCP配置
要将此服务器与MCP客户端一起使用,请添加以下配置:
适用于克劳德桌面
添加到您的Claude Desktop MCP配置文件中:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/absolute/path/to/weather/build/index.js"]
}
}
}对于Warp
添加到曲速MCP配置中:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/absolute/path/to/weather/build/index.js"]
}
}
}重要提示: 替换 /absolute/path/to/weather/build/index.js 使用构建的服务器文件的实际绝对路径。
聊天中的示例用法
配置MCP客户端后,您可以使用自然语言请求:
- “加利福尼亚州目前的天气警报是什么?”
- “获取旧金山的天气预报”(您可能需要提供坐标)
- “显示德克萨斯州的天气警报”
- “坐标40.7128,-74.0060的预报是什么?”(纽约市)
发展
项目结构
weather/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── .gitignore # Git ignore rules
└── README.md # This file进行更改
- 在中编辑TypeScript源代码
src/index.ts - 重建项目:
npm run build - 重新启动MCP客户端以获取更改
API详细信息
此服务器使用美国国家气象局API:
- 警报:
https://api.weather.gov/alerts?area={STATE_CODE} - 预测:
https://api.weather.gov/points/{LAT},{LON}→{forecast_url}
NWS API仅支持美国地区,不需要API密钥。
故障排除
常见问题
- “检索网格点数据失败”:这通常意味着坐标位于美国境外或不受支持的地区。
- “检索警报数据失败”:检查您的互联网连接,并验证州代码是否有效(2个字母)。
- 服务器未响应:确保你已经用
npm run buildMCP配置中的路径是正确的。
调试
服务器将错误记录到stderr,该错误应在MCP客户端的日志或控制台中可见。
许可证
此项目在ISC许可证下获得许可-有关详细信息,请参阅package.json文件。
贡献
该项目是在 模型上下文协议快速入门指南。您可以通过添加其他天气功能或改进现有功能来扩展它。
此实现遵循以下快速入门教程 模型上下文协议指南,提供了一个使用Node.js构建MCP服务器来处理天气数据的综合示例。
