mcpField
M
MCP Weather Server

MCP Weather Server

本地服务
github.com/mohaimenhasan媒体与设计065 周前更新

关于 MCP Weather Server

MCP Weather Server 是面向天气应用开发、数据分析和出行规划的 MCP 服务,可按城市提供天气及相关环境信息。它提供当前天气、预报、空气质量、紫外线、预警、天文数据和天气地图等查询工具。

主要功能

  1. 01查询当前天气与五日预报
  2. 02查看空气质量和污染物数据
  3. 03获取紫外线指数及防护建议
  4. 04比较多个城市的天气
  5. 05查询天气预警、日出日落和地图信息

适用场景

  1. 01比较多个目的地的天气以规划行程
  2. 02查询户外活动的空气质量与紫外线信息
  3. 03获取城市天气趋势用于数据分析
  4. 04查看日出日落时间以安排拍摄

MCP 相关

该 MCP 服务向 MCP 客户端提供 9 种天气查询工具,涵盖天气、预报、空气质量、紫外线、城市比较、预警、天文信息、统计和地图数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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

一个全面的模型上下文协议(MCP)服务,提供丰富的天气数据、预报、空气质量、紫外线指数等更多信息!通过 9 个强大的工具,直接在 VS Code 聊天中获取详细的天气信息。

MCP Review Certified

🚀 有何特别之处?

这不仅仅是又一个天气工具,而是一个全面的天气智能系统,可提供:

🎯 9 个强大的天气工具:
  1. 🌡️ 增强型当前天气 - 提供包含表情符号和全面数据的详细天气状况
  2. 📅 5 天天气预报 - 完整的天气预测和趋势
  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 Code 设置并使用正确的路径
  • 无需手动配置!
🎯 方法 2:手动配置(最可靠)
  1. 克隆并构建:

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

  3. 添加到 VS Code:

    • 打开 VS Code
    • 按 Ctrl+Shift+P(或在 Mac 上按 Cmd+Shift+P)
    • 输入“Preferences: Open User Settings (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 天天气预报
📅 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 天的天气预报是什么?”
  • “告诉我西雅图本周的天气预报”
  • “显示柏林未来 3 天的天气预报”
🌬️ 空气质量与健康:
  • “北京的空气质量怎么样?”
  • “查询德里的污染水平”
  • “洛杉矶的空气质量安全吗?”
☀️ 日照与紫外线安全:
  • “悉尼的紫外线指数是多少?”
  • “我今天在迈阿密需要涂防晒霜吗?”
  • “查询菲尼克斯户外活动的日晒安全信息”
🌍 多城市对比:
  • “对比伦敦、巴黎和柏林的天气”
  • “迈阿密和圣迭戈哪个城市的天气更好?”
  • “显示东京、首尔和曼谷的天气对比”
🚨 天气预警:
  • “佛罗里达州有天气预警吗?”
  • “查询德克萨斯州的恶劣天气预警”
  • “显示东海岸的风暴预警”
🌅 天文与时间:
  • “莫斯科什么时候日出?”
  • “夏威夷几点日落?”
  • “显示斯德哥尔摩的天文数据”
📊 天气分析:
  • “告诉我芝加哥的天气统计数据”
  • “显示丹佛过去 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(字符串):要查询天气的城市名称

返回:

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

未来 5 天的天气预报,包含详细预测

参数:

  • city(字符串):要查询天气预报的城市名称
  • days(数字,可选):要显示的天数(1-5,默认值:5)

返回:

  • 带表情符号的每日温度范围
  • 每日天气状况
  • 湿度、风力和云量
  • 按天整理,格式清晰
🌬️ get-air-quality

空气质量指数与污染数据

参数:

  • city(字符串):要查询空气质量的城市名称

返回:

  • 总体空气质量指数(1-5 级)
  • 详细污染物水平(CO、NO、NO₂、O₃、SO₂、PM2.5、PM10、NH₃)
  • 基于 AQI 的健康建议
  • 采用颜色编码的空气质量指示
☀️ get-uv-index

紫外线指数与日晒安全信息

参数:

  • city(字符串):要查询紫外线指数的城市名称

返回:

  • 当前紫外线指数值
  • 安全等级说明(低/中等/高/很高/极高)
  • 具体的防晒建议
  • 基于时间的安全建议
🌍 compare-weather

比较多个城市之间的天气

参数:

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

返回:

  • 并排显示的天气比较
  • 每个城市的温度、天气状况和湿度
  • 便于快速查看的天气表情符号
  • 方便比较的组织化展示
🚨 get-weather-alerts

恶劣天气警报和预警

参数:

  • city(字符串):要查询天气警报的城市名称

返回:

  • 当前有效的天气预警和警报
  • 警报严重程度和时间
  • 天气威胁的详细说明
  • 官方来源署名
🌅 get-astronomy

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

参数:

  • city(字符串):要查询天文数据的城市名称

返回:

  • 日出和日落时间
  • 白昼时长计算
  • 当前昼夜状态
  • 距离下一次日出/日落的时间
  • 地理坐标和时区
  • 月相信息(需使用额外的 API)
📊 get-weather-stats

全面的天气统计数据和趋势

参数:

  • city(字符串):要查询天气统计数据的城市名称

返回:

  • 当前天气状况摘要
  • 24 小时气温趋势和范围
  • 气压和湿度变化模式
  • 天气趋势指标(上升/下降)
  • 近期天气状况的统计分析
🗺️ get-weather-maps

天气地图信息和访问 URL

参数:

  • city(字符串):要查询地图信息的城市名称

返回:

  • 用于地图绘制的地理坐标
  • 可用的天气图层类型
  • 天气地图瓦片的直接 URL
  • 与地图类库集成的说明
  • 推荐的缩放级别和中心点
API 响应格式

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

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

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

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

🆘 故障排除

常见问题
  1. “Undefined input variable '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 key is required”错误:

    • 确认已在环境变量或 .env 文件中设置 API 密钥
    • 在 OpenWeatherMap 检查 API 密钥是否有效且处于启用状态
  3. “Module not found”错误:

    • 运行 npm run build 编译 TypeScript
    • 使用 npm install 确保已安装所有依赖项
  4. MCP 服务未在 VS Code 中显示:

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

    • 如果按钮在浏览器中打开,而不是在 VS Code 中打开:
      • 可能未安装 MCP 扩展,或未注册 URL 处理程序
      • 改用方法 1(手动配置)——这种方式更可靠
      • 运行 npm run config 获取要复制的确切配置
    • 确认已安装 VS Code 或 VS Code Insiders
    • 尝试安装前,确保项目已构建
获取帮助

🎉 接下来做什么?

安装后,你可以:

  • 在 VS Code 聊天中直接询问天气
  • 将天气数据集成到你的编码工作流中
  • 使用实时数据构建感知天气的应用
  • 探索其他 MCP 服务,扩展功能

📄 许可证

MIT License - 欢迎在你自己的项目中使用!


为 VS Code 和 MCP 社区倾情打造 ❤️

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。