Skip to main content
Glama
gmailhasan

Weather MCP Server

by gmailhasan

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

Related MCP server: Weather MCP Server

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

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time, historical, and forecasted weather data for any location worldwide using the Open-Meteo API. It includes specialized tools for agricultural growing conditions, weather alerts, and up to 16 days of forecasts across multiple transport modes.
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides weather data including current conditions, daily forecasts up to 16 days, and hourly forecasts up to 7 days, using the free Open-Meteo API with no API key required.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time and historical weather data for any city worldwide, including forecasts, air quality, and marine conditions, using the free Open-Meteo API.
    5 npm
    MIT