Skip to main content
Glama
bramleyjl
by bramleyjl

notion-mcp

Personal Notion MCP server with domain-specific tools for task management and workspace integration. Wraps the Notion REST API with tools that encode workspace-specific structure (database IDs, templates, status values) so callers don't need to know the details.

Tools

Tool

Description

notion_create_task

Create a task in the Task List kanban board

notion_get_tasks

Query tasks, optionally filtered by status

notion_update_task_status

Move a task to a new kanban column

notion_get_page

Get a page's properties and metadata

notion_update_page_properties

Update properties on a page

notion_get_page_body

Get a page's body content (blocks), converted to markdown

notion_update_page_body

Replace a page's body content from markdown (full replace)

Related MCP server: Notion MCP Server

Setup

Prerequisites

  • Python 3.12+

  • A Notion integration with access to the target workspace

Installation

git clone git@github.com:bramleyjl/notion-mcp.git ~/Projects/mcps/notion-mcp
cd ~/Projects/mcps/notion-mcp
pip install -e .

Configuration

cp .env.example .env
# Edit .env and set NOTION_API_KEY to your Notion integration token

Get a token at notion.so/my-integrations — create an internal integration and share your target databases with it.

Running

Intended to run as a persistent HTTP server on the home server (pangolin), so it's always available to Claude CLI and other MCP clients on the network.

notion-mcp --transport http --port 8766

See deploy/ for systemd unit examples.

MCP Config

Primary (HTTP — pangolin): add to ~/.claude/settings.json:

"notion-mcp": {
  "type": "http",
  "url": "http://YOUR_SERVER_IP:8766/mcp"
}

Local fallback (if pangolin is unavailable):

"notion-mcp": {
  "type": "stdio",
  "command": "notion-mcp",
  "env": {
    "NOTION_API_KEY": "your_token_here"
  }
}

Related MCP Connectors

Related MCP Servers