Skip to main content
Glama
pro-gramming

Weather MCP Server

by pro-gramming
README.md
# Weather App

A Python-based weather application that provides weather information using the National Weather Service (NWS) API. This project is built with modern Python tools and supports both synchronous and asynchronous HTTP requests.

## Features

- šŸŒ¤ļø Real-time weather data from National Weather Service API
- šŸš€ Built with FastMCP for efficient server communication
- šŸ“” HTTP client support with httpx
- šŸ Modern Python 3.13+ compatibility
- šŸ”§ Easy setup and configuration

## Prerequisites

- Python 3.13 or higher
- [uv](https://github.com/astral-sh/uv) (recommended) or pip for package management

## Installation

1. **Clone the repository:**
   ```bash
   git clone https://github.com/pro-gramming/weather-mcp-server.git
   cd weather
   ```

2. **Install dependencies:**
   
   Using uv (recommended):
   ```bash
   uv sync
   ```
   
   Using pip:
   ```bash
   pip install -e .
   ```

## Project Structure

```
weather/
ā”œā”€ā”€ main.py          # Main application entry point
ā”œā”€ā”€ weather.py       # Core weather functionality and API integration
ā”œā”€ā”€ pyproject.toml   # Project configuration and dependencies
ā”œā”€ā”€ README.md        # This file
└── uv.lock          # Locked dependency versions
```

## Dependencies

- **httpx** (>=0.28.1): Modern HTTP client for Python with async support
- **mcp[cli]** (>=1.9.4): FastMCP server framework for efficient communication

## Usage

### Basic Usage

Run the main application:
```bash
python main.py
```

### Weather API Integration

The project is set up to integrate with the National Weather Service API:

```python
# Example usage (to be implemented)
from weather import get_weather_data

# Get weather for specific coordinates
weather_info = await get_weather_data(latitude=40.7128, longitude=-74.0060)
```

## API Configuration

The application is configured to use the National Weather Service API:

- **Base URL**: `https://api.weather.gov`
- **User Agent**: `weather-app/1.0`

## Development

### Setting up the development environment

1. Install development dependencies:
   ```bash
   uv sync --dev
   ```

2. Run the application:
   ```bash
   python main.py
   ```

### Project Configuration

The project uses `pyproject.toml` for configuration, which includes:
- Python version requirement (>=3.13)
- Project metadata
- Dependencies specification


## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- [National Weather Service](https://www.weather.gov/) for providing the weather API
- [httpx](https://www.python-httpx.org/) for the excellent HTTP client library
- [FastMCP](https://github.com/modelcontextprotocol/python) for the server framework
- [Official MCP Server](https://github.com/modelcontextprotocol/quickstart-resources/tree/main/weather-server-python) from mcp documenation.