Skip to main content
Glama

Weather MCP Server

by yongsingyou

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

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.

  1. Features
    1. Installation
      1. Usage
        1. Running the Server
        2. Running the Client
        3. Available Cities
        4. Example Usage
      2. API Reference
        1. Tools
        2. Resources
      3. Extending the Example
        1. Notes

          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