📑 Notion MCP Agent
🎓 FREE Step-by-Step Tutorial
👉 Click here to follow our complete step-by-step tutorial and learn how to build this from scratch with detailed code walkthroughs, explanations, and best practices.
A terminal-based Notion Agent for interacting with your Notion pages using natural language through the Notion MCP (Model Context Protocol) server.
Features
- Interact with Notion pages via a command-line interface
- Perform update, insert, retrieve operations on your Notion pages
- Create and edit blocks, lists, tables, and other Notion structures
- Add comments to blocks
- Search for specific information
- Remembers conversation context for multi-turn interactions
- Session management for persistent conversations
Prerequisites
- Python 3.10+
- A Notion account with admin permissions
- A Notion Integration token
- An OpenAI API key
Installation
- Clone the repository
- Install the required Python packages:
pip install -r requirements.txt
- Install the Notion MCP server (will be done automatically when you run the app)
Setting Up Notion Integration
Creating a Notion Integration
- Go to Notion Integrations
- Click "New integration"
- Name your integration (e.g., "Notion Assistant")
- Select the capabilities needed (Read & Write content)
- Submit and copy your "Internal Integration Token"
Sharing Your Notion Page with the Integration
- Open your Notion page
- Click the three dots (⋮) in the top-right corner of the page
- Select "Add connections" from the dropdown menu
- Search for your integration name in the search box
- Click on your integration to add it to the page
- Confirm by clicking "Confirm" in the dialog that appears
Alternatively, you can also share via the "Share" button:
- Click "Share" in the top right
- In the sharing dialog, search for your integration name (preceded by "@")
- Click on your integration to add it
- Click "Invite" to grant it access to your page
Both methods will grant your integration full access to the page and its content.
Finding Your Notion Page ID
- Open your Notion page in a browser
- Copy the URL, which looks like:
https://www.notion.so/workspace/Your-Page-1f5b8a8ba283... - The ID is the part after the last dash and before any query parameters
Example:
1f5b8a8bad058a7e39a6
Configuration
You can configure the agent using environment variables:
NOTION_API_KEY: Your Notion Integration tokenOPENAI_API_KEY: Your OpenAI API keyNOTION_PAGE_ID: The ID of your Notion page
Alternatively, you can set these values directly in the script.
Usage
Run the agent from the command line:
python notion_mcp_agent.py
When you start the agent, it will prompt you to enter your Notion page ID. You can:
- Enter your page ID at the prompt
- Press Enter without typing anything to use the default page ID (if set)
- Provide the page ID directly as a command-line argument (bypassing the prompt):
python notion_mcp_agent.py your-page-id-here
Conversation Flow
Each time you start the agent, it creates a unique user ID and session ID to maintain conversation context. This allows the agent to remember previous interactions and continue coherent conversations even after you close and restart the application.
You can exit the conversation at any time by typing exit, quit, bye, or goodbye.
Example Queries
- "What's on my Notion page?"
- "Add a new paragraph saying 'Meeting notes for today'"
- "Create a bullet list with three items: Apple, Banana, Orange"
- "Add a comment to the first paragraph saying 'This looks good!'"
- "Search for any mentions of meetings"
- "Summarize our conversation so far"