Guide

Connect Notion

One-click OAuth, then bind to a Space, then teammates can search Notion pages and pull their content from the chat composer with @notion.

Setup

  1. Open Settings → MCP integrations.
  2. Under One-click integrations, click Connect Notion.
  3. Notion asks you to pick a workspace + the pages/databases Switchy is allowed to read. Approve.
  4. Land back on Switchy with a green confirmation. @notion appears in the connected list.

Tokens go into Google Secret Manager — not into Postgres, not into logs.

Bind to a Space

Same flow as GitHub: open the Space → Settings → MCP integrations → toggle @notion on.

Use it

  • "@notion search for our Q3 roadmap."
  • "@notion @claude pull the launch plan and summarise the open risks."
  • "@notion get the page on our deployment runbook."

Switchy hits Notion's API, truncates the result (block content capped at 20 KB by default per page), and feeds it into the LLM agent in the same turn.

Tools available

  • search — workspace-wide search for pages + databases.
  • get_page — page metadata by id (title, properties, last-edited).
  • get_page_blocks — page content as plain text (block tree → markdown-ish, truncated).

Permissions

Notion permissions are set when you authorise the integration: pick which pages or databases the bot user can read. To expand access later, go to the integration's settings inside Notion (not Switchy) and share more pages with the Switchy integration.

We can't see anything you didn't share — Notion's permission model is per-page, not per-workspace.

Troubleshooting

  • Connect button returns 503. The operator hasn't set NOTION_OAUTH_CLIENT_ID + NOTION_OAUTH_CLIENT_SECRET yet.
  • Notion shows "Internal integration" only. You need a Public integration to do OAuth on someone else's behalf. Switchy supports Public integrations only.
  • Search returns nothing. The integration probably wasn't shared on any pages. Open Notion → page → Share → invite the integration.
  • Block content is truncated. Default cap is 20 KB per page. Override with maxChars in your tool call when using the SDK.

Next