A Model Context Protocol (MCP) server that combines Met Office weather data with travel routing to recommend what to wear for your journey.
- Outfit Recommendations: Get personalised clothing suggestions based on weather conditions and your travel plans
- Weather Forecasts: Detailed hourly weather forecasts for UK locations
- Travel Information: Calculate travel time and distance between locations
- Supports multiple travel modes: walking, cycling, and driving
- Real-time UK weather data from the Met Office DataHub API
- Intelligent clothing recommendations based on temperature, precipitation, wind, and UV index
- Python 3.12 or higher
- uv package manager
- Met Office DataHub API key (register at https://datahub.metoffice.gov.uk/)
- Clone the repository:
git clone <repository-url>
cd commute_mcp- Create a virtual environment and install dependencies:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .- Set up your Met Office API key:
export MET_OFFICE_API_KEY="your-api-key-here"Start the server using stdio transport:
python -m src.serverThe server provides three tools:
Analyses your journey and provides clothing recommendations:
{
"name": "get_outfit_recommendation",
"arguments": {
"origin": "Bristol",
"destination": "Bath",
"travel_mode": "walking",
"hours_until_departure": 0
}
}Parameters:
origin(required): Starting location (e.g., "Bristol", "London Bridge")destination(required): Destination locationtravel_mode(optional): "walking", "cycling", or "driving" (default: "walking")hours_until_departure(optional): Hours until you leave, 0 for now (default: 0)
Get detailed hourly weather forecast for a UK location:
{
"name": "get_weather_forecast",
"arguments": {
"location": "Manchester",
"hours": 12
}
}Parameters:
location(required): Location name (e.g., "Bristol", "Edinburgh")hours(optional): Number of hours to forecast (default: 12)
Calculate travel time and distance:
{
"name": "get_travel_info",
"arguments": {
"origin": "London",
"destination": "Cambridge",
"mode": "driving"
}
}Parameters:
origin(required): Starting locationdestination(required): Destination locationmode(optional): "walking", "cycling", or "driving" (default: "walking")
To use this MCP server with Claude Desktop, add it to your Claude configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"commute-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/commute_mcp", "run", "python", "-m", "src.server"],
"env": {
"MET_OFFICE_API_KEY": "your-api-key-here"
}
}
}
}Then restart Claude Desktop. You can now ask Claude questions like:
- "What should I wear for a walk from Bristol to Bath?"
- "What's the weather forecast for Edinburgh for the next 6 hours?"
- "How long would it take to cycle from Manchester to Salford?"
- Geocoding: Converts location names to coordinates using OpenStreetMap's Nominatim API
- Routing: Calculates travel time and distance using OSRM (Open Source Routing Machine)
- Weather Data: Fetches hourly forecasts from the Met Office DataHub API
- Analysis: Analyses weather conditions for your journey window
- Recommendations: Generates clothing suggestions based on:
- Temperature and "feels like" temperature
- Precipitation probability
- Wind speed and gusts
- UV index
- Travel mode and duration
pytest tests/commute_mcp/
├── src/
│ ├── __init__.py
│ ├── server.py # MCP server and tool handlers
│ ├── location.py # Geocoding and routing
│ ├── weather.py # Weather data and outfit recommendations
│ └── preferences.py # User preferences management
├── tests/
│ ├── test_api.py
│ └── test_geocode.py
├── pyproject.toml
└── README.md
- Met Office DataHub: Weather forecasts for UK locations
- OSRM: Open-source routing engine for travel calculations
- Nominatim: OpenStreetMap geocoding service