Skip to main content
Glama

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 city

    • get_forecast(city, days) - Get weather forecast for 1-7 days

    • list_cities() - Get list of available cities

  • Resources: Access to weather data via URI-based resources

Installation

  1. Install dependencies:

pip install fastmcp asyncio-extras python-dateutil
  1. Or install from requirements:

pip install -r requirements.txt

Usage

Running the Server

python weather_server.py

The server will start and provide weather tools for the following cities:

  • New York

  • London

  • Tokyo

  • Sydney

Running the Client

python weather_client.py

Choose between:

  1. Demo mode - Shows example interactions

  2. Interactive mode - Allows manual testing of commands

Available Cities

The server provides mock weather data for:

  • New York

  • London

  • Tokyo

  • Sydney

Example Usage

# Get current weather weather = await get_weather("New York") # Get 5-day forecast forecast = await get_forecast("London", 5) # List all available cities cities = await list_cities()

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:

  1. Replace the MOCK_WEATHER_DATA with API calls

  2. Add API key configuration

  3. Handle API rate limits and errors

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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/yongsingyou/mcp-test'

If you have feedback or need assistance with the MCP directory API, please join our Discord server