How-to · 3-minute setup
How to connect Notion to Cursor with Syncore
Cursor has shipped MCP support since version 0.45. Syncore plugs into that MCP support and gives Cursor 74 pre-wired tools — Notion among them. By the end of this guide, the Composer panel in Cursor can search your Notion pages, query databases with typed filters, create new pages, and append Markdown content. Both read and write directions, with credentials encrypted on your machine.
What you'll need
- Cursor 0.45 or later. Check via Cursor → About.
- A Notion workspace where you're an editor (so the OAuth grant can pick up the pages you care about).
- A terminal — macOS / Linux / Windows PowerShell all work.
Step 1 — Install Syncore
# macOS / Linux
curl -fsSL https://syncorelabs.ai/install.sh | sh
# Windows (PowerShell)
powershell -c "iwr -useb https://syncorelabs.ai/install.ps1 | iex"The installer downloads the Syncore CLI + daemon + 74 bundled skills to ~/.syncore/ and updates your PATH.
Step 2 — Log in
syncore loginBrowser opens for sign-in. The CLI generates a 256-bit master key in your OS keychain and a long-lived Supabase session. From this point, every credential file Syncore writes is AES-256-GCM encrypted with that master key.
Step 3 — Authorise Notion at /connect
Open syncorelabs.ai/connect in your browser. Click the Notion tile in the Productivity category. Notion's OAuth screen asks which pages and databases the Syncore integration should be able to read and write to. You can select an entire workspace or just a folder of pages — the typed subset constrains what your agent can ever touch.
On callback, the Notion access token is encrypted with your master key and synced to your machine via the Syncore vault.
Step 4 — Configure Cursor
syncore setupThe CLI auto-detects every installed MCP client. For Cursor it writes to ~/.cursor/mcp.json:
{
"mcpServers": {
"syncore": {
"command": "/Users/you/.syncore/bin/syncore-daemon",
"args": ["--mcp-stdio"]
}
}
}Fully quit Cursor (cmd+Q on macOS, not just close the window) and reopen it. Cursor reads MCP config at startup; merely closing the window leaves the old process running with stale config.
Step 5 — Test it in Composer
Open the Composer panel (Cmd+I on macOS) and try a read-only prompt first:
Find our Q2 roadmap page in Notion and list the top three initiatives.
Use the notion search and read tools.Cursor will call notion__search_pages with query="Q2 roadmap", pick the best match, then call notion__get_page on its page id to retrieve the body. The model synthesises the answer.
Reading Notion pages from your agent
The Notion skill exposes 7 tools. The read-side ones:
notion__search_pages(query)— full-text search across pages and databases the integration can see.notion__get_page(page_id)— full page content as Markdown.notion__get_database(database_id)— schema (property names, types, select options, relations).notion__query_database(database_id, filter, sorts)— typed filters with comparators (equals, contains, on_or_after, etc.).
Writing back to Notion
Three write-side tools. Pair them with reads to build round-trip flows like “read this commit message, append the changelog entry to my Releases page”:
notion__create_page(title, content_md?, parent_id?)— new workspace-level page, child page, or data source entry.notion__update_page(page_id, properties, append_md)— change properties or append Markdown body.notion__create_database_item(database_id, properties)— typed inserts respecting schema.
Real prompts to try in Cursor
Read flows:
- “Read our Notion engineering wiki for how we handle authentication, then implement the new endpoint.”
- “Search Notion for our incident postmortem template and use it for this new doc.”
- “Query the Sprint Tasks database for everything assigned to me with status ‘In progress’.”
Write flows:
- “Read this PR diff and append a changelog entry to the ‘Releases’ Notion page.”
- “Create a new page in the Engineering database titled ‘Postmortem 2026-05-02’ with sections What Happened / Root Cause / Action Items.”
- “Update the Sprint Tasks item LIN-89: status ‘Shipped’, add the PR URL to the body.”
Cross-tool workflows
The point of having Notion as one of 74 wired-up Syncore skills is composability. Try:
- Linear → Notion: “Pull every Linear issue closed this sprint, write a release note in Notion under the Releases database.”
- GitHub → Notion: “Read the README of
ericwang915/Syncore, file the architecture summary into the Engineering wiki under a new page.” - Meeting → Notion: “Summarise the meeting we just finished (Syncore Notes), then create a Notion page in the Meetings database with title, attendees, decisions, action items.”
- Web → Notion: “Use Firecrawl to scrape this competitor's pricing page, file the structured comparison as a new Notion page.”
Troubleshooting
Cursor doesn't list any Syncore tools.
Cursor reads MCP config at startup. Fully quit (Cmd+Q on macOS, right-click → Quit on Windows) and reopen. If still empty, run syncore doctor to diagnose the daemon or the config.
“Page not found” from a tool call.
The Notion OAuth grant is scoped to specific pages / databases. Either widen the scope at /connect (reconnect Notion → pick more pages) or invite the Syncore integration as a member of the page in Notion's share menu.
Database query returns no rows even though they exist.
The filter syntax has to match Notion's typed schema exactly — a select property uses { select: { equals: "..." } }, a date uses { date: { on_or_after: "2026-05-01" } }. Have your agent call notion__get_database first to see the schema, then build the filter from the returned property types.
Related skills: Notion · Linear · GitHub · Meeting Notes. Or read the same guide for connecting Gmail to Claude.
Ready to install Syncore?
One install gives Claude, Cursor, ChatGPT, Windsurf, and Codex access to 70+ premium tools — no API keys to start.