Notion MCP Server
Prerequisites
- Node.js (v16 or higher)
- Notion API Key (from your [Notion integrations](https://www.notion.so/my-integrations))
- Connected Notion workspace with appropriate permissions
Installation
- Clone this repository: ``` git clone https://github.com/yourusername/notion-mcp-server.git cd notion-mcp-server ```
- Install dependencies: ``` npm install ```
- Create a `.env` file in the root directory with your Notion API key: ``` # Required NOTION_API_KEY=your_notion_api_key_here # Optional settings DEBUG=false REQUIRE_CONFIRMATION_FOR_CREATE=true REQUIRE_CONFIRMATION_FOR_UPDATE=true REQUIRE_CONFIRMATION_FOR_DELETE=true UPDATE_POLLING_INTERVAL=60000 MAX_BLOCK_DEPTH=3 BACKUP_DIR=./backups BACKUP_RETENTION_DAYS=30 MAX_BACKUPS_PER_PAGE=5 ```
- Build the project: ``` npm run build ```
- Start the server: ``` npm start ```
Using with Claude for Desktop
- Ensure Claude for Desktop is installed and updated to the latest version
- Open Claude for Desktop's configuration file: - On macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - On Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Add the server configuration: ```json { "mcpServers": { "notion": { "command": "node", "args": ["/path/to/notion-mcp-server/build/index.js"], "env": { "NOTION_API_KEY": "your_notion_api_key_here" } } } } ```
- Save the file and restart Claude for Desktop
Resources
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
Tools
Prompts
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
[object Object] | [object Object] |
Example Queries
- "What tasks are due today in my workspace?"
- "Show me the status of Project X"
- "Create a new page in my 'Ideas' database with title 'New Feature Concept'"
- "Update the status of task Y to 'Completed'"
- "What changes were made to my workspace in the last 24 hours?"
- "Summarize the upcoming deadlines for the next week"
- "Show me all backups for page abc123"
- "Restore page abc123 from the backup file page_abc123_2023-01-01.json"
Extending the Server
- **Add Resources**: Extend the resource handlers in `index.ts`
- **Add Tools**: Create new tool definitions in `index.ts`
- **Add Prompts**: Define new prompt templates in `index.ts`
- **Enhance API Integration**: Add new API functions in `notion-api.ts`
Logs
- **Claude for Desktop Logs**: Look in the Claude logs directory for MCP-related logs
- **Server Output**: Check standard output and error streams for server logs