met-mcp
Enables natural-language access to MET Norway weather forecasts, including hourly forecasts worldwide and place-name geocoding, via MCP tools.
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.