Notion-MCP
Integrate AI models with Notion to access and manage tasks, deadlines, and project statuses. Supports querying and modifying content within Notion workspaces through a standardized interface.
Author

ghubnerr
Quick Info
Actions
Tags
Notion MCP Server
A Model Context Protocol (MCP) server for integrating with Notion workspaces. This server provides a standardized interface for AI models to access, query, and modify content in Notion.
Prerequisites
- Node.js (v16 or higher)
- Notion API Key (from your Notion 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
.envfile 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
To use this Notion MCP server 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
The server exposes the following resources:
| Resource URI | Description |
|---|---|
notion://databases |
Lists all databases in the workspace |
notion://databases/{databaseId}/schema |
Retrieves the schema of a specific database |
notion://databases/{databaseId}/content |
Retrieves all pages/items from a specific database |
notion://pages/{pageId} |
Retrieves the content of a specific page |
notion://updates |
Retrieves recent updates and changes in the workspace |
Tools
The server provides the following tools:
Prompts
The server includes these pre-configured prompts:
| Prompt Name | Description |
|---|---|
upcoming-deadlines |
Get a list of upcoming deadlines |
project-status |
Summarize the status of a project |
daily-tasks |
Get a list of tasks for today |
Example Queries
Once connected to Claude, you can ask natural language questions about your Notion workspace:
- "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
To add new functionality:
- 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
Check server logs for detailed error information:
- 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
