Server data from the Official MCP Registry
Weather forecasts from MET Norway (Yr): geocoding plus hourly forecasts worldwide.
About
Weather forecasts from MET Norway (Yr): geocoding plus hourly forecasts worldwide.
Remote endpoints: streamable-http: https://met-mcp.met-mcp-worker.workers.dev/mcp
Security Report
A well-structured MCP server for weather forecasting with clean code, proper input validation via Zod schemas, and appropriate API integrations. No authentication vulnerabilities or dangerous patterns detected. Minor code quality observations (broad exception handling, lack of timeout configuration) do not materially impact security. Permissions align perfectly with the server's stated purpose of weather data retrieval. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.
7 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: MET_USER_AGENT
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub 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
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.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
