Version 4.43 or later needs to be installed to add the server automatically
About
Official Notion MCP Server.
| Attribute | Details | 
|---|---|
| Docker Image | mcp/notion | 
| Author | makenotion | 
| Repository | https://github.com/makenotion/notion-mcp-server | 
| Dockerfile | https://github.com/makenotion/notion-mcp-server/blob/main/Dockerfile | 
| Docker Image built by | Docker Inc. | 
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/notion --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub | 
| Licence | MIT License | 
| Tools provided by this Server | Short Description | 
|---|---|
API-create-a-comment | Notion | 
API-create-a-database | Notion | 
API-delete-a-block | Notion | 
API-get-block-children | Notion | 
API-get-self | Notion | 
API-get-user | Notion | 
API-get-users | Notion | 
API-patch-block-children | Notion | 
API-patch-page | Notion | 
API-post-database-query | Notion | 
API-post-page | Notion | 
API-post-search | Notion | 
API-retrieve-a-block | Notion | 
API-retrieve-a-comment | Notion | 
API-retrieve-a-database | Notion | 
API-retrieve-a-page | Notion | 
API-retrieve-a-page-property | Notion | 
API-update-a-block | Notion | 
API-update-a-database | Notion | 
API-create-a-commentNotion | Create comment
| Parameters | Type | Description | 
|---|---|---|
parent | object | The page that contains the comment | 
rich_text | array | 
API-create-a-databaseNotion | Create a database
| Parameters | Type | Description | 
|---|---|---|
parent | object | |
properties | object | Property schema of database. The keys are the names of properties as they appear in Notion and the values are property schema objects. | 
title | arrayoptional | 
API-delete-a-blockNotion | Delete a block
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a Notion block | 
API-get-block-childrenNotion | Retrieve block children
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a block | 
page_size | integeroptional | The number of items from the full list desired in the response. Maximum: 100 | 
start_cursor | stringoptional | If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | 
API-get-selfNotion | Retrieve your token's bot user
API-get-userNotion | Retrieve a user
| Parameters | Type | Description | 
|---|---|---|
user_id | string | 
API-get-usersNotion | List all users
| Parameters | Type | Description | 
|---|---|---|
page_size | integeroptional | The number of items from the full list desired in the response. Maximum: 100 | 
start_cursor | stringoptional | If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | 
API-patch-block-childrenNotion | Append block children
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a block. Also accepts a page ID. | 
children | array | Child content to append to a container block as an array of block objects | 
after | stringoptional | The ID of the existing block that the new block should be appended after. | 
API-patch-pageNotion | Update page properties
| Parameters | Type | Description | 
|---|---|---|
page_id | string | The identifier for the Notion page to be updated. | 
archived | booleanoptional | |
cover | objectoptional | A cover image for the page. Only external file objects are supported. | 
icon | objectoptional | A page icon for the page. Supported types are external file object or emoji object. | 
in_trash | booleanoptional | Set to true to delete a block. Set to false to restore a block. | 
properties | objectoptional | The property values to update for the page. The keys are the names or IDs of the property and the values are property values. If a page property ID is not included, then it is not changed. | 
API-post-database-queryNotion | Query a database
| Parameters | Type | Description | 
|---|---|---|
database_id | string | Identifier for a Notion database. | 
archived | booleanoptional | |
filter | objectoptional | When supplied, limits which pages are returned based on the filter conditions. | 
filter_properties | arrayoptional | A list of page property value IDs associated with the database. Use this param to limit the response to a specific page property value or values for pages that meet the filter criteria. | 
in_trash | booleanoptional | |
page_size | integeroptional | The number of items from the full list desired in the response. Maximum: 100 | 
sorts | arrayoptional | When supplied, orders the results based on the provided sort criteria. | 
start_cursor | stringoptional | When supplied, returns a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | 
API-post-pageNotion | Create a page
| Parameters | Type | Description | 
|---|---|---|
parent | object | |
properties | object | |
children | arrayoptional | The content to be rendered on the new page, represented as an array of block objects. | 
cover | stringoptional | The cover image of the new page, represented as a file object. | 
icon | stringoptional | The icon of the new page. Either an emoji object or an external file object.. | 
API-post-searchNotion | Search by title
| Parameters | Type | Description | 
|---|---|---|
filter | objectoptional | A set of criteria, value and property keys, that limits the results to either only pages or only databases. Possible value values are "page" or "database". The only supported property value is "object". | 
page_size | integeroptional | The number of items from the full list to include in the response. Maximum: 100. | 
query | stringoptional | The text that the API compares page and database titles against. | 
sort | objectoptional | A set of criteria, direction and timestamp keys, that orders the results. The only supported timestamp value is "last_edited_time". Supported direction values are "ascending" and "descending". If sort is not provided, then the most recently edited results are returned first. | 
start_cursor | stringoptional | A cursor value returned in a previous response that If supplied, limits the response to results starting after the cursor. If not supplied, then the first page of results is returned. Refer to pagination for more details. | 
API-retrieve-a-blockNotion | Retrieve a block
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a Notion block | 
API-retrieve-a-commentNotion | Retrieve comments
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a Notion block or page | 
page_size | integeroptional | The number of items from the full list desired in the response. Maximum: 100 | 
start_cursor | stringoptional | If supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results. | 
API-retrieve-a-databaseNotion | Retrieve a database
| Parameters | Type | Description | 
|---|---|---|
database_id | string | An identifier for the Notion database. | 
API-retrieve-a-pageNotion | Retrieve a page
| Parameters | Type | Description | 
|---|---|---|
page_id | string | Identifier for a Notion page | 
filter_properties | stringoptional | A list of page property value IDs associated with the page. Use this param to limit the response to a specific page property value or values. To retrieve multiple properties, specify each page property ID. For example: ?filter_properties=iAk8&filter_properties=b7dh. | 
API-retrieve-a-page-propertyNotion | Retrieve a page property item
| Parameters | Type | Description | 
|---|---|---|
page_id | string | Identifier for a Notion page | 
property_id | string | Identifier for a page property | 
page_size | integeroptional | For paginated properties. The max number of property item objects on a page. The default size is 100 | 
start_cursor | stringoptional | For paginated properties. | 
API-update-a-blockNotion | Update a block
| Parameters | Type | Description | 
|---|---|---|
block_id | string | Identifier for a Notion block | 
archived | booleanoptional | Set to true to archive (delete) a block. Set to false to un-archive (restore) a block. | 
type | objectoptional | The block object type value with the properties to be updated. Currently only text (for supported block types) and checked (for to_do blocks) fields can be updated. | 
API-update-a-databaseNotion | Update a database
| Parameters | Type | Description | 
|---|---|---|
database_id | string | identifier for a Notion database | 
description | arrayoptional | An array of rich text objects that represents the description of the database that is displayed in the Notion UI. If omitted, then the database description remains unchanged. | 
properties | objectoptional | Property schema of database. The keys are the names of properties as they appear in Notion and the values are property schema objects. | 
title | arrayoptional | An array of rich text objects that represents the title of the database that is displayed in the Notion UI. If omitted, then the database title remains unchanged. | 
{
  "mcpServers": {
    "notion": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "INTERNAL_INTEGRATION_TOKEN",
        "mcp/notion"
      ],
      "env": {
        "INTERNAL_INTEGRATION_TOKEN": "ntn_****"
      }
    }
  }
}
Manual installation
You can install the MCP server using:
Installation for