LabscoMCP early access ↗
BadhansenMCP SERVER

Notion MCP by Badhansen

A minimal Notion todo bridge — list every task on a page, add a new one, and mark one complete, all from a conversation.

Project & Task ManagementCommunity

LABSCO SUMMARY

Scoped to one page on purpose, which is why it is safe to wire up quickly.

The integration only reaches the page you explicitly shared with it, so an assistant with this connected cannot wander through the rest of your workspace. Three tools, no search and no database queries — this is a capture-and-complete loop, not a general Notion client.

What it is

A small MCP server that integrates with Notion's API to manage a personal todo list on one page. Three operations cover it: show every task, add a task from a description, and complete a task by ID. It talks to Notion's REST API directly with a pinned API version.

What you get

  • Every task on the configured page listed — show_all_todos
  • A new task added from a description — add_todo, taking a task argument
  • An existing task marked complete by ID — complete_todo, taking a task_id argument
  • A pinned Notion API version, so a change on Notion's side does not silently alter behaviour

Requirements

A Notion account with API access and a Notion integration token, plus a Notion page shared with that integration — create the integration at Notion's my-integrations page, then use the page's "..." menu and Add connections to grant it access. Python 3.11 or higher, with the environment created by uv venv and uv pip install -e .. Four settings go in .env: NOTION_TOKEN, PAGE_ID for the page holding the list, NOTION_VERSION pinned to 2022-06-28, and NOTION_BASE_URL set to https://api.notion.com/v1. The client runs it as uv --directory /path/to/notion-mcp/src run server.py over stdio. The project is notion-mcp 1.0.0.

Setup effort

Build from source