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 callsAdd 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.