Skip to main content
NotionResource exposes a Notion workspace as a filesystem. The Node SDK talks to the Notion REST API with an integration token; the Browser SDK talks to Notion’s MCP server with an OAuth client provider so secrets stay off the page.

Node

Browser

Mount mode

read, write (page edits via the MCP server in the browser SDK).

Acting on Notion

Acting on Notion (creating, editing and trashing pages, querying data sources, and every route that has no typed verb) goes through the ntn CLI when installed.

Layout

Since the 2025-09-03 API generation a database is a container of data sources, and both the column schema and the rows live on the data source, so a row page sits one level deeper than the page tree. database.json is the container’s identity plus the data_sources stubs that name the directories beneath it, and carries no properties. The shape is identical to the Python connector:
data_source.json holds the typed column schema under properties; ls the data source directory to enumerate row pages. A database row is itself a page: its page.json reports parent_type of data_source_id, and its cell values ride in the same file under properties. For full page.json field details and supported edits see the Python Notion docs.