weather-briefing-mcp

snowprint/weather-briefing-mcp

3.2

If you are the rightful owner of weather-briefing-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Weather Briefing MCP Server is designed to fetch weather briefing information from the China Meteorological Administration.

Tools
3
Resources
0
Prompts
0

Weather Briefing MCP Server

一个用于获取中国气象局天气简报信息的MCP服务器。

功能特性

  • 获取当前的台风预警信息(仅在3天内有预警信息发布时返回)
  • 获取当前的每日天气公报
  • 获取当前的重要天气提示
  • 自动将网页内容转换为Markdown格式
  • 文件管理(保存在项目 temp 目录,每次执行前清理)
  • 自动下载并保存图片到本地
  • 智能内容清洗(移除无意义字符、HTML实体等)

数据源

  • 中央气象台 nmc.cn

快速开始

一键安装(推荐)

./setup.sh

脚本会自动创建虚拟环境并安装依赖,完成后会显示配置信息。

Cherry Studio 配置

推荐方式(使用启动脚本):

  • 命令: /完整路径/weather-briefing/start-mcp.sh
  • 参数: 留空

或者直接使用 venv Python:

  • 命令: /完整路径/weather-briefing/venv/bin/python
  • 参数: ["/完整路径/weather-briefing/wb_mcpserver.py"]

Claude Desktop 配置

推荐方式(使用启动脚本):

{
  "mcpServers": {
    "weather-briefing": {
      "command": "/完整路径/weather-briefing/start-mcp.sh"
    }
  }
}

或者直接使用 venv Python:

{
  "mcpServers": {
    "weather-briefing": {
      "command": "/完整路径/weather-briefing/venv/bin/python",
      "args": ["/完整路径/weather-briefing/wb_mcpserver.py"]
    }
  }
}

使用方法

配置完成后,在 Cherry Studio 或 Claude Desktop 中可以:

  • 询问:"请获取台风预警信息" - 调用 get_typhoon_warning 工具
  • 询问:"请获取每日天气公报" - 调用 get_daily_weather_briefing 工具
  • 询问:"请获取重要天气提示" - 调用 get_important_bulletin 工具

每个工具都会返回独立的 Markdown 格式内容,包含文字和本地图片。

测试

# 测试核心功能
python3 test_server.py

# 测试完整流程
python3 run_server.py

故障排除

Connection closed 错误

说明依赖未安装或脚本无法执行。解决方案:

  • 运行 ./setup.sh 创建虚拟环境并安装依赖
  • 或手动安装:pip3 install -r requirements.txt

为什么要使用虚拟环境?

  • macOS 系统保护了系统 Python,不允许直接安装包
  • 虚拟环境是 Python 开发的最佳实践,避免包冲突
  • 使用 start-mcp.sh 脚本可以简化配置

找不到命令

  • 检查路径是否正确(使用绝对路径)
  • 确保脚本有执行权限:chmod +x start-mcp.sh

网络问题

  • 确保能够访问中国气象局网站
  • 检查防火墙设置

技术细节

可用工具

  • get_typhoon_warning: 获取台风预警信息(仅返回3天内发布的信息)
  • get_daily_weather_briefing: 获取每日天气公报
  • get_important_bulletin: 获取重要天气提示

特殊处理逻辑

  • 台风信息只有在3天内发布时才会返回,避免过时信息
  • 文件保存在项目 temp 目录,图片按类型保存在 temp/attachments/{typhoon|daily|bulletin} 目录
  • 图片使用 MD5 命名,防止冲突
  • 每次执行前会清理 temp 目录,保留最新数据
  • 自动提取网页正文内容,过滤导航、广告等无关信息
  • 智能清洗 Markdown 内容:
    • 替换 HTML 实体(  等)
    • 移除多余的星号和空白行
    • 自动添加标题格式

文件结构

weather-briefing/
├── wb_mcpserver.py          # MCP 服务器主程序
├── start-mcp.sh             # 启动脚本(推荐使用)
├── setup.sh                 # 一键安装脚本
├── requirements.txt         # Python 依赖
├── venv/                    # 虚拟环境目录
└── temp/                    # 临时文件目录
    ├── typhoon.md           # 台风预警 Markdown
    ├── daily.md             # 每日天气公报 Markdown
    ├── bulletin.md          # 重要天气提示 Markdown
    └── attachments/         # 图片目录
        ├── typhoon/         # 台风图片
        ├── daily/           # 每日天气图片
        └── bulletin/        # 重要天气图片

依赖项

  • mcp: MCP协议支持
  • httpx: HTTP客户端
  • beautifulsoup4: HTML解析
  • markitdown: HTML到Markdown转换

开发说明

如需修改或扩展功能:

  1. 修改 WEATHER_SOURCES 字典添加新的数据源
  2. 调整 extract_main_content 方法改进内容提取
  3. 修改 is_typhoon_recent 方法调整台风信息的时效性判断
  4. 调整 clean_markdown 方法自定义内容清洗规则