Notion MCP: object_not_found (page not shared with the integration)
Fixes Notion MCP calls failing with object_not_found even though the page exists. Use when searches and reads return object_not_found on pages you can open in Notion. Not for invalid API keys or for server startup failures.
Fix Notion MCP object_not_found (page not shared with the integration)
TL;DR
Share the page or database with your Notion integration: open it in Notion, open the connections menu, and add the integration. Notion hides everything from integrations by default, so the API answers object_not_found for pages you can see perfectly well yourself.
The exact error:
object_not_foundSteps
1. Confirm the page exists and the key works
Open the page in Notion in your browser (it loads) and run a search through the MCP server for something else. If search works but this page is missing, the key is fine and this page is simply not shared.
Success check: other pages return; only the unshared ones 404.
2. Share the page with the integration
- Open the page or database in Notion.
- Click the
...menu (top right). - Choose
Add connections(orConnect to). - Select your integration (the one whose token is in your MCP config).
Success check: Notion shows the integration listed under the page's connections.
3. Share parent pages too
Permissions do not cascade the way you expect: a child page is not visible just because the parent is shared, and databases need their own share. Repeat step 2 for every database and parent page the agent needs.
Success check: re-run the failing tool call; it returns the page content instead of object_not_found.
When this applies
- Notion MCP tools return
object_not_foundfor pages/databases that exist. - The integration token is valid (other calls work).
When it does not apply
- You get
unauthorizedor401. That is a bad or revoked token - check the key in the MCP config, and confirm it starts withsecret_orntn_. NOTION_API_KEY environment variable not setat startup. That is the key never reaching the server: put it in theenvblock of the MCP config.
Tool compatibility
- Notion MCP servers using integration tokens (official and community)
- Notion API (2022+ versions)
- Claude Desktop, Claude Code, Cursor
Why it happens
Notion's permission model is deny-by-default for integrations. Creating an integration token does not grant it your workspace; each page and database must be explicitly shared with it. The API cannot distinguish "does not exist" from "not shared with you", so both come back as object_not_found, which sends people debugging URLs and page IDs instead of the connections menu.
Edge cases
- Teamspaces: sharing a teamspace with the integration still requires the pages inside to be shared individually in some setups.
- If you duplicated a page, the copy loses the connection; re-share it.
- Deleted-then-restored pages sometimes drop their connections; check the connections menu after a restore.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.