met-mcp

MCP serverDev tools

Your AI can look up any place by name and get hourly weather forecasts for it, anywhere in the world. Forecasts come from MET Norway's Yr service. Once added, checking the weather becomes a simple question you ask your AI.

Use met-mcp in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add met-mcp and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the geocode location tool from met-mcp

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI for the hourly forecast for a place by name, such as a city you plan to visit.

met-mcpStart free

What your AI can do with it

  • Find any city or place by name
  • Get hourly weather forecasts for locations worldwide
  • See how conditions change hour by hour
  • Answer weather questions using data from MET Norway's Yr service

Install met-mcp

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user met-mcp 'https://met-mcp.met-mcp-worker.workers.dev/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://met-mcp.met-mcp-worker.workers.dev/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=met-mcp&config=eyJ1cmwiOiJodHRwczovL21ldC1tY3AubWV0LW1jcC13b3JrZXIud29ya2Vycy5kZXYvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://met-mcp.met-mcp-worker.workers.dev/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add met-mcp --url 'https://met-mcp.met-mcp-worker.workers.dev/mcp'

    Run it once, then sign in with codex mcp login met-mcp if the server asks for an account.

From the project's README

As published by trondbjoroy/met-mcp in README.md.

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

npm install
npm run build
npm test

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

Use with Claude Code

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 you@example.com.
  • 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.

Tools it offers (8)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • geocode_location
  • get_forecast
  • get_nowcast
  • get_weather_alerts
  • get_sun_events
  • get_ocean_forecast
  • find_weather_stations
  • get_historical_weather

Signals

Last commit
Aug 2026
Weekly downloads
48
Weekly_downloads
54 weekly_downloads
Advanced
Delivery
met-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-trondbjoroy-met-mcp
Source
github.com/trondbjoroy/met-mcp
Hosted endpoint
https://met-mcp.met-mcp-worker.workers.dev/mcp