Weather MCP Server and Client
A simple example of using fastmcp to create a weather MCP (Model Control Protocol) server and client.
Features
- Weather Server: Provides current weather and forecast data for major cities
- Weather Client: Demonstrates how to interact with the MCP server
- Tools Available:
get_weather(city)
- Get current weather for a cityget_forecast(city, days)
- Get weather forecast for 1-7 dayslist_cities()
- Get list of available cities
- Resources: Access to weather data via URI-based resources
Installation
- Install dependencies:
- Or install from requirements:
Usage
Running the Server
The server will start and provide weather tools for the following cities:
- New York
- London
- Tokyo
- Sydney
Running the Client
Choose between:
- Demo mode - Shows example interactions
- Interactive mode - Allows manual testing of commands
Available Cities
The server provides mock weather data for:
- New York
- London
- Tokyo
- Sydney
Example Usage
API Reference
Tools
get_weather(city: str)
Get current weather information for a city.
Returns:
- temperature (°C)
- humidity (%)
- condition (sunny, cloudy, rainy, etc.)
- wind_speed (km/h)
- pressure (hPa)
- timestamp
get_forecast(city: str, days: int = 3)
Get weather forecast for a city.
Parameters:
- city: City name
- days: Number of days (1-7)
Returns:
- List of daily forecasts with temperature highs/lows, conditions, etc.
list_cities()
Get list of available cities.
Returns:
- List of city names
Resources
weather://current/{city}
- Current weather data for a city
Extending the Example
To connect this to a real weather API:
- Replace the
MOCK_WEATHER_DATA
with API calls - Add API key configuration
- Handle API rate limits and errors
- Add more cities and weather parameters
Notes
- This example uses mock data for demonstration
- In production, you'd connect to a real weather API like OpenWeatherMap
- The client examples show the structure but don't make actual MCP calls
- Refer to fastmcp documentation for complete MCP protocol implementation
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Provides current weather information and forecasts for major cities through MCP tools and resources. Supports getting weather data, multi-day forecasts, and listing available cities with mock data for demonstration purposes.