MCP Hub
Back to servers

MCP Notion Server (@suncreation)

An MCP server that enables LLMs to interact with Notion workspaces via the Notion API, supporting page creation, database management, and content retrieval. It features markdown conversion to optimize token usage and enhanced error handling for more reliable workspace interactions.

Updated
Feb 2, 2026

@suncreation/mcp-notion-server

MCP Server for the Notion API, enabling LLM to interact with Notion workspaces.

Fork Notice: This is a fork of @suekou/mcp-notion-server with enhancements including improved error handling, additional features, and better environment variable support.

Features

  • Full Notion API integration via MCP (Model Context Protocol)
  • Markdown conversion to reduce token usage
  • Page creation (notion_create_page) - Create new pages under existing pages
  • Supports both NOTION_API_TOKEN and NOTION_API_KEY environment variables
  • Enhanced error handling with detailed HTTP status code messages

Installation

npx -y @suncreation/mcp-notion-server

Quick Start

1. Create a Notion Integration

  1. Visit the Notion Integrations page
  2. Click "New Integration"
  3. Name your integration and select permissions:
    • ✅ Read content
    • ✅ Update content
    • ✅ Insert content
  4. Copy the "Internal Integration Token" (starts with ntn_ or secret_)

2. Connect Integration to Pages

  1. Open the Notion page you want to access
  2. Click "···" (top right) → "Connections"
  3. Add your integration

3. Configure Your MCP Client

OpenCode

Add to ~/.config/opencode/opencode.json:

{
  "mcp": {
    "notion": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "your-integration-token"
      },
      "enabled": true
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@suncreation/mcp-notion-server"],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token"
      }
    }
  }
}

Multiple Workspaces

You can connect multiple Notion workspaces by using different names:

{
  "mcp": {
    "notion-work": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "work-workspace-token"
      },
      "enabled": true
    },
    "notion-personal": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "personal-workspace-token"
      },
      "enabled": true
    }
  }
}

Environment Variables

VariableRequiredDescription
NOTION_API_TOKENYes*Your Notion API integration token
NOTION_API_KEYYes*Alternative name for the token (either works)
NOTION_MARKDOWN_CONVERSIONNoSet to "true" for Markdown output (reduces tokens)

*One of NOTION_API_TOKEN or NOTION_API_KEY is required.

Available Tools

Pages

ToolDescription
notion_retrieve_pageGet page information
notion_update_page_propertiesUpdate page properties
notion_create_pageCreate a new page (enhanced feature)

Blocks

ToolDescription
notion_retrieve_blockGet block information
notion_retrieve_block_childrenGet child blocks
notion_append_block_childrenAdd blocks to a page/block
notion_delete_blockDelete a block

Databases

ToolDescription
notion_create_databaseCreate a new database
notion_query_databaseQuery database entries
notion_retrieve_databaseGet database schema
notion_update_databaseUpdate database properties
notion_create_database_itemAdd item to database

Search & Users

ToolDescription
notion_searchSearch pages/databases by title
notion_list_all_usersList workspace users (Enterprise)
notion_retrieve_userGet user details (Enterprise)
notion_retrieve_bot_userGet bot user info

Comments

ToolDescription
notion_create_commentAdd a comment
notion_retrieve_commentsGet comments on a page/block

Command Line Options

# Enable only specific tools
node build/index.js --enabledTools=notion_retrieve_page,notion_query_database

# Read-only mode example
node build/index.js --enabledTools=notion_retrieve_block,notion_retrieve_block_children,notion_retrieve_page,notion_query_database,notion_retrieve_database,notion_search

Markdown Conversion

Enable Markdown conversion for reduced token usage:

{
  "environment": {
    "NOTION_API_TOKEN": "your-token",
    "NOTION_MARKDOWN_CONVERSION": "true"
  }
}
  • Use format: "markdown" for readable output (viewing)
  • Use format: "json" for structured data (editing)

Troubleshooting

IssueSolution
Permission deniedEnsure integration is added to the page via "Connections"
401 UnauthorizedCheck your API token is correct
404 Not FoundVerify the page/database ID is correct
Rate limitedAdd delays between requests

Development

# Clone and install
git clone https://github.com/SunCreation/mcp-notion-server.git
cd mcp-notion-server
npm install

# Build
npm run build

# Test
npm test

# Watch mode
npm run watch

Changes from Original

This fork includes the following enhancements over @suekou/mcp-notion-server:

  1. notion_create_page tool - Create new pages under existing pages
  2. Dual environment variable support - Both NOTION_API_TOKEN and NOTION_API_KEY work
  3. Enhanced error handling - Detailed HTTP status code messages for easier debugging
  4. setApiVersion() method - Dynamically change API version if needed

License

MIT License - see LICENSE file.

Credits

Reviews

No reviews yet

Sign in to write a review