A minimal MCP (Model Context Protocol) server exposing weather tools, backed by the free Open-Meteo API. Built as a practice project for MCP + Claude Code.
get_current_weather({ city })— current temperature, windspeed, and conditions for a city.get_forecast({ city, days? })— daily max/min temperature and conditions fordaysdays (1-7, default 3).
No API key is required.
npm install
npm run buildRuns the unit tests for the pure formatting/mapping logic in src/weatherFormat.ts:
npm testLaunches an interactive web UI to call tools directly, without Claude Code:
npm run inspectorThis project's .mcp.json registers the server as weather, running node dist/index.js over stdio. Open this project in Claude Code (or restart it here), confirm weather shows as connected (/mcp), and ask a weather-related question — Claude Code will invoke the tools as needed.
src/weatherFormat.ts— pure formatting/mapping logic (weather codes, day clamping, text formatting), unit tested.src/openMeteo.ts— thinfetchwrappers around Open-Meteo's geocoding and forecast APIs.src/index.ts— MCP server entrypoint: registersget_current_weatherandget_forecast, connects over stdio.