Notion MCP Server

# Notion MCP Server A Model Context Protocol (MCP) server that connects Claude and other AI assistants to your Notion workspace. This integration allows AI assistants to interact with your Notion databases, pages, and blocks. ## What is this? This tool acts as a bridge between AI assistants (like Claude) and your Notion workspace. It allows the AI to: - View and search your Notion databases - Create and update pages - Manage content blocks - And much more! ## Step-by-Step Setup Guide ### Prerequisites - [Node.js](https://nodejs.org/) (version 14 or higher) - A Notion account - Claude Desktop app (if using with Claude) ### 1. Getting Your Notion API Key 1. Go to [https://www.notion.so/my-integrations](https://www.notion.so/my-integrations) 2. Click the blue **"+ New integration"** button 3. Fill in the details: - **Name**: Choose a name like "Claude Assistant" or "AI Helper" - **Logo**: Optional - **Associated workspace**: Select your Notion workspace 4. Click **"Submit"** 5. On the next page, find the **"Internal Integration Token"** section 6. Click **"Show"** and copy the token (it starts with `secret_`) ## 2. Setting Up This Server ### Download the Repository **Option A: Download as ZIP (Recommended for beginners)** 1. Go to the GitHub repository: https://github.com/Sjotie/notionMCP/ 2. Click the green "Code" button at the top right 3. Select "Download ZIP" 4. Once downloaded, extract the ZIP file to a location on your computer - Windows: Right-click the ZIP file and select "Extract All" - Mac: Double-click the ZIP file to extract **Option B: Clone with Git (For users familiar with Git)** 1. Open a command prompt or terminal - Windows: Press `Win+R`, type `cmd`, and press Enter - Mac: Open Terminal from Applications > Utilities 2. Navigate to where you want to store the repository ``` cd path/to/desired/location ``` 3. Clone the repository ``` git clone https://github.com/Sjotie/notionMCP/ ``` ### Navigate to the Project Directory After downloading or cloning, you need to navigate to the project folder using the `cd` (change directory) command: **If you downloaded the ZIP (Option A):** 1. Open a command prompt or terminal 2. Use the `cd` command to navigate to where you extracted the ZIP file: ``` cd path/to/extracted/folder/notionMCP ``` For example: - On Windows: `cd C:\Users\YourName\Downloads\notionMCP` - On Mac: `cd /Users/YourName/Downloads/notionMCP` **If you cloned with Git (Option B):** 1. The repository should have been cloned into a folder named "notionMCP" 2. If you're still in the same terminal window after cloning, simply type: ``` cd notionMCP ``` **How to know you're in the right directory:** - After using the `cd` command, you can check your current location: - On Windows: Type `dir` and press Enter - you should see files like `server.js` - On Mac: Type `ls` and press Enter - you should see files like `server.js` ### Install Dependencies Once you're in the notionMCP directory, install the required dependencies: ``` npm install ``` This will install all the necessary Node.js packages. You should see a progress bar and eventually a message indicating the installation is finished. It might say something along the lines of "X Packages are looking for funding" - this is completely normal and means it worked. ### 3. Connecting to Notion Pages For security, Notion requires you to explicitly grant access to each page or database: 1. Open Notion and navigate to a page or database you want the AI to access 2. Click the **"•••"** (three dots) in the top-right corner 3. Select **"Add connections"** 4. Find and select the integration you created earlier 5. Repeat for any other pages or databases you want to make accessible ### 4. Connecting to Claude Desktop 1. Locate your Claude Desktop configuration file: - Windows: `%APPDATA%\Claude\claude_desktop_config.json` (Type this path in File Explorer address bar) - Mac: `~/Library/Application Support/Claude/claude_desktop_config.json` (In Finder, press Cmd+Shift+G and paste this path) 2. Open the file in a text editor. If it doesn't exist, create it with the following content: ```json { "mcpServers": { "notion": { "command": "node", "args": [ "C:\\path\\to\\notion-mcp-server\\server.js" ], "env": { "NOTION_API_KEY": "your_notion_api_key_here" } } } } ``` 3. Replace: - `C:\\path\\to\\notion-mcp-server\\server.js` with the actual path to the server.js file - Windows: Use double backslashes (\\\\) in the path - Mac: Use forward slashes (/) - `your_notion_api_key_here` with your Notion API key 4. Save the file and restart Claude Desktop ### 5. Testing the Connection 1. Start a new conversation in Claude 2. Ask Claude to interact with your Notion workspace, for example: - "Show me a list of my Notion databases" - "Create a new page in my Tasks database with title 'Test Task'" ## Available Tools The server provides these tools to AI assistants: - **list-databases**: View all accessible databases - **query-database**: Get entries from a database - **create-page**: Add a new page to a database - **update-page**: Modify an existing page - **create-database**: Create a new database - **update-database**: Modify a database structure - **get-page**: View a specific page - **get-block-children**: View content blocks - **append-block-children**: Add content to a page - **update-block**: Edit content blocks - **get-block**: View a specific block - **search**: Find content across your workspace ## Troubleshooting ### Common Issues: 1. **"Connection failed" in Claude** - Make sure the server path in claude_desktop_config.json is correct - Check that your Notion API key is valid - Ensure Node.js is installed 2. **"Access denied" when accessing Notion content** - Make sure you've shared the page/database with your integration - Check that your API key has the necessary permissions 3. **Server won't start** - Ensure all dependencies are installed (`npm install`) - Check that the .env file exists with your API key ### Getting Help If you encounter issues not covered here, please: - Check the console output for error messages - Ensure your Notion API key is valid - Verify that your integration has access to the pages/databases ## License MIT