About Notion MCP Server
Notion MCP Server connects Claude to Notion workspaces through the Notion API. It provides tools for managing blocks, pages, and databases, including creating and querying database entries.
Key features
- 01Append, retrieve, and delete blocks
- 02Retrieve pages and update properties
- 03Create and update databases
- 04Query databases with filters and sorting
- 05Create database items
Use cases
- 01Add or remove blocks in a Notion page
- 02Inspect page and block content
- 03Create or modify a workspace database
- 04Find and add database entries
MCP support
Exposes Notion API operations as tools for MCP clients, including block, page, and database management.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMENotion MCP Server
MCP Server for the Notion API, enabling Claude to interact with Notion workspaces.
Tools
-
notion_append_block_children- Append child blocks to a parent block.
- Required inputs:
block_id(string): The ID of the parent block.children(array): Array of block objects to append.
- Returns: Information about the appended blocks.
-
notion_retrieve_block- Retrieve information about a specific block.
- Required inputs:
block_id(string): The ID of the block to retrieve.
- Returns: Detailed information about the block.
-
notion_retrieve_block_children- Retrieve the children of a specific block.
- Required inputs:
block_id(string): The ID of the parent block.
- Optional inputs:
start_cursor(string): Cursor for the next page of results.page_size(number, default: 100, max: 100): Number of blocks to retrieve.
- Returns: List of child blocks.
-
notion_delete_block- Delete a specific block.
- Required inputs:
block_id(string): The ID of the block to delete.
- Returns: Confirmation of the deletion.
-
notion_retrieve_page- Retrieve information about a specific page.
- Required inputs:
page_id(string): The ID of the page to retrieve.
- Returns: Detailed information about the page.
-
notion_update_page_properties- Update properties of a page.
- Required inputs:
page_id(string): The ID of the page to update.properties(object): Properties to update.
- Returns: Information about the updated page.
-
notion_create_database- Create a new database.
- Required inputs:
parent(object): Parent object of the database.title(array): Title of the database as a rich text array.properties(object): Property schema of the database.
- Returns: Information about the created database.
-
notion_query_database- Query a database.
- Required inputs:
database_id(string): The ID of the database to query.
- Optional inputs:
filter(object): Filter conditions.sorts(array): Sorting conditions.start_cursor(string): Cursor for the next page of results.page_size(number, default: 100, max: 100): Number of results to retrieve.
- Returns: List of results from the query.
-
notion_retrieve_database- Retrieve information about a specific database.
- Required inputs:
database_id(string): The ID of the database to retrieve.
- Returns: Detailed information about the database.
-
notion_update_database- Update information about a database.
- Required inputs:
database_id(string): The ID of the database to update.
- Optional inputs:
title(array): New title for the database.description(array): New description for the database.properties(object): Updated property schema.
- Returns: Information about the updated database.
-
notion_create_database_item- Create a new item in a Notion database.
- Required inputs:
database_id(string): The ID of the database to add the item to.properties(object): The properties of the new item. These should match the database schema.
- Returns: Information about the newly created item.
Setup
Here is a detailed explanation of the steps mentioned above in the following articles:
- English Version: https://dev.to/suekou/operating-notion-via-claude-desktop-using-mcp-c0h
- Japanese Version: https://qiita.com/suekou/items/44c864583f5e3e6325d9
-
Create a Notion Integration:
- Visit the Notion Your Integrations page.
- Click "New Integration".
- Name your integration and select appropriate permissions (e.g., "Read content", "Update content").
-
Retrieve the Secret Key:
- Copy the "Internal Integration Token" from your integration.
- This token will be used for authentication.
-
Add the Integration to Your Workspace:
- Open the page or database you want the integration to access in Notion.
- Click the navigation button in the top right corner.
- Click "Connect to" button and select your integration.
-
Configure Claude Desktop: Add the following to your
claude_desktop_config.json:{ "mcpServers": { "notion": { "command": "node", "args": ["your-built-file-path"], "env": { "NOTION_API_TOKEN": "your-integration-token" } } } }
Troubleshooting
If you encounter permission errors:
- Ensure the integration has the required permissions.
- Verify that the integration is invited to the relevant pages or databases.
- Confirm the token and configuration are correctly set in
claude_desktop_config.json.
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.