# 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.
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pro-gramming/weather-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server