Environment Canada Weather
liveWeatherEnvironmentEnvironment Canada (ECCC) — real-time weather observations, active alerts, and historical daily climate records for Canadian stations.
Tools
current_observationsLatest real-time surface weather observations from Environment Canada stations near a point (swob-realtime). Returns station name, observation time, air temp, dewpoint, humidity, wind, pressure, snow
No parameters required.
Try it
active_alertsActive Environment Canada weather alerts (warnings, watches, statements) across Canada, optionally filtered near a point. Returns alert name, type, risk colour, affected area, province, effective/expi
No parameters required.
Try it
climate_dailyDaily climate records (max/min/mean temperature °C, total precipitation mm, snow on ground cm) for an Environment Canada station over a date range. Use a 7-digit climate identifier, e.g. "6158355" (TO
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/weather-gc-ca/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/weather-gc-ca/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"current_observations","arguments":{}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("current_observations", {});// Or ask in plain English:
const answer = await px.ask("environment canada (eccc) — real-time weather observations, active alerts, and historical daily climate records for canadian stations");