met-mcp
MCP serverDev toolsYour 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
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Details
Available today. Use it from your connected AI after setup.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
After adding it, ask your AI for the hourly forecast for a place by name, such as a city you plan to visit.
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/mcpAdd 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/mcpIn 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_AGENTenv 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.tsis 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
contentblocks. 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_locationget_forecastget_nowcastget_weather_alertsget_sun_eventsget_ocean_forecastfind_weather_stationsget_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
github.com/trondbjoroy/met-mcp