Skip to main content
Glama
Notion Advisor

Notion Advisor

Notion Advisor

An MCP (Model Context Protocol) server that provides AI assistants with full access to Notion workspaces. Enables Claude to search, read, create, and update pages, databases, and blocks.

Features

  • Search & Discovery: Search across all pages and databases in your workspace

  • Page Operations: Create, read, update, and archive pages

  • Content Management: Add, update, and delete content blocks with markdown support

  • Database Operations: Query databases with filters and sorts, create new databases

  • User Management: List workspace users and get user details

  • Rate Limiting: Built-in rate limiting to respect Notion API limits (3 req/sec)

  • Markdown Conversion: Automatic conversion between markdown and Notion blocks

Related MCP server: notion-mcp-server

Installation

npm install -g @m2ai-mcp/notion-advisor

Or use directly with npx (no install required):

npx @m2ai-mcp/notion-advisor

Configuration

1. Create a Notion Integration

  1. Go to Notion Integrations

  2. Click "New integration"

  3. Select "Internal integration"

  4. Grant required capabilities:

    • Read content

    • Update content

    • Insert content

    • Read user information (optional)

  5. Copy the "Internal Integration Token"

2. Share Content with Integration

For the integration to access pages and databases:

  1. Open the page or database in Notion

  2. Click the "..." menu in the top right

  3. Click "Add connections"

  4. Select your integration

3. Set Environment Variable

export NOTION_API_KEY=secret_your_integration_token_here

Or create a .env file:

NOTION_API_KEY=secret_your_integration_token_here

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["@m2ai-mcp/notion-advisor"],
      "env": {
        "NOTION_API_KEY": "secret_your_token_here"
      }
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "notion": {
      "command": "notion-advisor",
      "env": {
        "NOTION_API_KEY": "secret_your_token_here"
      }
    }
  }
}

Available Tools

Search & Discovery

Tool

Description

search

Search across all pages and databases by keyword or title

Page Operations

Tool

Description

get_page

Retrieve a page's properties and metadata

create_page

Create a new page in a database or as child of another page

update_page

Update a page's properties (not content blocks)

get_page_content

Retrieve all content blocks from a page

Block Operations

Tool

Description

append_blocks

Add new content blocks to a page (supports markdown)

update_block

Update an existing block's content

delete_block

Delete (archive) a block

Database Operations

Tool

Description

get_database

Retrieve database schema and properties

query_database

Query a database with filters and sorts

create_database

Create a new database as child of a page

User Operations

Tool

Description

list_users

List all users in the workspace

get_user

Get details about a specific user

Markdown Support

The server supports conversion of common markdown to Notion blocks:

  • Headings (H1, H2, H3)

  • Bold, italic, strikethrough, inline code

  • Bullet and numbered lists

  • Checkboxes / todo items

  • Code blocks with language

  • Links

  • Blockquotes

  • Horizontal rules

Example

# My Page Title

This is a paragraph with **bold** and *italic* text.

- Bullet item 1
- Bullet item 2

1. Numbered item
2. Another item

- [ ] Todo item
- [x] Completed item

> A blockquote

\`\`\`javascript
const greeting = "Hello, World!";
\`\`\`

Examples

Search for Pages

{
  "query": "meeting notes",
  "filter_type": "page",
  "page_size": 10
}

Create a Page in a Database

{
  "parent_id": "database-id-here",
  "parent_type": "database_id",
  "title": "New Task",
  "properties": {
    "Status": { "select": { "name": "In Progress" } }
  },
  "content": "## Task Description\n\nThis is the task content."
}

Query a Database

{
  "database_id": "database-id-here",
  "filter": {
    "property": "Status",
    "select": { "equals": "Done" }
  },
  "sorts": [
    { "property": "Due Date", "direction": "ascending" }
  ]
}

Append Content to a Page

{
  "parent_id": "page-id-here",
  "content": "## New Section\n\nAdding more content to this page.\n\n- Item 1\n- Item 2"
}

Known Limitations

  • Cannot access pages not shared with the integration

  • File/image uploads not supported (use URLs instead)

  • Comments API limited

  • Synced blocks are read-only

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run with coverage
npm run test:coverage

License

MIT

Author

Me, Myself Plus AI LLC

Available Tools

13 tools
append_blocksA

Add new content blocks to a page or block. Use when user wants to add content to an existing page.

Inputs: content (required), parent_id (required).

create_databaseA

Create a new database as a child of a page. Use when user wants to set up a new structured data collection.

Inputs: title (required), properties (required), parent_page_id (required).

create_pageB

Create a new page in a database or as a child of another page. Use when user wants to add new content to Notion.

Inputs: title (required), parent_id (required), parent_type (required), content, +1 more.

delete_blockA

Delete a block (archive it). Use when user wants to remove content from a page.

Inputs: block_id (required).

get_databaseA

Retrieve database schema and properties. Use when user wants to understand database structure.

Inputs: database_id (required).

get_pageA

Retrieve a page's properties and metadata. Use when user wants to view page details or check properties.

Inputs: page_id (required).

get_page_contentB

Retrieve all content blocks from a page. Use when user wants to read the full content of a page.

Inputs: page_id (required), format.

get_userA

Get details about a specific user. Use when user needs info about a team member.

Inputs: user_id (required).

list_usersA

List all users in the workspace. Use when user needs to reference team members.

Inputs: page_size.

query_databaseA

Query a database with optional filters and sorts. Use when user wants to retrieve specific entries from a database.

Inputs: database_id (required), sorts, filter, page_size.

update_blockA

Update an existing block's content. Use when user wants to modify specific content.

Inputs: content (required), block_id (required).

update_pageA

Update a page's properties (not content blocks). Use when user wants to modify page metadata or database properties.

Inputs: page_id (required), properties (required), archived.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool targets a distinct resource-action combination: pages vs. databases vs. blocks vs. users, and retrieval vs. creation vs. update vs. deletion. Even similar tools like get_page and get_page_content are clearly separated by properties/metadata vs. content blocks.

    Naming Consistency4/5

    Most tools follow a clear verb_noun pattern like get_page, create_database, update_block, and delete_block. Minor deviations include the bare 'search' and 'query_database' instead of something like 'search_pages' or 'get_database_entries', but the overall style is predictable.

    Tool Count5/5

    Thirteen tools is well-scoped for a Notion server covering pages, databases, blocks, search, and users. Each tool maps to a meaningful Notion API operation without excessive overlap or unnecessary surface area.

    Completeness4/5

    The core lifecycle for pages, blocks, and databases is represented: create, read, update, delete/archive, plus query and search. Minor gaps exist such as no update_database operation or a dedicated delete_page, though update_page may cover archiving.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      An MCP server that enables natural language interaction with the Notion API, allowing users to search, comment, create pages, and access content within their Notion workspace.
      265,848 npm
      -