Skip to main content
Glama

notion-mcp

npm version Coverage

MCP server with full Notion capabilities (23 tools)

npm: https://www.npmjs.com/package/@west10tech/notion-mcp

Available Tools

This MCP server provides 23 tools:

Database Tools

  • notion_get_database: Get database by ID

  • notion_query_database: Query database pages

  • notion_create_database: Create a new database

  • notion_update_database: Update database properties

Page Tools

  • notion_get_page: Get page by ID

  • notion_create_page: Create a new page

  • notion_update_page: Update page properties

  • notion_get_page_property: Get page property by ID

Block Tools

  • notion_get_block_children: Get block children

  • notion_append_block_children: Append blocks to a parent block

  • notion_get_block: Get block by ID

  • notion_update_block: Update block content

  • notion_delete_block: Delete a block

User Tools

  • notion_list_users: List all users

  • notion_get_user: Get user by ID

  • notion_get_me: Get current bot user

Search & Comments

  • notion_search: Search pages and databases

  • notion_create_comment: Create a comment on a page or block

  • notion_get_comments: Get comments for a page or block

Template Tools

  • notion_create_page_from_template: Create a new page by copying blocks from a template page

  • notion_create_database_from_template: Create a new database by copying schema from a template database

Duplication Tools

  • notion_duplicate_page: Duplicate an existing page with its content blocks

  • notion_duplicate_database: Duplicate an existing database with its schema

Related MCP server: Notion MCP Server

Installation

npm install @west10tech/notion-mcp

Environment Setup

Create a .env file with the following variables:

NOTION_ACCESS_TOKEN=your_notion_access_token_here

Getting a Notion API Key

  1. Go to https://www.notion.so/my-integrations

  2. Click "New integration"

  3. Give it a name (e.g. "MCP Server") and select the workspace

  4. Under Capabilities, enable the permissions your integration needs (read content, update content, etc.)

  5. Click Submit and copy the Internal Integration Secret — this is your NOTION_ACCESS_TOKEN

  6. Important: Share pages/databases with your integration by clicking the ... menu on a page → Connections → select your integration

Usage

Running the server (stdio)

# Development mode
npm run dev

# Production mode
npm run build && npm start

Running with HTTP/SSE transport

# Start with HTTP transport
TRANSPORT_MODE=http PORT=3000 npm start

Environment variables for HTTP mode:

Variable

Default

Description

TRANSPORT_MODE

stdio

Set to http for HTTP/SSE transport

PORT

3000

HTTP server port

CORS_ORIGIN

*

Allowed CORS origin

HTTP endpoints:

  • POST / — MCP JSON-RPC messages

  • GET /health — Health check ({"status":"ok","server":"notion-mcp"})

Using with Claude Desktop

Add this to your Claude Desktop configuration:

{
  "mcpServers": {
    "notion-mcp": {
      "command": "npx",
      "args": ["@west10tech/notion-mcp"],
      "env": {
        "NOTION_ACCESS_TOKEN": "your_notion_access_token_here"
      }
    }
  }
}

Template & Duplication Workflows

Creating a page from a template

Use notion_create_page_from_template to copy the block structure of an existing page:

{
  "template_page_id": "abc123...",
  "parent": { "page_id": "def456..." },
  "title": "My New Page"
}

This reads all blocks from the template page and creates a new page with the same content.

Creating a database from a template

Use notion_create_database_from_template to copy the property schema of an existing database:

{
  "template_database_id": "abc123...",
  "parent": { "page_id": "def456..." },
  "title": "My New Database"
}

Duplicating a page

Use notion_duplicate_page to create an exact copy of a page (properties + blocks):

{
  "page_id": "abc123...",
  "title": "Custom Title"
}

If no title is provided, defaults to "Copy of {original title}". If no parent is provided, uses the same parent as the original.

Duplicating a database

Use notion_duplicate_database to copy a database's schema:

{
  "database_id": "abc123...",
  "title": "My Copy"
}

Advanced Features

Request Cancellation

This MCP server supports request cancellation according to the MCP cancellation specification. Clients can cancel in-progress requests by sending a notifications/cancelled message with the request ID.

When a request is cancelled:

  • The server immediately stops processing the request

  • Any ongoing API calls are aborted

  • Resources are cleaned up

  • No response is sent for the cancelled request

Progress Notifications

The server supports progress notifications for long-running operations according to the MCP progress specification.

To receive progress updates:

  1. Include a progressToken in your request metadata

  2. The server will send notifications/progress messages with:

    • Current progress value

    • Total value (when known)

    • Human-readable status messages

Progress is reported for:

  • Multi-step operations

  • Batch processing

  • Long-running API calls

  • Template and duplication operations

Example progress notification:

{
  "method": "notifications/progress",
  "params": {
    "progressToken": "operation-123",
    "progress": 45,
    "total": 100,
    "message": "Processing item 45 of 100..."
  }
}

TypeScript Types

All tool parameters are fully typed. Import types from @west10tech/notion-mcp/types:

  • GetDatabaseParams, QueryDatabaseParams, CreateDatabaseParams, UpdateDatabaseParams

  • GetPageParams, CreatePageParams, UpdatePageParams, GetPagePropertyParams

  • GetBlockChildrenParams, AppendBlockChildrenParams, GetBlockParams, UpdateBlockParams, DeleteBlockParams

  • ListUsersParams, GetUserParams

  • SearchParams, CreateCommentParams, GetCommentsParams

  • CreatePageFromTemplateParams, CreateDatabaseFromTemplateParams

  • DuplicatePageParams, DuplicateDatabaseParams

  • ToolResponse

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
9Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/w-10-m/notion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server