Skip to main content
Glama
mcp-weather-service

mcp-weather-service

by VasimHayat

mcp-weather-service

An MCP server that gives an AI assistant live weather data. It speaks JSON-RPC over stdio — there is no HTTP port and nothing to open in a browser. An MCP client (Claude Desktop, Claude Code, the MCP Inspector) spawns the process and talks to it over the pipe.

Tools

Tool

Description

Source

get_current_weather

Current conditions for any location worldwide

OpenWeather

get_forecast

5-day forecast, collapsed to one line per local day

OpenWeather

get_alerts

Active alerts for a US state (two-letter code)

US National Weather Service

get_current_weather and get_forecast accept either a location name ("Tokyo", "Paris,FR") or explicit latitude/longitude, plus an optional units of metric (default) or imperial.

get_alerts is US-only and needs no API key — the NWS API is public. Alerts come from NWS rather than OpenWeather because OpenWeather only exposes them on the paid One Call 3.0 plan.

Related MCP server: Weather MCP Server

Prerequisites

Setup

npm install
npm run build

build/ is gitignored, so a fresh clone must run npm run build before the server will start.

Configuration

The key is read from the OPENWEATHER_API_KEY environment variable and is never hardcoded.

Note that the MCP SDK does not pass your shell environment to the server it spawns — on Windows it copies only an allowlist (PATH, APPDATA, TEMP, …). Setting the variable in your terminal is therefore not enough for MCP clients; it must be handed over explicitly via an env block or the -e flag.

Copy the template and fill in your key:

cp mcp.example.json mcp.json

mcp.json is gitignored — keep your real key out of version control.

Running it

MCP Inspector

npm run inspect

Serves a web UI at http://localhost:6274. Open the URL including the MCP_INSPECTOR_API_TOKEN query parameter it prints; the token changes on every launch.

--config replaces the server command rather than supplementing it — passing both a config file and node build/index.js is an error.

For a one-shot check with no browser:

npx @modelcontextprotocol/inspector --cli --config mcp.json --server weather \
  --method tools/call --tool-name get_current_weather --tool-arg location=Tokyo

In --cli mode the server command must come before any flags. Leading with -e yields a misleading No servers found in config file.

Claude Desktop

Add the server to claude_desktop_config.json:

  • Windows — %APPDATA%\Claude\claude_desktop_config.json

  • macOS — ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["/absolute/path/to/weather-mcp/build/index.js"],
      "env": { "OPENWEATHER_API_KEY": "your-key-here" }
    }
  }
}

Use an absolute path for args. On Windows, prefer an absolute path to node.exe (e.g. C:\\Program Files\\nodejs\\node.exe) — Claude Desktop launches outside your shell, and a bare node failing to resolve is the most common reason the server never appears.

Restart Claude Desktop fully afterward (File → Exit — it stays in the tray, so closing the window does not reload the config), then ask "What's the weather in Tokyo?"

Server logs land in %APPDATA%\Claude\logs\mcp-server-weather.log.

Claude Code

claude mcp add weather -e OPENWEATHER_API_KEY=your-key-here -- node /absolute/path/to/weather-mcp/build/index.js

Scripts

Script

Action

npm run build

Compile TypeScript to build/

npm start

Run the server directly on stdio

npm run inspect

Launch the MCP Inspector against mcp.json

There is no watch mode: MCP clients execute build/index.js, so run npm run build after every change to src/ or you will keep testing stale code.

Project layout

src/index.ts        server, tool definitions, API clients
build/index.js      compiled output (gitignored)
mcp.example.json    config template — copy to mcp.json

License

ISC

Available Tools

3 tools
get_alertsA

Get active weather alerts for a US state. Only supports United States locations.

NameRequiredDescriptionDefault
stateYesTwo-letter US state code (e.g. CA, NY)
get_current_weatherB

Get the current weather conditions for any location worldwide, by city name or coordinates

NameRequiredDescriptionDefault
unitsNometric = °C and m/s (default), imperial = °F and mph
latitudeNoLatitude, used only when no location name is given
locationNoCity name, optionally with country/state code. Examples: "Tokyo", "Paris,FR", "Springfield,US-IL". Preferred over coordinates.
longitudeNoLongitude, used only when no location name is given
get_forecastA

Get a 5-day weather forecast for any location worldwide, by city name or coordinates

NameRequiredDescriptionDefault
unitsNometric = °C and m/s (default), imperial = °F and mph
latitudeNoLatitude, used only when no location name is given
locationNoCity name, optionally with country/state code. Examples: "Tokyo", "Paris,FR", "Springfield,US-IL". Preferred over coordinates.
longitudeNoLongitude, used only when no location name is given

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedget_alerts
    • First observedget_current_weather
    • First observedget_forecast

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool addresses a distinct weather data need: current conditions, forecast, and alerts. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent 'get_<resource>' pattern using snake_case, making them predictable and easy to understand.

Tool Count5/5

With only 3 tools, the server is tightly scoped and covers the essential weather service needs without unnecessary bloat.

Completeness5/5

The tool set provides comprehensive coverage of core weather information: current conditions, forecast, and alerts. There are no obvious missing operations for a basic weather service.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that provides weather information and alerts for US locations using the National Weather Service API, enabling retrieval of weather forecasts and active weather alerts.
    2
    -
  • F
    license
    B
    quality
    D
    maintenance
    An MCP server providing US National Weather Service data with tools to fetch weather alerts by state and forecasts by coordinates.
    2
    -
  • F
    license
    C
    quality
    Not graded
    maintenance
    An MCP server that provides weather alerts and forecasts using the National Weather Service API, with additional system tools for shell commands and process information.
    3
    1
    -