Skip to content
Eden Engine

Canada City Weather Forecast and Current Conditions (MSC Datamart)

mscdatamart/citypage-forecast

The Environment and Climate Change Canada city weather page for one site, read from a Datamart file named by citypage-files: the site and region, any active weather watches and warnings (word for word), current conditions at the nearest observing station (temperature, dew point, pressure, visibility, humidity, wind), the multi-day forecast by period with temperatures and chance of precipitation, the next 24 hours hour by hour, and yesterday's high, low and precipitation. Metric units, times in UTC. English or French according to the file. A file the server does not have returns an error. Environment and Climate Change Canada data, served by Eden Engine; not an official Environment and Climate Change Canada product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

Environment and Climate Change Canada

Data Source: Environment and Climate Change Canada. Contains information licenced under the Data Server End-use Licence of Environment and Climate Change Canada. Weather alerts are reproduced word for word. Served by Eden Engine; not an official Environment and Climate Change Canada product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "mscdatamart/citypage-forecast" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "mscdatamart/citypage-forecast" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "mscdatamart/citypage-forecast", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "mscdatamart/citypage-forecast", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 24, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "date",
    "province",
    "hour",
    "file"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^20[0-9]{6}$",
      "description": "UTC date folder, YYYYMMDD, for example 20261020. The server keeps about the last thirty days; an older date is not found."
    },
    "file": {
      "type": "string",
      "pattern": "^[0-9]{8}T[0-9]{6}(\\.[0-9]{3})?Z_MSC_CitypageWeather_s[0-9]{7}_(en|fr)\\.xml$",
      "description": "File name from citypage-files, for example 20261020T120149.210Z_MSC_CitypageWeather_s0000430_en.xml (Ottawa, English)."
    },
    "hour": {
      "type": "string",
      "pattern": "^(0[0-9]|1[0-9]|2[0-3])$",
      "description": "UTC hour folder, 00 to 23, for example 12. Each hour folder holds the files published in that hour."
    },
    "province": {
      "enum": [
        "AB",
        "BC",
        "HEF",
        "MB",
        "NB",
        "NL",
        "NS",
        "NT",
        "NU",
        "ON",
        "PE",
        "QC",
        "SK",
        "YT"
      ],
      "type": "string",
      "description": "Province or territory folder: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK or YT (HEF is the Hydrometeorological Forecast folder)."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "site",
    "issued",
    "warnings",
    "current",
    "forecasts",
    "hourly"
  ],
  "properties": {
    "site": {
      "type": "object",
      "properties": {
        "code": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "region": {
          "type": [
            "string",
            "null"
          ]
        },
        "latitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "province": {
          "type": [
            "string",
            "null"
          ]
        },
        "longitude": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "hourly": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": [
              "string",
              "null"
            ]
          },
          "condition": {
            "type": [
              "string",
              "null"
            ]
          },
          "temperature_c": {
            "type": [
              "number",
              "null"
            ]
          },
          "wind_direction": {
            "type": [
              "string",
              "null"
            ]
          },
          "wind_speed_kmh": {
            "type": [
              "number",
              "null"
            ]
          },
          "precipitation_chance_pct": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "description": "At most 48 hourly entries."
    },
    "issued": {
      "type": [
        "string",
        "null"
      ],
      "description": "When the file was created, UTC."
    },
    "current": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "station": {
          "type": [
            "string",
            "null"
          ]
        },
        "observed": {
          "type": [
            "string",
            "null"
          ]
        },
        "condition": {
          "type": [
            "string",
            "null"
          ]
        },
        "dewpoint_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "pressure_kpa": {
          "type": [
            "number",
            "null"
          ]
        },
        "station_code": {
          "type": [
            "string",
            "null"
          ]
        },
        "temperature_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "visibility_km": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_gust_kmh": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_direction": {
          "type": [
            "string",
            "null"
          ]
        },
        "wind_speed_kmh": {
          "type": [
            "number",
            "null"
          ]
        },
        "wind_bearing_deg": {
          "type": [
            "number",
            "null"
          ]
        },
        "pressure_tendency": {
          "type": [
            "string",
            "null"
          ]
        },
        "relative_humidity_pct": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "issued": {
            "type": [
              "string",
              "null"
            ]
          },
          "priority": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "description": "Active watches, warnings and statements, word for word; empty when none."
    },
    "forecasts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "period": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": [
              "string",
              "null"
            ]
          },
          "condition": {
            "type": [
              "string",
              "null"
            ]
          },
          "temperature_c": {
            "type": [
              "number",
              "null"
            ]
          },
          "temperature_class": {
            "type": [
              "string",
              "null"
            ],
            "description": "high or low."
          },
          "precipitation_chance_pct": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "yesterday": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "low_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "high_c": {
          "type": [
            "number",
            "null"
          ]
        },
        "precipitation_mm": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "forecast_issued": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "The city page shaped as JSON; metric units, times ISO 8601 UTC, empty elements null.",
  "additionalProperties": false
}