Notion Service MCP Integration
Provides Notion API service invocation via the MCP protocol, enabling LLM to interact with the Notion workspace. Additionally, it employs Markdown conversion to reduce context size when communicating with LLMs, optimizing token usage and making interactions more efficient.
Environment Variables
- Configure NOTION_API_TOKEN as the API integration token you created on Notion
- Optionally configure NOTION_MARKDOWN_CONVERSION to "true" to enable experimental Markdown conversion. This can significantly reduce token consumption when viewing content, but may cause issues when attempting to edit page content.
🗺️ Feature List
Tool Identifier | Function Description | Core Parameters |
---|---|---|
notion_append_block_children | Appends child blocks to the target parent block | block_id , children |
notion_retrieve_block | Retrieves detailed information of the specified block | block_id |
notion_retrieve_block_children | Retrieves the list of child blocks for a parent block | block_id , start_cursor , page_size |
notion_delete_block | Deletes the specified block | block_id |
notion_retrieve_page | Retrieves detailed information of the specified page | page_id |
notion_update_page_properties | Updates page properties | page_id , properties |
notion_create_database | Create database | parent , properties , title |
notion_query_database | Queries records in the database | database_id , filter , sorts , start_cursor , page_size |
notion_retrieve_database | Retrieves detailed information of the specified database | database_id |
notion_update_database | Updates database information | database_id , title , description , properties |
notion_create_database_item | Creates a new item in the database | database_id , properties |
notion_search | Searches for pages or databases | query , filter , sort , start_cursor , page_size |
notion_list_all_users | Lists all users in the workspace (Enterprise feature) | start_cursor , page_size |
notion_retrieve_user | Retrieves detailed information of the specified user (Enterprise feature) | user_id |
notion_retrieve_bot_user | Retrieves bot user information | None |
notion_create_comment | Creates a comment | rich_text , parent , discussion_id |
notion_retrieve_comments | Retrieves the list of comments associated with a block or page | block_id , start_cursor , page_size |
Repository URL
https://github.com/suekou/mcp-notion-server/tree/main
🔌 Usage
Parameter Description
1. notion_append_block_children
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
block_id | Target parent block ID | string | The identifier of the parent block to which child blocks need to be appended |
children | List of child block objects | array | The array of block objects to be appended (following the Notion Block Object specification) |
Returns: Information about the appended block
2. notion_retrieve_block
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
block_id | Target block ID | string | The identifier of the block for which information needs to be retrieved |
Returns: Detailed information about the block
3. notion_retrieve_block_children
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
block_id | Parent block ID | string | The identifier of the parent block for which the child list needs to be retrieved |
start_cursor | Start cursor position | string | Optional. The starting cursor for pagination queries (from the previous response) |
page_size | Page size | number | Optional. The maximum number of results returned per request (default: 100, maximum: 100) |
Returns: Child block list
4. notion_delete_block
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
block_id | Block ID to delete | string | The identifier of the block to be deleted |
Returns: Deletion confirmation
5. notion_retrieve_page
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
page_id | Target page ID | string | The identifier of the page for which detailed information needs to be retrieved |
Returns: Detailed information about the page
6. notion_update_page_properties
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
page_id | Target page ID | string | The identifier of the page to be updated |
properties | Properties to update | object | Key-value pairs of properties to update (Notion Properties compliant) |
Returns: Information about the updated page
7. notion_create_database
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
parent | Parent object | object | The parent object of the database (must include page_id or workspace information) |
properties | Property Structure Definition | object | Field Type Definitions for the Database |
title | Database title | array | Optional. An array of rich text for the title. |
Returns: Information about the created database
8. notion_query_database
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
database_id | Target database ID | string | The identifier of the database to be queried |
filter | Filter conditions | object | Optional. Query filter conditions |
sorts | Sorting rules | array | Optional. An array of sorting rules for the results |
start_cursor | Start cursor | string | Optional. The starting cursor for pagination queries |
page_size | Page size | number | Optional. The maximum number of results returned per request (default: 100, maximum: 100) |
Returns: List of query results
9. notion_retrieve_database
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
database_id | Target database ID | string | The identifier of the database for which to retrieve information |
Returns: Detailed information about the database
10. notion_update_database
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
database_id | Target database ID | string | The identifier of the database to be updated |
title | New title | array | Optional. An array of titles. |
description | New description | array | Optional. An array of descriptions |
properties | Update property schema | object | Optional. The definition of new property fields |
Returns: Information about the updated database
11. notion_create_database_item
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
database_id | Target database ID | string | The identifier of the database to which entries are to be added |
properties | Entry property values | object | Must match the properties defined in the database structure |
Returns: Information about the newly created database entry
12. notion_search
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
query | Search keywords | string | Optional. Keywords to search in titles |
filter | Result type filter | object | Optional. Restricts results to pages/databases (all types returned by default) |
sort | Sorting rules | object | Optional. Sorting rules for the results |
start_cursor | Start cursor | string | Optional. The starting cursor for pagination queries |
page_size | Page size | number | Optional. The maximum number of results returned per request (default: 100, maximum: 100) |
Returns: List of matching pages or databases
13. notion_list_all_users
This feature requires upgrading to the Notion Enterprise plan and using an organization API key to avoid permission errors
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
start_cursor | Start cursor | string | Optional. The starting cursor for pagination queries |
page_size | Results limit | number | Optional. Maximum number of results returned per request (maximum: 100) |
Returns: Paginated list of all users in the workspace
14. notion_retrieve_user
This feature requires upgrading to the Notion Enterprise plan and using an organization API key to avoid permission errors
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
user_id | Target user ID | string | The identifier of the user for which to retrieve information |
Returns: Detailed information about the specified user
15. notion_retrieve_bot_user
Returns: Information about the bot user, including detailed information of the person for the authorized integration
16. notion_create_comment
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
rich_text | Comment content | array | An array of rich text content containing text objects |
parent | Associated page | object | Optional. Must contain page_id (choose one between this and discussion_id) |
discussion_id | Discussion ID | string | Optional. Existing discussion identifier |
Returns: Information about the created comment
17. notion_retrieve_comments
Parameter Name | Description | Parameter Type | Parameter Description |
---|---|---|---|
block_id | Target block/page ID | string | The identifier of the block or page for which to retrieve comments |
start_cursor | Start cursor | string | Optional. The starting cursor for pagination queries |
page_size | Results limit | number | Optional. Maximum number of results returned per request (maximum: 100) |
Returns: A paginated list of comments associated with the specified block or page.