MCP Server

met-mcp

io.github.trondbjoroy/met-mcp
Science & Engineering Public & reachable MCP 2025-11-25

What this MCP does

Provides worldwide weather forecasts, historical observations, precipitation nowcasts, ocean forecasts, sun events, alerts, and geocoding.

find_weather_stations
Find weather stations
Find the nearest official weather stations (Frost). Use the station id (e.g. SN50540) with get_historical_weather.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'count': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of stations to return'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}}}
geocode_location
Geocode a place name
Find latitude and longitude for a place name. Use the coordinates with the other tools.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': "Place name, e.g. 'Bergen' or 'Oslo, Norway'"}, 'count': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of matches to return'}}}
get_forecast
Get weather forecast
Get an hourly weather forecast from MET Norway (Yr) for a coordinate. Works worldwide, best coverage in the Nordics.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'hours': {'type': 'integer', 'default': 24, 'maximum': 48, 'minimum': 1, 'description': 'How many hours ahead to include'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}}}
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.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['station_id', 'from', 'to'], 'properties': {'to': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'End date (exclusive), YYYY-MM-DD'}, 'from': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Start date, YYYY-MM-DD'}, 'elements': {'type': 'array', 'items': {'type': 'string'}, 'default': ['mean(air_temperature P1D)', 'sum(precipitation_amount P1D)', 'max(wind_speed P1D)'], 'description': 'Frost element ids. Defaults: daily mean temperature, precipitation sum, max wind.'}, 'station_id': {'type': 'string', 'pattern': '^SN\\d+$', 'description': 'Station id from find_weather_stations, e.g. SN50540'}}}
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?'
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}}}
get_ocean_forecast
Get ocean forecast
Wave height, wave direction, and sea temperature. Covers the Norwegian coast and nearby seas.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude'], 'properties': {'hours': {'type': 'integer', 'default': 24, 'maximum': 48, 'minimum': 1, 'description': 'How many hours ahead to include'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}}}
get_sun_events
Get sunrise and sunset
Sunrise, sunset, and solar noon for a coordinate and date. Works worldwide.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['latitude', 'longitude', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date as YYYY-MM-DD'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}, 'utc_offset': {'type': 'string', 'default': '+00:00', 'pattern': '^[+-]\\d{2}:\\d{2}$', 'description': "UTC offset for the returned times, e.g. '+02:00' for Norwegian summer time"}}}
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.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees'}}}
Added
get_historical_weather
Sept. 17, 2026, 12:52 p.m.
Added
find_weather_stations
Sept. 17, 2026, 12:52 p.m.
Added
get_ocean_forecast
Sept. 17, 2026, 12:52 p.m.
Added
get_sun_events
Sept. 17, 2026, 12:52 p.m.
Added
get_weather_alerts
Sept. 17, 2026, 12:52 p.m.
Added
get_nowcast
Sept. 17, 2026, 12:52 p.m.
Added
get_forecast
Sept. 17, 2026, 12:52 p.m.
Added
geocode_location
Sept. 17, 2026, 12:52 p.m.