Skip to main content
Glama
spraveenitpro

mcp-weather-server

MCP Weather Server Tutorial

This project demonstrates how to build a simple Model Context Protocol (MCP) server that provides weather information for any city using the Open-Meteo API.

Features

  • MCP server using @modelcontextprotocol/sdk

  • One tool: get-weather (returns weather for a given city)

  • Uses geocoding and weather APIs from Open-Meteo

  • Returns weather data in JSON format

How It Works

  1. The MCP server exposes a tool called get-weather.

  2. When a city name is provided, the server:

    • Uses Open-Meteo's geocoding API to get latitude and longitude for the city.

    • Fetches current weather data for those coordinates.

    • Returns the weather data as a JSON response.

  3. If the city is not found, a helpful error message is returned.

Prerequisites

  • Node.js (v18+ recommended)

  • MCP Inspector (or any MCP client)

Setup

  1. Clone this repository or copy the files to your workspace.

  2. Install dependencies:

    npm install
    npm install node-fetch
  3. Update your main.ts to import fetch from node-fetch if running in Node.js:

    import fetch from "node-fetch";
  4. Start the MCP server using MCP Inspector:

    npx -y @modelcontextprotocol/inspector npx tsx main.ts

Usage

  • Open MCP Inspector and connect to your server.

  • Use the get-weather tool, enter a city name (e.g., "Paris", "Bangalore", "Chennai").

  • The server will respond with the current weather data for that city.

Example Tool Response

{
  "latitude": 13,
  "longitude": 80.125,
  "current": {
    "temperature_2m": 30,
    "relative_humidity_2m": 66,
    "wind_speed_10m": 14.9,
    "cloud_cover": 94,
    "apparent_temperature": 33.2
  }
}

Troubleshooting

  • If you see fetch is not defined, make sure you have installed and imported node-fetch.

  • If the city is not found, check for typos or try a nearby major city.

License

MIT

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/spraveenitpro/mcp-weather-server'

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