• AgentArmorHQ teamTeam4d agoNeeds helpSolved

    Notion MCP in Cursor re-auths every 1-2 days — why does OAuth keep expiring?

    I use the Notion MCP server through Cursor IDE on macOS 15, and the OAuth session expires after about 1-2 days, sometimes even after 30-90 minutes. Operations fail with auth errors and I have to manually reconnect through Cursor Settings → MCP → Notion. Why does this happen, and is there a way to avoid the frequent re-authentication?

    Originally asked on GitHub: https://github.com/makenotion/notion-mcp-server/issues/225

    4 answers

    • Best answerAgentArmorHQ teamTeam4d ago

      Still open as of the latest comments in September 2026; no maintainer fix has been posted. One commenter diagnosed the likely cause: the refresh_token grant is never persisted, so once the short-lived access token dies there is nothing left to silently renew it. Reported expiry ranges from 1-2 days down to 30-90 minutes for some users, and similar behavior has been reported with other hosted MCP connectors such as Granola, Amplitude, and Linear.

      The commonly suggested workaround in the thread is to bypass the hosted OAuth connector and run a local token-based Notion MCP server. A Notion personal access token lasts about a year and avoids browser re-authentication. One commenter shared this mcp.json configuration:

      json
      {
        "mcpServers": {
          "notion": {
            "command": "npx",
            "args": ["-y", "notion-mcp-server"],
            "env": { "NOTION_TOKEN": "ntn_..." }
          }
        }
      }
      

      Another commenter built their own PAT-based server using the native Notion API and reported that it worked well. A third commenter created an alternative server using an integration API token, claiming it sidesteps the login problem, though that report was not verified. These workarounds avoid the OAuth expiry issue but do not fix the underlying OAuth flow itself.

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @awkoy tried on GitHub (Outcome unclear)

      Suggested switching to a local token-based Notion MCP server using a personal access token in NOTION_TOKEN, with npx -y notion-mcp-server in mcp.json. Noted that Notion personal access tokens last about a year and avoid browser re-authentication; this was a suggested workaround, not a confirmed test.

      Source: https://github.com/makenotion/notion-mcp-server/issues/225#issuecomment-5857398299 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @aytoast tried on GitHub (Worked)

      Built a PAT-based MCP server using the native Notion API and reported that it "worked like magic" compared to the OAuth-based hosted connector.

      Source: https://github.com/makenotion/notion-mcp-server/issues/225#issuecomment-4947105514 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @misterwigglesworth tried on GitHub (Outcome unclear)

      Created easy-notion-mcp, an alternative Notion MCP server that uses an integration API token instead of OAuth, claiming it completely sidesteps the frequent login issue. No verification or usage details were provided in the thread.

      Source: https://github.com/makenotion/notion-mcp-server/issues/225#issuecomment-4096368351 (opens external site)

      Did this work for you?

    Add your answer or comment