Notion MCP Server (Remote OAuth Setup)
Updated 2026-10-27
Notion’s hosted MCP server lets MCP clients search your workspace and read or update pages you can access, with OAuth instead of pasting integration tokens into config files. This guide covers the supported remote URL https://mcp.notion.com/mcp in Cursor; other clients follow the same endpoint. Last tested 2026-10-27.
The older npm package @notionhq/notion-mcp-server is not actively maintained; Notion directs new setups to Remote Notion MCP. See Notion MCP overview and Connect to Notion MCP.
Prerequisites
- A Notion account with access to the workspace you want to connect
- Cursor (or another MCP client listed in Notion’s docs)
- For non-interactive setups on Business/Enterprise: permission to create an MCP token in the Developer portal
Steps
1. Add the remote server in Cursor
Create or edit .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):
{
"mcpServers": {
"notion": {
"url": "https://mcp.notion.com/mcp"
}
}
}
This matches Notion’s Cursor instructions.
2. Complete OAuth in Cursor
- Open Customize in Cursor’s sidebar.
- Enable Notion under MCP servers.
- Finish the OAuth flow and pick the workspace.
After authorization, the client can call Notion MCP tools for content you already have permission to view in Notion.
3. Confirm tools are available
In Cursor chat, ask the model to search Notion for a page title you know exists. If tools are missing, restart Cursor and check Settings → Tools & Integrations → MCP for a connected Notion entry.
Supported tool names and behavior are listed in Notion’s Supported tools documentation (for example workspace search and page create/update tools).
4. Use MCP tokens when OAuth is not possible
On Business and Enterprise plans, a workspace owner can create an MCP token in the Developer portal (New MCP token). The client sends it as a bearer token to https://mcp.notion.com/mcp with no browser sign-in. See the FAQ in Connect to Notion MCP.
Do not commit tokens. Store them in environment variables or your client’s secret store.
5. Fallback: clients without remote HTTP MCP
If a client only supports local stdio servers, Notion documents the mcp-remote bridge:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.notion.com/mcp"]
}
}
}
SSE fallback URL (only if Streamable HTTP is unsupported): https://mcp.notion.com/sse per Other MCP clients.
6. Call the same tools from your own agent
To invoke MCP tools from Python instead of an IDE, see Connect an AI agent to an MCP server. For a custom Notion REST integration without MCP, see Connect an AI agent to Notion.
Common errors
OAuth loop or “guests can’t connect”: Only workspace members can authorize Notion MCP. Guests see a refusal during authorization (Connect to Notion MCP FAQs).
Tools empty after upgrade: Disconnect Notion in MCP settings, clear authentication if offered, then reconnect. Stale OAuth sessions often cause this.
Client only supports stdio: Use the mcp-remote configuration above instead of a raw url block.
Accidentally using the deprecated local server: Antigravity and some galleries still list the old notion-mcp-server package. Prefer https://mcp.notion.com/mcp per Notion’s Antigravity note.
Server not listed in Claude Desktop config: Remote Notion MCP uses HTTP/OAuth; Claude Code uses claude mcp add --transport http notion https://mcp.notion.com/mcp per Notion’s docs—not the legacy npx integration block unless you deliberately self-host.
FAQ
What is the Notion MCP server URL?
Use https://mcp.notion.com/mcp (Streamable HTTP). Notion documents https://mcp.notion.com/sse only as an SSE fallback for clients that do not support Streamable HTTP.
Is the open-source notion-mcp-server still recommended?
No. Notion states the hosted Notion MCP server is actively maintained, while the open-source repository is no longer actively supported. Use remote MCP unless you have a specific reason to self-host.
Do I still need to “Connect to integration” on each page?
Remote MCP respects your normal Notion permissions after OAuth. You do not manually share every page with a separate integration token the way the REST API PAT flow requires; see How Notion MCP works.