Access boundary
Roomote connects to Notion’s public API with either a deployment-owned internal integration secret or a deployment-owned Notion public connection authorized through OAuth. This is separate from Notion’s hosted MCP. In both cases, Notion restricts access to the pages and data sources shared during or after authorization. Unshared content, including private pages, is unavailable to Roomote. Sharing a parent page may also grant access to its children. Review the content access list in Notion whenever the page hierarchy changes.Set up with an internal integration
- In Notion integrations, create an internal integration for Roomote.
- In the integration’s Configuration tab, enable only the capabilities Roomote should have: read, update, insert, and comment access are controlled independently by Notion. If Memory should link Notion identities to Roomote members, also grant the user-information capability that includes email addresses; without it, Memory keeps stable but unlinked Notion user references.
- In Notion, share only the approved pages and data sources with the new integration. You can manage this from the integration’s Content access settings or a page’s Connections menu.
- Copy the internal integration secret.
- In Roomote, open Settings > Integrations, choose Configure Notion, and paste the secret.
Set up with OAuth
Self-hosted operators can configure a Notion public connection so an admin can ask Roomote to connect Notion from a Session:- Create a public connection in Notion’s developer portal and configure the capabilities Roomote should receive.
- Register your public Roomote URL followed by
/api/mcp-oauth/callbackas a redirect URI. - Set
R_NOTION_CLIENT_IDandR_NOTION_CLIENT_SECRETfrom that public connection, then restart Roomote. - Ask Roomote to connect Notion from a Session and complete Notion’s page selection and authorization screen.
notion/ namespace. New and edited pages are picked up on
regular Memory collector ticks, and a daily full sweep discovers older pages
that were newly shared without being edited. Because Notion’s search index
does not reliably surface pages that live inside databases, the sweep also
enumerates every shared data source and walks page trees to capture database
rows and other inheritance-shared pages, running that discovery to
completion in a continuous loop rather than trickling across scheduled
ticks. The same sweep replaces pages
that are no longer shared with unavailable tombstones, so their former
content is no longer retained in Memory search results.
When the integration’s capabilities allow listing users, Memory also
refreshes the workspace user directory once a day to link page authors,
people properties, and mentions to people cards. Verified email addresses
are used only to match Notion users to Roomote members and are never copied
into Memory pages. Users removed from the workspace have their Notion
identity cards marked deleted on the next daily refresh, and revoking the
user-information capability retracts the whole directory the same way.
Roomote agents can read and update page content as enhanced Markdown, move
regular pages beneath another page or into a data source, and create blocks at
the start or end of existing content or after a specific child block. Agents
can also create a database, its initial data source, and its first table view
beneath an approved page or as a private workspace page. After creation, agents
can update database metadata and placement, add, rename, reconfigure, or delete
data source properties, and create, configure, or delete database views. These
operations use Notion’s public API rather than Notion’s hosted MCP tools, so
their schemas and limitations follow the public API.
The database update API can replace an icon or cover, but its current schema
does not accept null to remove either one. Data source icons can be cleared.
Notion’s public API cannot move or reorder an existing block. Positional block
insertion applies only to newly created blocks. Preserving a block’s ID while
recreating it in another position is also unsupported.
Roomote’s deployment-wide integration is not a proxy for Notion’s hosted MCP.
Hosted-only features such as connected-source search, attachment helpers, page
duplication, folders, meeting-note queries, and workspace team or user lookup
are not currently exposed as agent tools.
(Memory’s identity linking reads the workspace user directory directly
through the public API, as described above.) Roomote instead provides the
direct public-API operations that work with a restricted internal
integration token.
A Notion hosted-MCP connection is not reused. Roomote’s native integration
uses either its own public-API OAuth client or an internal integration secret.