A terminal session reaching a company Notion workspace and two client workspaces through one Carly MCP server

How to Connect Multiple Notion Workspaces to Claude Code

One Claude Code session can search every Notion workspace you hold at the same time. Connect each workspace to Carly, register one MCP server, and the terminal reads all of them together.

Claude Code’s own route is narrower, and the narrowing happens at Notion’s end. Anthropic’s documentation says MCP servers added in claude.ai, its connectors, load automatically in Claude Code when you sign in with a claude.ai account, and it uses Notion as its example for registering a server by hand instead: claude mcp add --transport http notion https://mcp.notion.com/mcp. Both paths land on the same Notion OAuth screen, which asks you to pick one workspace.

A feature request on the Claude Code GitHub repository puts it plainly: a Claude account can only connect to one Notion workspace at a time through MCP, and switching means disconnecting and reconnecting under Settings, then Connectors, which affects every active session. It was filed by a freelancer running a client’s workspace in one session and their own company’s in another. It was closed as a duplicate, and the request it echoes is still open, noting the one-account limit applies to every connector rather than to Notion alone.

The workspace count is a property of the server you register, never a Claude Code setting.

1. Add your Notion workspaces to Carly

  1. Sign in at carlyassistant.com.
  2. Open carlyassistant.com/integrations.
  3. Find Notion, click Connect, and authorize the workspace.
  4. Click Connect again for the next one, and keep going for as many workspaces as you want.

Notion’s authorization screen asks you to choose a workspace and then the pages and databases the connection may reach. Pick the ones the work needs rather than the whole workspace. Widening later is one click; explaining why a client’s board minutes were readable is not.

Notion reuses the workspace you last opened, so check the name at the top of that screen before confirming. Each workspace keeps its own authorization and its own page access, and nothing is merged.

Carly connects to thousands of apps, so while you are on that page you can add your inboxes, calendars, files, CRM and anything else you want Claude Code to reach through the same connector.

2. Register Carly as an MCP server

Carly is a remote HTTP server, so one command does it:

claude mcp add --transport http --scope user carly https://carlyassistant.com/mcp/

--scope user stores the entry in ~/.claude.json and loads it in every project, which is what you want when the workspaces you search have nothing to do with the repository you are sitting in. Leave the flag off and it lands in local scope, available only where you added it. --scope project writes a committed .mcp.json instead, for a team sharing the server.

Then authenticate:

claude mcp login carly

That opens a browser for the OAuth flow. Sign in to the Carly account holding the Notion workspaces. The /mcp panel runs the same flow inside a session, and --no-browser prints the URL instead, which is what you want over SSH.

Confirm it before moving on:

claude mcp list

✔ Connected means you are ready. ! Needs authentication means the browser flow did not finish, and ✘ Failed to connect points at the URL or the network rather than your Carly account.

What one session can do afterwards

  • “Search all my Notion workspaces for the Databricks onboarding checklist and tell me which one has the newest version.”
  • “Pull every task still open against my name across all my Notion workspaces and group the list by workspace.”
  • Compare a client’s project database against your own roadmap in a single question.
  • Create a page in your company wiki out of what a client workspace already documented.
  • Update properties and append notes to the right page without disconnecting anything.
  • Sweep every workspace for the Adobe renewal date instead of guessing where it was filed.

Each workspace keeps its own permissions, and every result reports the workspace it came from.

The self-hosted route, and what the second workspace costs

Notion also ships a server you run yourself, authenticated with an internal integration secret, the ntn_ token, read from a NOTION_TOKEN environment variable. One secret is one workspace. Claire Thompson, holding her own company workspace and two client workspaces, is not managing one integration with three logins. She is managing three server entries, three integrations created inside three different Notion accounts, and three secrets in a shell profile.

The token alone is not enough either. Notion’s setup notes tell you to open the Access tab in the integration’s settings, or the Connections menu on a page, and share each page or database with the integration first. That is the most common report from people whose Claude Code session comes back empty: a valid token, a clean config, and pages nobody shared. Sharing a parent covers its subtree, and you still do it once per workspace.

The hosted server asks at OAuth time instead, which moves that problem rather than removing it. Notion’s MCP documentation is direct about the boundary: once you authorize, the client can read and update content you can access in the selected workspace. The selection is the connection.

The part that outlives the session

Terminal sessions end. The workspace does not. The intake row that needs an owner, the weekly status roll-up, the client page that should exist the moment a deal closes: all of it recurs, and none of it should wait for you to open a window.

That work belongs in a Carly workflow or a Carly agent, which runs with nothing open and no session attached. Carly watches each connected workspace as its own trigger source, so a rule can fire on a row landing in a client’s intake database and stay quiet in your own.

One detail matters if you want Carly inside a Claude Code routine. Routines run in the cloud and draw their connectors from your claude.ai account, while a server added locally with claude mcp add lives on your machine. Add Carly at claude.ai/customize/connectors as well, or commit it in .mcp.json so it travels with the cloned repository. Routines also start from a schedule, a GitHub event or an API call, and every one needs a repository, so none of them notices a page changing in Notion.

Rolling this out across a team, with shared workspaces and agents of their own, is available too: book a call.

Notion MCP servers versus Carly in Claude Code

NeedNotion MCP serverCarly MCP server
Search pages and databasesYesYes
Create and update pagesYesYes
Cover every teamspace in one workspaceYesYes
Hold three workspaces at onceOne authorization eachOne server, all of them
Answer across every workspace in one replyNoYes
Maintain your own integrations and secretsSelf-hosted route, yesNo
Add a fourth workspace laterNew server entryNo config change
Keep the work running with the terminal closedNoYes

Carly gives Claude Code one workspace-aware Notion toolset instead of a stack of per-workspace servers. Carly offers free Zapier-style workflows; AI agents start at $35/month.

Quick fixes when a workspace does not answer

ProblemFix
Server shows ! Needs authenticationRun claude mcp login carly and finish the browser flow
Server missing in another projectRe-add with --scope user, or move it out of local scope
claude -p reports the tools are unavailableSign in once with /mcp, then rerun the script
Notion authorized the same workspace twiceRemove the duplicate and reconnect, switching workspace first
A page is invisible to Claude CodeWiden the connection’s page access, or share the parent page
Only some workspaces answeredAsk for all of them explicitly and require the source workspace

Frequently asked questions

Can Claude Code connect to two Notion workspaces?

Not through one Notion authorization. The OAuth grant covers the workspace you selected, and a feature request on the Claude Code GitHub repository confirms one Notion workspace per Claude account. Connect every workspace to Carly, register Carly once, and a single session works across all of them together.

Does Claude Code have a built-in Notion connector?

It inherits the connectors on your claude.ai account when you sign in with a subscription login, and Notion’s is one of them, at one workspace. Everything past that is decided by the MCP server you register. Point Claude Code at https://carlyassistant.com/mcp/ and every workspace Carly holds is reachable from one session.

What about the Notion plugin for Claude Code?

Notion publishes a Claude Code plugin that bundles its skills, its MCP server and a set of slash commands, installed from a plugin marketplace. It is a convenient wrapper around the same server, so it inherits the same single authorization.

Will this work in a non-interactive run?

Yes, once you have signed in. Claude Code cannot run an OAuth flow during a claude -p run, so complete claude mcp login carly from an interactive session first and the script inherits the stored token.

Should I use Claude Code for Notion work?

For scripted or one-off work from a terminal, it is a genuine fit. Recurring roll-ups, intake routing and status updates belong in a Carly workflow that runs without a session open.


Related: Multiple Notion workspaces in Claude · Multiple email accounts in Claude Code · Multiple Google Drive accounts in Claude Code · Multiple Slack workspaces in Claude Code · Claude Code MCP · Notion MCP · Notion

Ready to automate your busywork?

Carly schedules, researches, and briefs you—so you can focus on what matters.

See what people say

"Before Carly, I relied on a Calendly link, but the whole process felt impersonal and not very professional. Carly changed that by handling all the back-and-forth, so I'm no longer stuck in endless email threads trying to line up schedules.

Now Carly reaches out to candidates, shares my real-time availability, lets them pick a slot, then sends a Zoom link and drops it straight into my calendar. She sends reminders to both of us before each call, which has significantly reduced no-shows and last-minute confusion.

On top of scheduling, Carly acts like a full executive assistant, sending me my schedule the night before so I can prepare for each call. It reminds me of the old x.ai assistant, but Carly is noticeably smarter, faster, and better suited to my healthcare recruitment business."

Gus Ibrahim, Founder & Director, IHR