Secure Notion access for AI agents
Search, read, and edit pages, databases, comments, and meeting notes via Notion's official MCP server.
Connect Notion to the gateway to give agents governed access to your Notion workspace: pages, databases, views, comments, teamspaces, and meeting notes – every call runs through your policies and is logged for audit.
Server URL: https://mcp.notion.com/mcp
Credential modes
Notion supports per-org dynamic registration only, so there is no app to create on Notion's side and no client ID or secret to enter. See Credential modes for how it compares with Use SecureAuth's app and Bring your own app.
Before you begin
- A Notion account that can reach the pages and databases your agents need.
- Administrator access to your Agent Authority workspace, to add the resource.
Setup
- In the Agent Authority console, go to Resources and click Add Resource.
- Select Notion from the catalog.
- On Choose how to install Notion, click Per-org dynamic registration. Selecting it adds the resource right away with its tools pre-configured.
Dynamic client registration
When you add the resource, the gateway registers its own OAuth client with Notion – the credential that lets it sign users in. Notion's own workspace and page-sharing permissions still apply, so an agent can only reach what the person who signed in could already reach.
Verify the connection
The gateway syncs the Notion tools automatically. To check the connection end to end, ask your agent to run a request:
Search my Notion workspaceIf your pages come back, the connection is working.
How users connect
Access is per user. Each additional user connects their own Notion account the first time their agent calls a Notion tool: the gateway returns a sign-in link, the user authorizes once, and the tools work from then on. Go to Connections to manage linked accounts.
During the Notion sign-in each user selects which workspace the connection can access, and the connection only reaches content shared with it in that workspace.
Available tools
| Tool | Access | Description |
|---|---|---|
notion-search | read | Search the workspace and connected sources, or find people by name or email |
notion-fetch | read | Retrieve a page, database, or data source by URL or ID |
notion-get-comments | read | Get comments and discussions from a page |
notion-get-teams | read | List teams (teamspaces) in the workspace |
notion-get-users | read | List workspace users, or look up a specific user |
notion-get-async-task | read | Get the status and result of an async task started by another tool |
notion-query-data-sources | read | Query databases with SQL, or run a database view's filters and sorts |
notion-query-database-view | read | Query a database view using its configured filters, sorts, and columns |
notion-query-meeting-notes | read | Query the current user's meeting notes by title, attendees, or date range |
notion-create-pages | write | Create one or more pages with properties and Notion-flavored Markdown content |
notion-update-page | write | Update a page's properties or content |
notion-move-pages | write | Move pages or databases to a new parent |
notion-duplicate-page | write | Duplicate a page within the workspace (completes asynchronously) |
notion-create-database | write | Create a new database from a SQL DDL schema |
notion-update-data-source | write | Update a data source's schema, title, or attributes via SQL DDL |
notion-create-comment | write | Add a comment to a page or content, or reply to a discussion thread |
notion-create-view | write | Create a new view on a database (table, board, calendar, timeline, and more) |
notion-update-view | write | Update a view's name, filters, sorts, or display configuration |
Required scopes
Notion does not use granular OAuth scopes for its MCP server. The connection's reach is set during the OAuth flow, where the user picks the workspace and the pages shared with the connection.
Policy examples
Every org is created with a seeded Allow all rule at the bottom of the list, so any call your own rules don't match stays allowed. Express restrictions as deny rules above it – new rules are added at the top, so a fresh deny outranks it automatically. See Rule order.
- Read-only access: deny
notion-create-*,notion-update-*,notion-move-pages, andnotion-duplicate-page. Those patterns cover every write in the table above, leaving thenotion-search,notion-fetch,notion-get-*, andnotion-query-*reads. - Comment-only collaboration: on top of the read-only rule, add an Allow for
notion-create-commentso agents can leave feedback without editing content. Create it after the deny – new rules land at the top, which is where the allow has to sit to win. - No schema changes: deny
notion-create-database,notion-update-data-source,notion-create-view, andnotion-update-viewwhile leaving page tools allowed.
Next steps
- Create a policy – start from the read-only pattern in Policy examples above.
- Policies – how first-match-wins rule order and the seeded Allow all rule interact.