MCP YR.no气象服务器
一种模型上下文协议(MCP)服务器,提供对挪威气象研究所(YR.no)天气数据的访问。该服务器通过MCP协议公开天气预报功能,允许AI助手获取全球任何地点的当前天气、每小时预报和每日预报。
特性
- 当前天气:获取任何位置的实时天气状况
- 每小时预测:获取详细的每小时天气预报(最多48小时)
- 每日预测:获取每日天气摘要(最多7天)
- 详细预测:获取所有可用参数的综合天气数据
- 天气描述:将天气符号代码转换为人类可读的描述
安装
- 克隆此存储库并导航到以下目录:
git clone
cd mcp-yrno-weather-prediction-server- 安装依赖项:
npm install- 构建TypeScript代码:
npm run build用法
发展模式
在开发模式下运行服务器并自动重新加载:
npm run dev生产模式
构建并运行编译后的服务器:
npm run build
npm startMCP工具
服务器提供以下工具:
get_current_weather
获取某个位置的当前天气状况。
参数:
latitude(数字,必填):纬度坐标(-90到90,最多4位小数)longitude(数字,必填):经度坐标(-180到180,最多4位小数)altitude(数字,可选):海拔高度(单位:米)
例子:
{
"latitude": 59.9139,
"longitude": 10.7522,
"altitude": 100
}get_hourly_forecast
获取某个地点的每小时天气预报。
参数:
latitude(数字,必填):纬度坐标(-90到90,最多4位小数)longitude(数字,必填):经度坐标(-180到180,最多4位小数)hours(数字,可选):要预测的小时数(1-48,默认值:24)altitude(数字,可选):海拔高度(单位:米)
get_daily_forecast
获取一个地点的每日天气预报(最多7天)。
参数:
latitude(数字,必填):纬度坐标(-90到90,最多4位小数)longitude(数字,必填):经度坐标(-180到180,最多4位小数)altitude(数字,可选):海拔高度(单位:米)
get_detailed_forecast
从API获取详细的天气预报和完整的数据。
参数:
latitude(数字,必填):纬度坐标(-90到90,最多4位小数)longitude(数字,必填):经度坐标(-180到180,最多4位小数)altitude(数字,可选):海拔高度(单位:米)
get_weather_description
将天气符号代码转换为人类可读的描述。
参数:
symbolCode(字符串,必填):天气符号代码(例如,“clearsky_day”、“rain”、“snow”)
配置
天气客户端配置了:
- 用户代理:“MCP Yr无气象服务器/1.0https://github.com/example/mcp-yrno-weather"
- 基本URL: "https://api.met.no/weatherapi/locationforecast/2.0"
- 超时:10秒
您可以在中修改配置 src/weather-client.ts 如果需要的话。
MCP客户端配置
要将此服务器与MCP客户端一起使用,请将其添加到您的客户端配置中:
{
"mcpServers": {
"yrno-weather": {
"command": "node",
"args": ["/path/to/your/mcp-yrno-weather-prediction-server/dist/index.js"]
}
}
}API费率限制
API挪威气象研究所有费率限制:
- 尊重API的使用
- 客户自动将坐标四舍五入到4位小数,以符合API的要求
- 优雅地处理速率限制错误(HTTP 429)
天气数据
服务器提供丰富的天气数据,包括:
- 温度(电流、最小值、最大值)
- 湿度
- 气压
- 风速与风向
- 云层覆盖范围
- 降水量和概率
- 天气状况符号
- 紫外线指数(如有)
错误处理
服务器处理各种错误情况:
- 无效坐标(HTTP 422)
- 速率限制(HTTP 429)
- 禁止访问(HTTP 403)
- 网络超时
- API响应无效
发展
脚本
npm run build:将TypeScript编译为JavaScriptnpm run dev:使用tsx在开发模式下运行npm run watch:运行文件监视以进行开发npm start:运行已编译的服务器
文件结构
src/
├── index.ts # Main MCP server implementation
└── weather-client.ts # YR.no API client and types许可证
MIT许可证
鸣谢
- 气象数据由 挪威气象局
- 内置于 模型上下文协议SDK
