notion-mcp__notion_query_data_source
Reads the rows of one Notion data source (a table inside a database), with an optional filter, sort order, property allowlist, page size and cursor. Each row is {id, url, created_time, last_edited_time, properties}, with properties as plain values keyed by property name. Filter and sorts are passed to Notion as written, in Notion's query JSON; notion_get_database lists the property names and types they refer to. The result is {results, has_more, next_cursor}, with the same shape when there are no results. has_more true means more results exist than this page holds, and next_cursor is the cursor argument that returns them. With view_id in place of data_source_id, the rows are a saved view's, in its own filter and sort order, and each row is its id alone, which is what Notion's view query returns; notion_get_page reads a row's properties. A view query's results stay cached for 15 minutes; total_count is the number of rows it matched, and incomplete true means Notion's 10,000-row cache cut them short.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "notion-mcp__notion_query_data_source"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sorts | No | A list of Notion sort objects, sent unchanged, applied in order. Example: [{"property": "Due", "direction": "ascending"}] or [{"timestamp": "last_edited_time", "direction": "descending"}]. | |
| cursor | No | The next_cursor value from an earlier call with the same arguments. Returns the page of results after that one. Absent for the start of the list. | |
| filter | No | A Notion filter object, sent unchanged. Example: {"property": "Status", "status": {"equals": "Done"}}; compound filters use {"and": [...]} or {"or": [...]}. Notion's filter reference documents the condition each property type takes. Absent returns every row. | |
| account | No | Optional email address of the connected account to use (e.g. 'user@gmail.com'). If omitted, the default account is used. | |
| view_id | No | A database view's id, or a database URL whose ?v= names the view. Takes the place of data_source_id; filter, sorts and properties are not taken with it. | |
| page_size | No | How many results one call returns, from 1 to 100. Default 25. A full page comes back with has_more true and a next_cursor for the rest. | |
| properties | No | Property names to keep in each row. Absent keeps every property. Names that a row does not have are left out of that row. | |
| data_source_id | No | The data source's Notion id, with or without dashes, or a Notion URL that contains it (the id is read from the URL). |