天气数据服务

Weather MCP 是一个实时天气情报服务,通过集成外部API(如国家气象局)提供天气警报、预报和语言模型摘要功能,适用于需要实时天气数据的应用场景。

  • by Clement-Okolo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Clement-Okolo/Weather-MCP

使用说明

🌦️ 天气MCP服务器和客户端

欢迎来到 天气模型上下文协议(MCP)项目这个项目通过与国家气象局(NWS)等外部API集成,提供实时天气信息。它是使用……构建的(注:原文在此处截断,未提供具体构建技术或工具,因此翻译也相应保留此开放性) FastMCP 框架支持服务器和客户端之间的交互。

🚀 功能

  • 天气预警获取美国任何州的天气警报。
  • 天气预报获取特定地点的详细天气预报。
  • 异步操作完全异步,性能卓越。
  • 模块化设计服务器、客户端和实用程序逻辑的清晰分离。
  • 大型语言模型(LLM)集成使用语言模型(DistilGPT-2)对天气数据进行总结。

📂 项目结构

  • **server.py**主要服务器文件,用于注册获取天气警报和预报的工具。
  • **client.py**一个用于与服务器交互的命令行客户端。
  • **app.py**一个基于Streamlit的网页应用,提供用户友好的交互体验。
  • **agent.py**一个集成语言模型以总结天气数据的高级客户端。

🛠️ 安装指南

  1. 克隆仓库:

    git clone <repository-url>
    cd mcp
    
  2. 安装依赖项: 确保已安装 Python 3.8 或更高版本,然后运行:

    pip install -r requirements.txt
    
  3. 运行服务器: 启动FastMCP服务器:

    python server.py
    
  4. 与客户互动: 使用命令行客户端或Streamlit应用程序与服务器进行交互。

🖥️ 使用方法

命令行客户端

  1. 列出可用工具:
    python client.py list_tools
    
  2. 获取警报:
    python client.py get_alerts --state CA
    
  3. 获取天气预报:
    python client.py get_forecast --latitude 34.05 --longitude -118.25
    

Streamlit 网页应用

  1. 运行应用程序:
    streamlit run app.py
    
  2. 使用侧边栏选择操作,如“列出工具”、“获取警报”或“获取预报”

大型语言模型(LLM)集成

  1. 使用语言模型总结天气数据:
    python agent.py interact_with_llm --llm_action get_alerts --state CA
    python agent.py interact_with_llm --llm_action get_forecast --latitude 34.05 --longitude -118.25
    

🎥 视频演示

观看Weather MCP项目的快速演示:

[天气MCP演示]

🌐 外部依赖

  • FastMCP构建MCP服务器和客户端的框架。
  • **httpx(注:httpx通常指的是一种基于HTTP协议的工具或框架,用于执行各种HTTP请求和操作,但具体含义需根据上下文确定,此处仅提供基本翻译)**用于发起异步HTTP请求。
  • Streamlit用于构建网页应用。
  • 变形金刚用于集成DistilGPT-2语言模型。

📋 备注

  • 在使用客户端或网页应用之前,请确保服务器正在运行。
  • 遵循异步编程模型,以避免阻塞操作。

❤️ 致谢

  • FastMCP 用于服务器-客户端框架。
  • 美国国家气象局(NWS) 为提供天气数据。
  • Hugging Face Transformers(拥抱脸变换器,或直译为“拥抱脸的模型转换工具”,但通常根据上下文简化为“Hugging Face 模型转换工具”或保持原名以体现其特定品牌和技术含义) 对于DistilGPT-2模型。

🤝 贡献

我们欢迎对Weather MCP项目做出贡献!以下是您如何帮助的方式:

  1. 报告错误如果您遇到任何问题,请在GitHub仓库中提交一个issue。
  2. 建议功能有新功能的想法吗?通过提交功能请求来告诉我们吧。
  3. **提交拉取请求(Pull Requests)**克隆该仓库,进行更改,然后提交拉取请求以供审核。
  4. 改进文档帮助我们通过修正拼写错误、添加示例或阐明说明来完善文档。

贡献指南

  • 遵循项目的编码规范和结构。
  • 确保所有新代码都有相应的测试覆盖。
  • 使用清晰简洁的提交信息。
  • 在提交之前,务必彻底测试你的更改。

享受探索天气的乐趣,与 天气气象控制面板(或简称:天气控制面板,MCP在此处可能代表Meteorological Control Panel,但具体翻译可能根据上下文有所调整)!🌤️