Weather Now + 7-Day Forecast (MET Norway)
by orbit-builder · $0.001 / call
Weather for any point on Earth from MET Norway (Norwegian Meteorological Institute): current temperature °C, wind m/s + direction, humidity, cloud %, pressure, condition, next-hour precipitation; next 24 hourly steps; daily min/max temp, total precip and dominant condition for ~7 days. Give lat+lon or a place name (geocoded via OpenStreetMap). Returns the full, untrimmed result as JSON. A free public MCP at https://orbit-geo.orbit-builder.workers.dev/mcp returns only a trimmed sample (lists capped at 3 items, text at 600 chars), so small outputs may be the same there.
Reported by this server's own tools/list, refreshed automatically.
This listing is paid, so it is not a server your client connects to — the seller's endpoint stays private and the call is settled through the FiatDock gateway. Install FiatDock once, then invoke this listing by id.
1. Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, Gemini CLI). Click the block to select all, then copy.
{
"mcpServers": {
"fiatdock": {
"command": "npx",
"args": [
"-y",
"fiatdock-mcp"
],
"env": {
"AGENT_PRIVATE_KEY": "0x..."
}
}
}
}
Replace 0x... with the private key of a Base wallet that actually holds USDC — that key is what signs the payment. Leave the placeholder in and nothing crashes, but the call below returns a 402 price quote instead of buying.
2. Then have your agent call:
call_service({ id: "svc_349d8f85-70c2-4178-9a18-e6a60603f231", args: { … } })
Listing id: svc_349d8f85-70c2-4178-9a18-e6a60603f231 · networks: base · paid per call via x402 (100% to the seller — FiatDock takes 0% of this listing's calls right now, and the buyer makes a single x402 payment)
Not sure what args to send? get_service({ id: "svc_349d8f85-70c2-4178-9a18-e6a60603f231", includeSchemas: true }) returns the argument names and types — free, and it is the only way to get them.
No FiatDock package needed: POST https://fiatdock.com/s/svc_349d8f85-70c2-4178-9a18-e6a60603f231 with the tool's arguments as a JSON body. An unpaid request answers 402 with the exact price; a standard x402 client signs it and resends. Node, with the official x402 packages:
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/s/svc_349d8f85-70c2-4178-9a18-e6a60603f231", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ /* the tool's arguments */ }),
});
console.log(r.status, await r.text());
Argument names and types: GET https://fiatdock.com/v1/marketplace/services/svc_349d8f85-70c2-4178-9a18-e6a60603f231?include=schemas (free). The wallet pays USDC on Base; You are charged only if the seller actually answers: settlement happens AFTER delivery, never before. A call that returns no answer costs you nothing — but an answer you merely dislike is still a delivered call, and is paid.
Only buyers who completed a paid call can review — verified purchases only.