The agent searches for pages I can clearly see in Notion and returns zero results — no error, just nothing. Why?
The signature silent failure of the Notion API: per-page sharing. The integration can only see pages explicitly shared with it, and the API omits unshared content from search results entirely rather than returning a permission error — so the agent concludes the content does not exist and may even offer to create a duplicate. The engineering fix: designate one top-level Agent Workspace page, share it with the integration, and nest everything the agent needs beneath it since children inherit access. If results still seem partial, check databases separately — a shared page containing a linked database view does not grant access to the underlying database, which must be shared independently.
Can it edit database schemas, or just rows?
It can create and update rows (pages within databases) including properties, relations, and rollups — and it can add properties to a schema. Structural changes like renaming property types are possible but should be prompted explicitly; a vague 'clean up this database' prompt invites schema edits you did not intend.
How does it handle large pages with thousands of blocks?
Block children are paginated at 100 per request. The agent must paginate to read deep pages, and very long documents arrive in chunks — for massive pages, prompt it to read the structure first (headings) before fetching full content, or you burn context on appendix blocks.
Hosted endpoint vs the open-source local server?
The hosted mcp.notion.com endpoint is OAuth-secured, always current, and zero-maintenance. The local @notionhq/notion-mcp-server uses a raw integration token — more control over tool exposure, but you now own token hygiene and updates. Start hosted; go local only if you need to strip write tools.