天气MCP服务器
一种模型上下文协议服务器,它通过国家气象局API为美国地点提供检索天气警报和详细预报的工具给AI代理。
可用工具 (2 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
get-alerts 1 个参数 需填 1 项
Get weather alerts for a state
必填参数:state
get-forecast 2 个参数 需填 2 项
Get weather forecast for a location
必填参数:latitude、longitude
服务介绍
天气 MCP 服务器
一个使用国家气象局(NWS)API 提供美国地区天气信息和警报的模型上下文协议(MCP)服务器。此服务器设计用于通过模型上下文协议由AI代理使用。
特性
- 获取任意美国州的天气警报工具
- 使用坐标获取任意美国位置详细天气预报的工具
- 支持温度、风况及简短预报描述
- 来自国家气象服务的实时数据
先决条件
- Node.js (v16 或更高版本)
- npm 或 yarn 包管理器
安装
- 克隆仓库:
git clone https://github.com/akaramanapp/weather-mcp-server.git
cd weather-mcp-server
- 安装依赖项:
npm install
- 构建应用程序:
npm run build
MCP 工具
服务器提供了两个可以被AI代理使用的MCP工具:
get-alerts
为特定的美国州获取天气警报。
参数:
state: 两字母州代码(例如,CA, NY)
示例响应:
{
"content": [
{
"type": "text",
"text": "Active alerts for CA: ..."
}
]
}
get-forecast
使用坐标获取特定位置的天气预报。
参数:
latitude: 位置的纬度 (-90 到 90)longitude: 位置的经度 (-180 到 180)
示例响应:
{
"content": [
{
"type": "text",
"text": "Morning: Temperature: 72°F, Wind: 5mph NW, Partly cloudy..."
}
]
}
项目结构
weather/
├── src/
│ └── index.ts # Main server code with MCP tool implementations
├── build/ # Compiled JavaScript files
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
技术细节
- 用 TypeScript 构建
- 实现了模型上下文协议(MCP)服务器
- 使用 @modelcontextprotocol/sdk 实现MCP服务器
- 与国家气象局(NWS)API 接口交互
- ES2022 目标与 Node16 模块解析
开发
要修改或扩展服务器:
- 在
src/index.ts文件中进行更改 - 重新构建应用程序:
npm run build
依赖项
- @modelcontextprotocol/sdk: MCP 服务器实现框架
- zod: 用于工具参数的运行时类型检查和验证
- TypeScript: 用于类型安全的开发依赖项
许可证
ISC
注意事项
- 此服务器仅适用于美国地区,因为它使用的是国家气象局 API
- API 请求受到速率限制,并需要 User-Agent 标头
- 所有坐标应采用十进制度数格式
- 这不是一个独立的命令行应用程序,而是一个通过模型上下文协议向AI代理提供工具的服务器