Skip to content
Eden Engine

Montréal Open Data Table Rows: Read a Dataset Table

montrealopendata/datastore-rows

Reads rows from one table resource on the City of Montréal open data portal by its resource UUID, with an optional plain text filter, a row limit up to 50 and an offset for paging. Returns the column definitions, the rows and the total match count. Only resources the portal has loaded as tables work. Datasets can contain personal data; you are responsible for how you use what you retrieve. Data of the Ville de Montréal under CC BY 4.0, served by Eden Engine; not an official Ville de Montréal 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

Ville de Montréal (Données ouvertes)

Source: Ville de Montréal, Données ouvertes (donnees.montreal.ca), licensed under Creative Commons Attribution 4.0 International (CC BY 4.0); credit the source and each dataset's own licence in `license_id`. Served by Eden Engine; not an official Ville de Montréal 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: "montrealopendata/datastore-rows" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "montrealopendata/datastore-rows" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "montrealopendata/datastore-rows", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "montrealopendata/datastore-rows", 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 21, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "resource_id"
  ],
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Plain text to look for in the rows. Leave out for no filter."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Rows to return, 1 to 50. Defaults to 10."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Rows to skip, for reading further pages."
    },
    "resource_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Resource UUID of a table on the portal, for example `05deae93-d9fc-4acb-9779-e0942b5e962f`. Find it in the `resources` of a dataset record."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "resource_id",
    "fields",
    "records"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "Row limit applied."
    },
    "total": {
      "type": "integer",
      "description": "Total number of rows matching, when the portal reports it."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Column definitions, each with id and type."
    },
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "The rows, one object per row keyed by column id; empty when nothing matches."
    },
    "resource_id": {
      "type": "string",
      "description": "The resource that was read."
    }
  },
  "description": "The CKAN datastore result unwrapped from its success envelope.",
  "additionalProperties": true
}