Skip to main content
Glama

Weather MCP Server

A Model Context Protocol (MCP) server that provides weather data from the Open-Meteo API.

Overview

This MCP server fetches weather data from the Open-Meteo API endpoint and communicates over HTTP using the Streamable HTTP transport.

https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&current=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m

Features

  • HTTP Transport: Communicate over HTTP for remote access

  • Current Weather: Get current temperature and wind speed

  • Hourly Forecast: Access hourly temperature, relative humidity, and wind speed data

  • Flexible Coordinates: Query weather for any latitude/longitude coordinates

  • Session Management: Supports multiple concurrent client sessions

Installation

  1. Install dependencies:

npm install
  1. Build the server:

npm run build
  1. Start the server:

node build/index.js

The server will start on http://localhost:3000 by default. You can customize the port:

PORT=8080 node build/index.js

Endpoints

  • POST /mcp - Main MCP endpoint for tool calls and requests

  • GET /mcp - Server-Sent Events (SSE) endpoint for streaming

  • DELETE /mcp - Close session endpoint

  • GET /health - Health check endpoint

Tools

get_weather

Fetches current weather and hourly forecast data for specified coordinates.

Parameters:

  • latitude (number): Latitude coordinate (e.g., 52.52 for Berlin)

  • longitude (number): Longitude coordinate (e.g., 13.41 for Berlin)

Returns:

  • Current temperature (°C)

  • Current wind speed (km/h)

  • Hourly forecast data arrays

  • Complete raw API response

Usage with MCP Clients

HTTP Client (Recommended)

Use the provided HTTP client to connect to the running server:

# Start the server in one terminal node build/index.js # Run the client in another terminal node mcp-http-client.js

Or create your own HTTP client using the MCP SDK:

import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; const client = new Client( { name: "my-client", version: "1.0.0", }, { capabilities: {} } ); const transport = new StreamableHTTPClientTransport( new URL("http://localhost:3000/mcp") ); await client.connect(transport); // List tools const tools = await client.listTools(); // Call a tool const result = await client.callTool({ name: "get_weather", arguments: { latitude: 47.6162, longitude: -122.0356 }, });

VS Code

Add to your .vscode/mcp.json:

{ "servers": { "weather-mcp-server": { "type": "http", "url": "http://localhost:3000/mcp" } } }

Claude Desktop

The HTTP server can be accessed by any MCP client that supports HTTP transport. Configure your client to connect to:

http://localhost:3000/mcp

Example Queries

Once connected to an MCP client, you can ask questions like:

  • "What's the current weather in Berlin?" (latitude: 52.52, longitude: 13.41)

  • "Get weather forecast for San Francisco" (latitude: 37.77, longitude: -122.42)

  • "Show me the hourly temperature forecast for Tokyo" (latitude: 35.68, longitude: 139.65)

Development

The server is built using:

API Reference

Weather data is sourced from Open-Meteo, a free weather API that provides:

  • Real-time weather data

  • Hourly forecasts

  • No API key required

License

ISC

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

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/gmailhasan/mcpexample'

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