Weather-MCP

Clement-Okolo/Weather-MCP

3.2

If you are the rightful owner of Weather-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 henry@mcphub.com.

The Weather Model Context Protocol (MCP) Project provides real-time weather intelligence by integrating with external APIs like the National Weather Service (NWS) using the FastMCP framework.

Tools
2
Resources
0
Prompts
0

🌦️ Weather MCP Server and Client

Welcome to the Weather Model Context Protocol (MCP) Project! This project provides real-time weather intelligence by integrating with external APIs like the National Weather Service (NWS). It is built using the FastMCP framework and supports both server and client interactions.

🚀 Features

  • Weather Alerts: Fetch weather alerts for any US state.
  • Weather Forecasts: Get detailed weather forecasts for specific locations.
  • Asynchronous Operations: Fully asynchronous for high performance.
  • Modular Design: Clean separation of server, client, and utility logic.
  • LLM Integration: Summarize weather data using a language model (DistilGPT-2).

📂 Project Structure

  • server.py: The main server file that registers tools for fetching weather alerts and forecasts.
  • client.py: A command-line client to interact with the server.
  • app.py: A Streamlit-based web app for user-friendly interaction.
  • agent.py: An advanced client integrating a language model for summarizing weather data.

🛠️ Setup Instructions

  1. Clone the Repository:

    git clone <repository-url>
    cd mcp
    
  2. Install Dependencies: Ensure Python 3.8+ is installed, then run:

    pip install -r requirements.txt
    
  3. Run the Server: Start the FastMCP server:

    python server.py
    
  4. Interact with the Client: Use the command-line client or the Streamlit app to interact with the server.

🖥️ Usage

Command-Line Client

  1. List Available Tools:
    python client.py list_tools
    
  2. Fetch Alerts:
    python client.py get_alerts --state CA
    
  3. Fetch Forecasts:
    python client.py get_forecast --latitude 34.05 --longitude -118.25
    

Streamlit Web App

  1. Run the app:
    streamlit run app.py
    
  2. Use the sidebar to select actions like "List Tools," "Get Alerts," or "Get Forecast."

LLM Integration

  1. Summarize weather data using the language model:
    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
    

🎥 Video Demonstration

Watch a quick demonstration of the Weather MCP Project in action:

[Weather MCP Demo]

🌐 External Dependencies

  • FastMCP: Framework for building MCP servers and clients.
  • httpx: For making asynchronous HTTP requests.
  • Streamlit: For building the web app.
  • Transformers: For integrating the DistilGPT-2 language model.

📋 Notes

  • Ensure the server is running before using the client or web app.
  • Follow the asynchronous programming model to avoid blocking operations.

❤️ Acknowledgments

  • FastMCP for the server-client framework.
  • National Weather Service (NWS) for providing weather data.
  • Hugging Face Transformers for the DistilGPT-2 model.

🤝 Contributing

We welcome contributions to the Weather MCP Project! Here's how you can help:

  1. Report Bugs: If you encounter any issues, please open an issue on the GitHub repository.
  2. Suggest Features: Have an idea for a new feature? Let us know by creating a feature request.
  3. Submit Pull Requests: Fork the repository, make your changes, and submit a pull request for review.
  4. Improve Documentation: Help us enhance the documentation by fixing typos, adding examples, or clarifying instructions.

Contribution Guidelines

  • Follow the project's coding conventions and structure.
  • Ensure all new code is covered by tests.
  • Use clear and concise commit messages.
  • Test your changes thoroughly before submitting.

Enjoy exploring the weather with Weather MCP! 🌤️