Met Mcp

io.github.trondbjoroyPublished by GitHub account trondbjoroyv0.2.0Updated Oct 24, 2026

Weather forecasts from MET Norway (Yr): geocoding plus hourly forecasts worldwide.

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

An MCP server for MET Norway (Yr) weather data: geocoding, hourly forecasts, nowcast, alerts, sun times, ocean forecasts and historical observations.

What you can do
Find coordinates for a place name via a free geocoder, then use them with the other tools. Get hourly forecasts worldwide, with best coverage in the Nordics, plus radar-based minute precipitation for the next two hours in the Nordic region. Retrieve official Norwegian danger warnings, optionally for all of Norway, and compute sunrise, sunset and solar noon for any date and place. Get wave height, wave direction and sea temperature along the Norwegian coast. Look up the nearest official weather stations and pull daily historical observations from the Frost archive, some going back over a century.
When to use it
Useful when an assistant should answer weather questions, plan around rain or warnings in Norway and the Nordics, or check historical observations from a specific station. Less suited to detailed weather work outside the Nordic region beyond basic hourly forecasts and sun times.
Requirements
Runs as a remote Streamable HTTP endpoint or locally over stdio from the npm package met-mcp (Node.js). The two Frost tools need a free Frost client ID set as the FROST_CLIENT_ID environment variable; the other tools need no credentials. Network access to MET Norway and Open-Meteo APIs. Setting MET_USER_AGENT with contact info is requested by MET's terms.
Before you install
The historical and station tools require a Frost client ID, a credential to keep private. Requests go to third-party APIs (MET Norway, Open-Meteo), and MET's terms ask for an identifying User-Agent with contact details and credit to MET Norway when data is shown. Alert text is in Norwegian. The project describes itself as a learning project.

Installation

In SourceWeft

  1. Open Met Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.trondbjoroy%2Fmet-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "met": {
      "type": "http",
      "url": "https://met-mcp.met-mcp-worker.workers.dev/mcp"
    }
  }
}

README

met-mcp

An MCP server for weather forecasts from MET Norway (Yr). Built as a learning project.

Available three ways:

  • npm: met-mcp — run locally over stdio
  • Remote: https://met-mcp.met-mcp-worker.workers.dev/mcp — Streamable HTTP on Cloudflare Workers, add it as a claude.ai connector
  • MCP registry: io.github.trondbjoroy/met-mcp

Tools

  • geocode_location(name, count) — find coordinates for a place name. Uses the free Open-Meteo geocoder, because MET has no geocoding API.
  • get_forecast(latitude, longitude, hours) — hourly forecast from MET Locationforecast 2.0. Works worldwide, best in the Nordics.
  • get_nowcast(latitude, longitude) — radar-based precipitation for the next 2 hours. Nordics only.
  • get_weather_alerts(latitude?, longitude?) — official Norwegian danger warnings (MetAlerts). Omit coordinates for all of Norway.
  • get_sun_events(latitude, longitude, date, utc_offset) — sunrise, sunset, and solar noon. Worldwide.
  • get_ocean_forecast(latitude, longitude, hours) — wave height and sea temperature along the Norwegian coast.
  • find_weather_stations(latitude, longitude, count) — nearest official weather stations (Frost).
  • get_historical_weather(station_id, from, to, elements) — daily historical observations from the Frost archive; some stations go back over 100 years.

The two Frost tools need a free client ID from https://frost.met.no/auth/requestCredentials.html, set as the FROST_CLIENT_ID env var (or a Cloudflare secret for the worker). The other tools need nothing.

Tool definitions live in src/tools.ts, shared between the stdio server and the worker.

Build and test

bash
npm installnpm run buildnpm test

The test spawns the server over stdio and calls both tools against the live APIs.

Use with Claude Code

bash
claude mcp add met-weather -- node C:\Users\trond\met-mcp\dist\index.js

Then ask Claude: "What is the weather in Bergen tomorrow?"

MET terms of service

  • Send an identifying User-Agent with contact info. Set the MET_USER_AGENT env var, e.g. met-mcp/0.1.0 [email protected].
  • Send at most 4 decimals in coordinates. The server rounds for you.
  • Data license: NLOD / CC BY 4.0. Credit MET Norway when you show the data.

Remote version

worker/ holds the Cloudflare Workers deployment: the same two tools served over MCP Streamable HTTP with createMcpHandler (MCP SDK v2). Develop with npm run dev, ship with npm run deploy (both from worker/).

How it works

  • src/index.ts is the whole server. It speaks MCP over stdio: JSON-RPC on stdin/stdout.
  • Each tool declares an input schema with Zod. The MCP client (Claude) reads the schema and validates arguments.
  • Tool results are content blocks. This server returns JSON as text, trimmed to what an LLM needs — the raw MET response has ~90 timesteps with far more fields.
  • Never write to stdout with console.log. It corrupts the protocol stream. Log to stderr.

Source: README.md at commit c147c1b

Tools

8

geocode_location

Geocode a place name

Find latitude and longitude for a place name. Use the coordinates with the other tools.

Parametersnamerequiredcount

get_forecast

Get weather forecast

Get an hourly weather forecast from MET Norway (Yr) for a coordinate. Works worldwide, best coverage in the Nordics.

Parametershourslatituderequiredlongituderequired

get_nowcast

Get precipitation nowcast

Minute-by-minute precipitation for the next 2 hours, radar-based. Nordic region only. Answers 'do I need an umbrella right now?'

Parameterslatituderequiredlongituderequired

get_weather_alerts

Get weather alerts

Official danger warnings (wind, flood, ice, forest fire...) from MET Norway. Covers Norway and its waters. Omit coordinates to get all current alerts. Alert text is in Norwegian.

Parameterslatitudelongitude

get_sun_events

Get sunrise and sunset

Sunrise, sunset, and solar noon for a coordinate and date. Works worldwide.

Parametersdaterequiredlatituderequiredlongituderequiredutc_offset

get_ocean_forecast

Get ocean forecast

Wave height, wave direction, and sea temperature. Covers the Norwegian coast and nearby seas.

Parametershourslatituderequiredlongituderequired

find_weather_stations

Find weather stations

Find the nearest official weather stations (Frost). Use the station id (e.g. SN50540) with get_historical_weather.

Parameterscountlatituderequiredlongituderequired

get_historical_weather

Get historical weather

Daily historical observations from a weather station (Frost archive, some stations go back over 100 years). Find station ids with find_weather_stations.

Parameterstorequiredfromrequiredelementsstation_idrequired

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts