Labsco
MCP SERVER

Notion

by v-3

Search, read, write and comment on Notion pages and databases from an MCP client, page access granted one connection at a time.

Team Wikis & Documentation Platforms
Summary
Reach you grant page by page — and a fork the README points at.

The permission model is the thing to plan around: the integration only sees pages explicitly connected to it, so access grows deliberately instead of covering the workspace by default. One thing to read before you clone — the README credits sweir1/notion-server with the enhanced markdown support, the database operations and the improved error handling, and gives the clone command for that repository as an alternative to this one.

What it is

A Node MCP server for Notion that lets a model search a workspace, read pages back as clean markdown, create new pages from markdown, update existing ones, work at block level, handle comments, and create and query databases. It is built from source and run as `build/index.js`; the package declares the name `notionmcp` (1.0.0) with a `notion` binary.

What you get
  • Workspace search, page reads with clean formatting, page creation from rich markdown content, and updates to existing pages
  • Block-level operations — update and delete individual blocks rather than rewriting the page
  • Comments both ways: add them and retrieve them
  • Markdown that survives the round trip — H1 to H3 headings, code blocks with language, todo items with checkbox states, multi-line blockquotes, horizontal dividers, images with captions and nested bullet points
  • Database work: create and manage databases, add and update items, and query with filters and sorting
  • Database property types including title, rich text, number, select, multi-select, date and checkbox
  • Page creation taking a parent page ID, title and markdown body, and database queries taking a database ID with filter and sort objects — `create_page`, `query_database`
Requirements

Node.js v16 or higher, a Notion API key in `NOTION_API_KEY`, and an MCP-compatible client. Create the integration at Notion → My integrations and give it Content read/update/insert, Comments read/create and User information read. Then connect each page you want reachable from its "..." menu → Connections — the integration sees nothing you have not connected, so repeat it for every page or parent you intend to use. Installation is from source — clone the repository, `npm install`, `npm run build`, then point the client's command at the absolute path of `build/index.js` with the key in its env block. MIT licensed.