天气数据服务

一个全面的天气数据服务,提供天气预报、空气质量、紫外线指数等多种天气信息,适用于开发者、数据分析师和个人用户。

  • by mohaimenhasan
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mohaimenhasan/mcp-weather-server

使用说明

🌤️ 增强型MCP天气服务器v2.0

A. 全面的 模型上下文协议(MCP)服务器,提供广泛的天气数据、预报、空气质量、紫外线指数等等!使用9个强大的工具直接在您的VS Code聊天中获取详细的天气信息。

🚀 是什么让这个特别?

这不仅仅是另一个天气工具,它是一个 综合气象情报系统 它提供:

🎯 9个强大的天气工具:

  1. 🌡️ 增强当前天气 -带有表情符号和全面数据的详细情况
  2. 📅 五天天气预报 -完整的天气预报和趋势
  3. 🌬️ 空气质量指数 -实时污染水平和健康警告
  4. ☀️ 紫外线指数和防晒 -太阳辐射水平及安全建议
  5. 🌍 多城市比较 -比较多个地点的天气
  6. 🚨 天气警报 -恶劣天气警报和紧急通知
  7. 🌅 天文数据 -日出、日落、日长和天文信息
  8. 📊 天气统计 -全面的趋势、平均值和气候见解
  9. 🗺️ 气象图 -访问雷达、卫星和天气图数据

💡 为什么要使用这个工具?

对于开发者:

  • 🏗️ 构建天气应用程序? 在一个地方获取全面的数据
  • 🌐 需要基于位置的功能? 获取天气、空气质量和天文数据
  • 📱 创建旅游应用程序? 比较多个目的地的天气
  • 🎯 构建户外应用程序? 获取紫外线指数、空气质量和安全信息

数据分析:

  • 📊 天气趋势和模式 商业智能
  • 🌡️ 气候数据分析 用于研究项目
  • 📈 多城市比较 用于位置规划
  • 🗺️ 地理天气图 用于可视化项目

个人使用:

  • ✈️ 旅行计划 有详细的预报和空气质量
  • 🏃 户外活动 紫外线指数和天气安全
  • 🌍 多位置监控 适用于跨城市的家庭/企业
  • 📱 综合天气简报 超出基本条件

对于内容创建:

  • 📝 天气感知内容 有详细的环境数据
  • 🎥 勘景 综合天气分析
  • 📊 可视化 拥有丰富的天气统计数据
  • 🌡️ 气候故事 有历史和趋势数据

🚨 快速注释: 如果下面的安装按钮在浏览器中打开,而不是在VS Code中打开,请使用 方法1 下面是手动配置-它更可靠!

🚀 易于安装的方法

🎯 方法1:NPM包(推荐)

通过自动设置直接从npm安装:

npm install -g mohaimen-weather-mcp

然后在您的设置中添加

"<name of your server>": 
{
   "command": "npx",
   "args": [
      "mohaimen-weather-mcp"
   ],
   "env": {
      "OPENWEATHER_API_KEY": "<YOUR_KEY>"
   }
}

这将:

  • 全局安装软件包
  • 运行一个交互式设置,要求您提供API密钥
  • 使用正确的路径自动配置VS代码设置
  • 无需手动配置!

🎯 方法2:手动配置(最可靠)

  1. 克隆和构建:

    git clone https://github.com/mohaimenhasan/mcp-weather-server.git
    cd mcp-weather-server
    npm run setup
    
  2. 获取API密钥:

  3. 添加到VS代码:

    • 打开VS代码
    • 按 Ctrl+Shift+P (或 Cmd+Shift+P 在Mac上)
    • 键入“首选项:打开用户设置(JSON)”
    • 将此添加到您的设置中:
    {
      "mcpServers": {
        "weather": {
          "command": "node",
          "args": ["/absolute/path/to/mcp-weather-server/dist/index.js"],
          "env": {
            "OPENWEATHER_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

✨ 所有功能和示例

�️ 增强当前天气

🌤️ Weather in London, GB

🌡️ Temperature: ☀️ 22°C (feels like ☀️ 24°C)
📊 Condition: clear sky
💧 Humidity: 65%
🌬️ Wind: 3.2 m/s (120°)
👁️ Visibility: 10.0 km
🌡️ Pressure: 1013 hPa
📈 Min/Max: ☀️ 18°C / ☀️ 26°C
☁️ Cloudiness: 10%
🌅 Sunrise: 6:42:15 AM
🌇 Sunset: 8:15:30 PM
📍 Coordinates: 51.5074, -0.1278

📅 五天天气预报

📅 5-Day Weather Forecast for Paris

☀️ Day 1 - 12/27/2024
🌡️ Temp: ☀️ 24°C (☀️ 20°C - ☀️ 28°C)
📊 clear sky
💧 Humidity: 68%
🌬️ Wind: 2.1 m/s
☁️ Clouds: 15%

🌬️ 空气质量指数

🌬️ Air Quality in Tokyo

📊 Overall AQI: 2/5 - 🟡 Fair - Moderate air quality

Pollutant Levels (μg/m³):
� CO: 233.75
🚗 NO: 0.01
🚗 NO₂: 8.13
🌫️ O₃: 78.32
💨 SO₂: 1.64
🏭 PM2.5: 5.15
🏭 PM10: 8.04
💨 NH₃: 0.63

☀️ 紫外线指数和防晒

☀️ UV Index for Sydney

📊 Current UV Index: 7.2
🟠 High - Protection essential

Sun Safety Tips:
🧴 Apply sunscreen (SPF 30+)
👕 Wear protective clothing
🕶️ Wear sunglasses and hat

🌍 多城市天气比较

🌍 Weather Comparison

☀️ London, GB
🌡️ ☀️ 22°C (feels like ☀️ 24°C)
📊 clear sky
💧 65% humidity
🌬️ 3.2 m/s wind

🌧️ Seattle, US
🌡️ 🌡️ 16°C (feels like 🌡️ 14°C)
📊 moderate rain
💧 85% humidity
🌬️ 5.1 m/s wind

🚨 天气警报

🚨 Weather Alerts for Miami

⚠️ Alert 1: Hurricane Warning
📅 Start: 12/27/2024, 2:00:00 PM
📅 End: 12/28/2024, 8:00:00 AM
📝 Hurricane conditions expected...
🏢 Source: National Weather Service

🌅 天文数据

🌅 Astronomy Data for Tokyo

☀️ Currently: Daytime

🌅 Sunrise: 6:47:12 AM
🌇 Sunset: 4:32:45 PM
⏰ Day Length: 9h 45m

📍 Location: 35.6762°, 139.6503°
🌍 Timezone: UTC+9

⏳ Next sunset: in 3h 15m

📊 天气统计与趋势

📊 Weather Statistics for Berlin

Current Conditions:
🌡️ Temperature: 🌡️ 18°C
💧 Humidity: 72%
🌡️ Pressure: 1015 hPa
👁️ Visibility: 8.5 km

24-Hour Trends:
🌡️ Temperature Range: 🌡️ 15°C to ☀️ 21°C
📊 Average Temperature: 🌡️ 18°C
📈 Temperature Trend: Rising 📈

💧 Average Humidity: 68.2%
🌡️ Average Pressure: 1014.8 hPa
📈 Pressure Trend: Rising 📈

🗺️ 气象图

🗺️ Weather Maps for New York

📍 Coordinates: 40.7128, -74.0060

Available Map Layers:
�️ Precipitation: Rainfall and snow patterns
☁️ Clouds: Cloud coverage and density
🌡️ Temperature: Temperature distribution
🌬️ Wind Speed: Wind patterns and speeds
🌡️ Pressure: Atmospheric pressure systems

Center Map On: Latitude 40.7128, Longitude -74.0060
Recommended Zoom: 10 for city view

🎯 使用示例

安装后,您可以向VS Code Copilot提出以下问题:

🌡️ 基本天气查询:

  • “伦敦的天气怎么样?”
  • “给我东京的综合天气数据”
  • “向我展示纽约的详细现状”

📅 预测查询:

  • “巴黎的5天天气预报是什么?”
  • “给我本周西雅图的天气预报”
  • “给我看柏林的三天天气预报”

🌬️ 空气质量与健康:

  • “北京的空气质量怎么样?”
  • “检查德里的污染水平”
  • “洛杉矶的空气质量安全吗?”

☀️ 阳光和紫外线安全:

  • “悉尼的紫外线指数是多少?”
  • “我今天在迈阿密需要防晒霜吗?”
  • “检查凤凰城户外活动的阳光安全”

🌍 多城市比较:

  • 比较伦敦、巴黎和柏林的天气
  • “哪个城市的天气更好:迈阿密还是圣地亚哥?”
  • “显示东京、首尔和曼谷的天气比较”

🚨 天气警报:

  • “佛罗里达州有天气预警吗?”
  • “查看德克萨斯州的恶劣天气警报”
  • “给我看东海岸的风暴警报”

🌅 天文学与计时:

  • “莫斯科的太阳什么时候升起?”
  • “夏威夷的日落是什么时候?”
  • “给我看斯德哥尔摩的天文数据”

📊 天气分析:

  • “给我芝加哥的天气统计数据”
  • “显示丹佛过去24小时的天气趋势”
  • “分析旧金山的天气模式”

🗺️ 天气图:

  • “我如何访问达拉斯的气象雷达?”
  • “显示波特兰的天气地图信息”
  • “获取太平洋西北部的降水图数据”

💡 高级使用示例:

旅行计划: “我计划下周去罗马旅行。给我看看天气预报、空气质量和紫外线指数。”

户外活动策划: “比较奥斯汀、纳什维尔和丹佛之间的天气状况,举办一场户外音乐会。”

健康与安全: “检查洛杉矶的空气质量和紫外线指数——我有呼吸道问题,需要安全的户外运动条件。”

农业/园艺: “给我看波特兰的详细天气统计数据和预报——我需要计划我的花园浇水时间表。”

摄影/拍摄: “给我约塞米蒂的日出/日落时间和天气条件,让我拍张照片。”

🛠️ 发展

先决条件

  • Node.js(>=18.x)
  • npm(>=9.x)
  • OpenWeatherMap API密钥

地方发展

# Install dependencies
npm install

# Build the project
npm run build

# Start in development mode (with auto-rebuild)
npm run dev

# Test the server
npm start

# Generate install URLs for your own use
npm run install-urls

# Get manual configuration for VS Code settings
npm run config

项目结构

mcp-weather-server/
├── .vscode/
│   ├── settings.json           # Pre-configured MCP settings (user-specific)
│   ├── settings.template.json  # Template for settings.json
│   ├── tasks.json              # VS Code tasks for easy setup
│   ├── inputs.json             # Input prompts for API key
│   ├── launch.json             # Debug configuration
│   └── extensions.json         # Recommended extensions
├── dist/                       # Compiled JavaScript (generated)
├── index.ts                    # Main server code
├── mcp-config.json            # MCP configuration template
├── install.html               # Beautiful one-click install page
├── generate-install-urls.js   # Script to generate install URLs
├── setup.bat                  # Windows setup script
├── setup.sh                   # Unix setup script
├── .env                       # Environment variables (user-specific)
├── .gitignore                 # Git ignore rules
└── package.json

🔧 配置

服务器使用环境变量进行配置:

  • OPENWEATHER_API_KEY 或 API_KEY:您的OpenWeatherMap API密钥(必需)

📡 完整的API参考资料

可用工具

🌡️ get-weather

通过综合数据增强当前天气

参数:

  • city (string):要获取天气的城市名称

退货:

  • 带有表情符号指示灯的详细温度
  • 带图标的天气状况
  • 湿度、风速、能见度
  • 压力、云量、最低/最高温度
  • 日出/日落时间
  • 地理坐标

📅 get-forecast

5天天气预报及详细预报

参数:

  • city (string):要获取预测的城市名称
  • days (数字,可选):显示的天数(1-5,默认值:5)

退货:

  • 带有表情符号的每日温度范围
  • 每日天气状况
  • 湿度、风和云层覆盖
  • 按天组织,格式清晰

🌬️ get-air-quality

空气质量指数和污染数据

参数:

  • city (string):获取空气质量的城市名称

退货:

  • 总体空气质量指数(1-5分)
  • 详细的污染物水平(CO、NO、NO₂, O₃, SO₂,PM2.5、PM10、NH₃)
  • 基于空气质量指数的健康建议
  • 颜色编码质量指示器

☀️ get-uv-index

紫外线指数和防晒信息

参数:

  • city (string):要获取紫外线指数的城市名称

退货:

  • 当前紫外线指数值
  • 安全级别描述(低/中/高/极高/极端)
  • 具体的防晒建议
  • 基于时间的安全建议

🌍 compare-weather

比较多个城市的天气

参数:

  • cities (字符串数组):要比较的城市名称数组(2-5个城市)

退货:

  • 并排天气比较
  • 每个城市的温度、条件、湿度
  • 用于快速视觉参考的天气表情符号
  • 有序的显示便于比较

🚨 get-weather-alerts

恶劣天气警报和警告

参数:

  • city (string):要获取天气警报的城市名称

退货:

  • 主动天气预警和警报
  • 警报严重性和时间
  • 天气威胁的详细描述
  • 官方来源归因

🌅 get-astronomy

详细的日出、日落和天文数据

参数:

  • city (string):要获取天文数据的城市名称

退货:

  • 日出和日落时间
  • 日长计算
  • 当前昼夜状态
  • 直到下一个日出/日落的时间
  • 地理坐标和时区
  • 月相信息(附加API)

📊 get-weather-stats

综合天气统计和趋势

参数:

  • city (string):要获取天气统计数据的城市名称

退货:

  • 当前天气状况概述
  • 24小时温度趋势和范围
  • 压力和湿度模式
  • 天气趋势指标(上升/下降)
  • 近期情况统计分析

🗺️ get-weather-maps

天气图信息和访问URL

参数:

  • city (string):要获取地图信息的城市名称

退货:

  • 测绘地理坐标
  • 可用天气层类型
  • 天气图块的直接URL
  • 映射库的集成说明
  • 推荐的缩放级别和中心点

API响应格式

所有工具都以以下格式返回响应:

{
  "content": [{
    "type": "text",
    "text": "Formatted weather information with emojis and detailed data"
  }]
}

错误处理

服务器处理各种错误情况:

  • 404错误:未找到城市-建议检查拼写
  • 401错误:无效的API密钥-提示密钥配置检查
  • 网络错误:超时或连接问题-建议重试
  • API限制:某些功能需要高级OpenWeatherMap订阅

🆘 故障排除

常见问题

  1. “未定义的输入变量'openweatherApiKey'”错误:

    • 当VS Code无法解析输入变量时,就会发生这种情况
    • 解决方案:复制 .vscode/settings.template.json 向 .vscode/settings.json 并替换 YOUR_API_KEY_HERE 使用您的实际API密钥
    • 或者创建一个 .env 提交 OPENWEATHER_API_KEY=your_api_key_here
  2. “需要API密钥”错误:

    • 确保已在环境变量或 .env 文件
    • 请在检查您的API密钥是否有效并处于活动状态 OpenWeatherMap
  3. “找不到模块”错误:

    • 跑 npm run build 编译TypeScript
    • 确保所有依赖项都已安装 npm install
  4. MCP服务器未出现在VS代码中:

    • 检查MCP配置中的路径是否正确
    • 确保 dist/index.js 构建后文件已存在
    • 添加服务器配置后重新启动VS Code
  5. 一键安装按钮不起作用:

    • 如果在浏览器中打开按钮而不是VS代码:
      • MCP扩展可能未安装或URL处理程序未注册
      • 改用方法1(手动配置)-它更可靠
      • 跑 npm run config 获取要复制的确切配置
    • 确保您安装了VS Code或VS Code Insider
    • 在尝试安装之前,请确保您的项目已构建

获取帮助

🎉 接下来是什么?

安装后,您可以:

  • 直接在VS Code聊天中询问天气问题
  • 将天气数据集成到您的编码工作流程中
  • 使用实时数据构建天气感知应用程序
  • 探索其他MCP服务器以增强功能

📄 许可证

MIT许可证-您可以在自己的项目中自由使用!


由以下材料制成❤️ VS Code和MCP社区