WeatherXM Pro MCP服务器
](https://smithery.ai/server/@oharkins/weatherxm-mcp-server)
模型上下文协议(MCP)服务器,提供对全球WeatherXM分散式天气网络实时天气数据的全面访问。
特性
- 实时天气数据:从任何WeatherXM站获取当前天气状况
- 天气预报:获取每小时和每天的天气预报
- 历史数据:检索历史天气数据以进行趋势分析
- 天气警报:获取活跃的天气警报和警告
- 车站探索:查找任何位置附近的气象站
- 高级搜索:按名称或位置搜索电台
- 气象单元探索分散的气象网络覆盖范围
- 数据质量评估:检查特定站点的天气数据的可靠性
- 综合天气指标:温度、湿度、风、压力、紫外线指数、太阳辐照度和降水数据
- 全球覆盖:访问世界各地WeatherXM站的天气数据
先决条件
- Node.js 18或更高版本
- WeatherXM Pro API密钥(在 pro.weatherxm.com)
配置
服务器需要WeatherXM Pro API密钥才能正常工作。连接到服务器时,您需要提供此信息。
获取WeatherXM Pro API密钥
- 访问 pro.weatherxm.com
- 注册专业账户
- 导航到API部分
- 生成API密钥
快速修复“连接失败”/“加载失败”
连接失败的最常见原因是WeatherXM Pro API密钥丢失或无效。请按照以下步骤操作:
1.测试您的API密钥
运行此命令以测试API密钥:
# Set your API key
export WEATHERXM_API_KEY="your_api_key_here"
# Test the connection
node test-api.js2.配置您的MCP客户端
选项A:环境变量(推荐)
export WEATHERXM_API_KEY="your_api_key_here"选项B:MCP客户端配置
对于Claude Desktop或其他MCP客户端,请在配置中添加:
{
"mcpServers": {
"weatherxm": {
"command": "npx",
"args": ["@oharkins/weatherxm-mcp-server"],
"env": {
"WEATHERXM_API_KEY": "your_api_key_here"
}
}
}
}选项C:直接服务器配置
如果直接运行服务器:
WEATHERXM_API_KEY="your_api_key_here" npm run devMCP客户端配置示例
使用已发布的NPM包
对于大多数用户来说,推荐的方法是使用已发布的npm包:
{
"mcpServers": {
"weatherxm": {
"command": "npx",
"args": ["@oharkins/weatherxm-mcp-server"],
"env": {
"WEATHERXM_API_KEY": "your_api_key_here"
}
}
}
}使用本地开发版本
对于希望运行最新开发版本的开发人员或用户:
{
"mcpServers": {
"weatherxm": {
"command": "node",
"args": ["/path/to/weatherxm-mcp-server/dist/index.js"],
"env": {
"WEATHERXM_API_KEY": "your_api_key_here"
}
}
}
}备注:替换 /path/to/weatherxm-mcp-server 使用克隆存储库的实际路径。一定要跑 npm run build:tsc 首先生成 dist/index.js 文件使用传统的TypeScript编译器。
使用TypeScript进行本地开发
对于热重载的主动开发:
{
"mcpServers": {
"weatherxm": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "/path/to/weatherxm-mcp-server",
"env": {
"WEATHERXM_API_KEY": "your_api_key_here"
}
}
}
}备注:这需要安装开发依赖项(npm install)并且仅建议用于开发目的。
3.验证连接
配置后,服务器应成功启动,您应该能够使用以下天气工具:
- “WXM123456站的天气怎么样?”
- “查找纽约市附近的气象站”
- “获取40.7128、-74.0060的天气警报”
安装
- 克隆此存储库:
git clone
cd weatherxm-mcp-server- 安装依赖项:
npm install- 构建服务器:
选项A:使用Smithery(默认)
npm run build选项B:使用传统TypeScript
npm run build:tsc备注:传统的TypeScript构建创建了一个 dist/ 包含已编译JavaScript文件的目录。如果您不想使用Smithery或需要编译的输出进行部署,请使用此选项。
发展与地方跑者
此服务器支持Smithery和本地运行器功能进行开发和测试。
使用Smithery(推荐)
Smithery通过热重载和优化构建提供了现代开发体验。
开发模式:
npm run dev生产建设:
npm run build使用本地运行程序
对于没有Smithery的本地开发和测试:
设置API密钥:
export WEATHERXM_API_KEY="your_api_key_here"运行本地跑步者:
npm run runner或者直接用tsx运行:
tsx src/runner.ts开发脚本
npm run dev-启动Smithery开发服务器npm run dev:tsc-使用TypeScript编译器开始开发npm run runner-运行本地服务器进行测试npm run build-与Smithery合作建造npm run build:tsc-使用TypeScript编译器构建npm run clean-清理构建工件npm start-运行内置服务器npm run start:dev-运行开发服务器npm test-测试服务器创建
配置文件
存储库包括MCP客户端的示例配置文件:
mcp-config-example.json-使用已发布的npm包进行标准配置mcp-config-local-dev.json-本地开发配置
根据MCP客户端设置的需要复制和修改这些文件。
可用工具
1.获取当前天气(get_current_weather)
从特定的WeatherXM站检索最新的天气观测结果。
参数:
station_id(字符串):WeatherXM站ID(例如,“station_123”或“WXM123456”)
退货:
- 温度(华氏度和摄氏度)
- 感觉像是温度
- 天气情况
- 湿度百分比
- 露点
- 风速与风向
- 阵风(如有)
- 气压
- 紫外线指数
- 太阳活动
- 降水率和累计降水量
- 数据质量评分
2.获取每小时预测(get_hourly_forecast)
检索特定WeatherXM站的详细小时天气预报。
参数:
station_id(字符串):WeatherXM站IDhours(数字,可选):要预测的小时数(1-48,默认值:48)
退货:
- 每小时温度预测
- 降水概率
- 风力条件
- 湿度和压力预报
- 紫外线指数预测
3.获取每日预测(get_daily_forecast)
检索每日天气预报,包括高温/低温和降水。
参数:
station_id(字符串):WeatherXM站IDdays(数字,可选):要预测的天数(1-7,默认值:7)
退货:
- 每日高温和低温
- 降水概率和类型
- 风力条件
- 湿度和压力预报
- 紫外线指数预测
4.获取历史天气数据(get_historical_weather)
检索历史天气数据以进行趋势分析和模式识别。
参数:
station_id(字符串):WeatherXM站IDstart_date(字符串):ISO格式的开始日期(YYYY-MM-DD)end_date(字符串):ISO格式的结束日期(YYYY-MM-DD)
退货:
- 历史温度数据
- 降水记录
- 风和压力历史
- 汇总统计
- 最近的观察
5.获取天气警报(get_weather_alerts)
检索特定位置的活动天气警报和警告。
参数:
latitude(数字):纬度,以十进制度数表示longitude(数字):经度,以十进制度数表示
退货:
- 活跃天气警报
- 警报严重性和类型
- 有效期和到期时间
- 受灾地区
- 警报说明
6.查找气象站(find_weather_stations)
在指定位置附近发现WeatherXM气象站。
参数:
latitude(数字):纬度,以十进制度数表示longitude(数字):经度,以十进制度数表示radius(数字,可选):搜索半径,单位为公里(默认值:50,最大值:100)
退货:
- 附近车站及其详细信息列表
- 车站名称、ID和位置
- 车站创建日期
- 单元索引信息
7.搜索气象站(search_weather_stations)
按名称或位置描述搜索WeatherXM电台。
参数:
query(string):搜索查询(站名、城市或位置)page(数字,可选):分页页码(默认值:1)limit(数字,可选):每页结果(1-50,默认值:10)
退货:
- 带详细信息的匹配站
- 总结果计数
- 分页信息
8.获取天气单元(get_weather_cells)
检索位置附近的WeatherXM天气单元格(地理区域)。
参数:
latitude(数字):纬度,以十进制度数表示longitude(数字):经度,以十进制度数表示radius(数字,可选):搜索半径,单位为公里(默认值:50,最大值:100)
退货:
- 气象单元信息
- 细胞中心坐标
- 每个单元的站数
- 网络覆盖详细信息
9.获得车站健康(get_station_health)
评估特定WeatherXM站的数据质量和可靠性。
参数:
station_id(字符串):WeatherXM站ID
退货:
- 数据质量得分(0-100%)
- 位置质量评分及原因
- 数据可靠性总体评估
- 健康检查时间戳
10.获取车站当地时间(get_station_local_time)
获取电台位置的当前本地时间。
参数:
station_id(字符串):WeatherXM站ID
退货:
- 车站所在地的当前当地时间
使用示例
示例1:获取当前天气
What's the weather like at station WXM123456?示例2:获取天气预报
What's the hourly forecast for station WXM789012 for the next 24 hours?示例3:获取历史数据
Show me the weather data for station WXM345678 from January 1st to January 7th, 2024示例4:查看天气警报
Are there any weather alerts for New York City (40.7128, -74.0060)?示例5:查找位置附近的车站
Find weather stations within 25km of New York City (40.7128, -74.0060)示例6:搜索车站
Search for weather stations in "San Francisco"示例7:检查站点数据质量
How reliable is the weather data from station station_789?示例8:获取当地时间
What time is it at station WXM456789?数据单位
服务器以以下单位提供天气数据:
- 温度:摄氏度(含华氏度转换)
- 风速:m/s(带mph转换)
- 压力:hPa(含inHg转换)
- 降水:mm(带英寸转换)
- 太阳辐照度:W/m²
- 紫外线指数:无量纲
- 湿度:百分比
错误处理
服务器处理各种错误情况:
- 401未经授权:API密钥无效
- 404未找到:找不到站点或没有可用数据
- 429请求太多:超过API费率限制
- 500内部服务器错误:WeatherXM服务暂时不可用
- 网络错误:连接问题
故障排除
常见错误消息
错误:“无效的API密钥”
- 从pro.weatherxm.com双击检查API密钥
- 确保在您的环境中正确设置了API密钥
错误:“找不到站点”
- 请先尝试搜索气象站:“查找\[您所在位置\]附近的气象站”
- 使用搜索返回的电台ID
错误:“超过API速率限制”
- 请等待几分钟,然后重试
- 考虑升级您的WeatherXM Pro计划
错误:“WeatherXM服务暂时不可用”
- WeatherXM服务可能遇到问题
- 稍后再试
常见问题
- 缺少API密钥:服务器需要有效的WeatherXM Pro API密钥
- API密钥无效:仔细检查您的WeatherXM Pro帐户中的密钥
- 网络问题:确保您有互联网连接
- 速率限制:您可能已超过API配额
发展
以开发模式运行
选项A:使用Smithery(默认)
npm run dev选项B:在tsx中使用TypeScript
npm run dev:tsc备注:The dev:tsc 命令使用 tsx 无需编译即可快速执行TypeScript。如果您不想使用Smithery,请将其用于开发。
生产大楼
npm run buildapi参考
此服务器使用WeatherXM Pro API。有关API的详细文档,请访问:
使用的关键端点
GET /stations/{station_id}/latest-获取最新观察结果GET /stations/{station_id}/forecast/hourly-获取每小时预测GET /stations/{station_id}/forecast/daily-获取每日预报GET /stations/{station_id}/historical-获取历史数据GET /alerts-获取天气警报GET /stations-查找附近的车站GET /stations/search-搜索车站GET /cells-获取天气单元
许可证
国际协调委员会
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
支持
关于以下问题:
- WeatherXM Pro API:通过pro.WeatherXM.com联系WeatherXM支持人员
- MCP服务器问题:有关更多详细信息,请查看主README.md
- 天气数据:检查服务器提供的数据质量分数
- 配置问题:查看上述配置和故障排除部分
