safe-mcp sign in

library ยท notion

A read-only Notion is one preset away.

Notion's MCP server reaches pages, databases, data sources, comments and search across a workspace, and it names its read tools and its write tools apart. That makes the simplest useful rule a three-line preset: search, fetch, query, nothing else.

"presets": {
  "reader": {
    "tools": [
      "notion-search",
      "notion-fetch",
      "notion-query-data-sources"
    ]
  }
}

Example, not real data. Tool names from Notion's documentation.

What the agent can reach.

readsnotion-search, notion-fetch, notion-query-data-sources, notion-get-comments, notion-get-users, notion-get-teams, notion-download-attachment
writesnotion-create-pages, notion-update-page, notion-move-pages, notion-duplicate-page, notion-create-database, notion-update-data-source, notion-create-view, notion-create-comment, notion-create-attachment, and a few more
not thereno delete tool is documented
limitsNotion states 180 requests a minute, 30 a minute for search, 20 MiB per upload

From Notion's documentation as of 2026-09-02. The catalog shows what the server actually publishes when it connects.

What changes when it runs through the gateway.

Each person authorizes Notion with their own account, so a page the agent writes is written by them. With the reader preset assigned to a group, that group's agents can answer from the wiki and cannot touch it. Give one person a second preset that allows notion-create-pages and notion-update-page, and only their agent can write, only with a goal in force, only after the evidence check.

One caveat.

Hiding the write tools with a preset is a hard rule. Marking the read tools as read-only, which is what lets one of them measure a goal and lets testing mode wave them through, is decided by Notion's own annotations; a library reference cannot add names. If Notion marks nothing, add the same URL as a custom server and list the read tools there.

Next in the library.