Skip to content

Commit bacbc59

Browse files
committed
fix(step-5): migrate Notion MCP to hosted OAuth endpoint
Notion flagged the `@notionhq/notion-mcp-server` npm package for eventual sunset in its README ("we may sunset this local MCP server repository in the future — issues and pull requests are not actively monitored"). The canonical replacement is the hosted endpoint at https://mcp.notion.com/mcp with OAuth on first use. Installer UX simplifies: - No integration-token prompt - No "share each page with the integration" manual step - Browser OAuth happens the first time Claude reads/writes Notion; user picks page/database scope during that flow README table row updated to match — still Notion official, just the hosted path now.
1 parent 6d1c94d commit bacbc59

2 files changed

Lines changed: 10 additions & 30 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ The script asks which tools you want, then walks you through each one's credenti
463463
464464
| # | Tool | What it does | Needs |
465465
|---|------|--------------|-------|
466-
| 1 | **Notion** ([@notionhq](https://github.com/makenotion/notion-mcp-server)) | Search, read, create pages + databases in your Notion workspace. Official, 22 tools. | Integration token from [notion.so/profile/integrations](https://www.notion.so/profile/integrations); share specific pages via page `...` → Connections. |
466+
| 1 | **Notion** ([@notionhq](https://developers.notion.com/docs/get-started-with-mcp)) | Search, read, create pages + databases in your Notion workspace. Official hosted MCP, 22 tools. | Nothing — browser OAuth on first use. Pick which pages/databases Claude can access during the auth flow. |
467467
| 2 | **Granola** | Search your Granola meeting transcripts + notes through conversation. | [Granola](https://granola.ai) installed + signed in on Mac. No key. |
468468
| 3 | **n8n** | HTTP bridge to **your own** n8n instance — trigger and inspect workflows you built. Not a hosted service. | An n8n workflow with an **MCP Server Trigger** node; copy its Production URL. Optional Bearer token. |
469469
| 4 | **Google Calendar** | Direct Google Calendar access via OAuth. *Secondary — only install if you need a specific Google account bypassing Morgen.* | Google account + ~5min to create OAuth creds (script walks you through). |

step-5/step-5-install.sh

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -223,44 +223,24 @@ install_notion() {
223223
fi
224224

225225
echo ""
226-
echo -e "${BLUE} Notion requires an integration token. Here's how to get one:${NC}"
226+
echo -e "${BLUE} Notion now ships a hosted MCP server — no token needed.${NC}"
227+
echo -e "${BLUE} Auth happens through your browser the first time Claude uses it.${NC}"
227228
echo ""
228-
echo " 1. Go to https://www.notion.so/profile/integrations"
229-
echo " 2. Click \"New integration\""
230-
echo " 3. Give it a name (e.g. \"Claude Code\")"
231-
echo " 4. Select your workspace"
232-
echo " 5. Click \"Submit\" and copy the Internal Integration Secret"
233-
echo " (starts with ntn_ or secret_)"
234-
echo ""
235-
echo -e "${YELLOW} IMPORTANT: After setup, you also need to share pages with${NC}"
236-
echo -e "${YELLOW} the integration. On any Notion page you want Claude to${NC}"
237-
echo -e "${YELLOW} access, click the ••• menu > Connections > add your${NC}"
238-
echo -e "${YELLOW} integration. Claude can only see pages you explicitly share.${NC}"
229+
echo -e "${YELLOW} When Claude first reads or writes Notion, your browser will${NC}"
230+
echo -e "${YELLOW} open. Sign in and pick which pages/databases Claude can access.${NC}"
239231
echo ""
240232

241-
read -rsp " Notion integration token: " NOTION_TOKEN
242-
echo ""
243-
echo ""
244-
245-
if [ -z "$NOTION_TOKEN" ]; then
246-
warn "No Notion token provided. You can re-run this step later."
247-
return
248-
fi
249-
250-
# Register with the token as an environment variable.
251-
claude mcp add --scope user -e NOTION_TOKEN="$NOTION_TOKEN" notion -- npx -y @notionhq/notion-mcp-server 2>/dev/null
233+
# Hosted HTTP transport — OAuth handled by Claude Code on first use.
234+
# Replaces the legacy @notionhq/notion-mcp-server npm package, which
235+
# Notion has flagged for eventual sunset.
236+
claude mcp add --scope user --transport http notion https://mcp.notion.com/mcp 2>/dev/null
252237

253238
if claude mcp list 2>/dev/null | grep -qE '^notion:'; then
254239
success "Notion MCP installed"
255240
INSTALLED_NOTION=true
256-
echo ""
257-
echo -e "${GREEN} Don't forget: share your Notion pages with the integration!${NC}"
258-
echo -e "${GREEN} On each page: ••• menu > Connections > add your integration.${NC}"
259-
echo ""
260241
else
261-
soft_fail "Notion MCP installation could not be verified"
242+
soft_fail "Notion MCP installation could not be verified — try manually: claude mcp add --scope user --transport http notion https://mcp.notion.com/mcp"
262243
fi
263-
unset NOTION_TOKEN
264244
}
265245

266246
# -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)