Notion

Notion

Official Notion MCP Server.

10K+

28

19 Tools

Signed
Built by Docker
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

About

Notion MCP Server

Official Notion MCP Server.

What is an MCP Server?

Characteristics

AttributeDetails
Docker Imagemcp/notion
Authormakenotion
Repositoryhttps://github.com/makenotion/notion-mcp-server
Dockerfilehttps://github.com/makenotion/notion-mcp-server/blob/main/Dockerfile
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/notion --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (19)

Tools provided by this ServerShort Description
API-create-a-commentNotion
API-create-a-databaseNotion
API-delete-a-blockNotion
API-get-block-childrenNotion
API-get-selfNotion
API-get-userNotion
API-get-usersNotion
API-patch-block-childrenNotion
API-patch-pageNotion
API-post-database-queryNotion
API-post-pageNotion
API-post-searchNotion
API-retrieve-a-blockNotion
API-retrieve-a-commentNotion
API-retrieve-a-databaseNotion
API-retrieve-a-pageNotion
API-retrieve-a-page-propertyNotion
API-update-a-blockNotion
API-update-a-databaseNotion

Tools Details

Tool: API-create-a-comment

Notion | Create comment

ParametersTypeDescription
parentobjectThe page that contains the comment
rich_textarray

Tool: API-create-a-database

Notion | Create a database

ParametersTypeDescription
parentobject
propertiesobjectProperty schema of database. The keys are the names of properties as they appear in Notion and the values are property schema objects.
titlearrayoptional

Tool: API-delete-a-block

Notion | Delete a block

ParametersTypeDescription
block_idstringIdentifier for a Notion block

Tool: API-get-block-children

Notion | Retrieve block children

ParametersTypeDescription
block_idstringIdentifier for a block
page_sizeintegeroptionalThe number of items from the full list desired in the response. Maximum: 100
start_cursorstringoptionalIf 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.

Tool: API-get-self

Notion | Retrieve your token's bot user

Tool: API-get-user

Notion | Retrieve a user

ParametersTypeDescription
user_idstring

Tool: API-get-users

Notion | List all users

ParametersTypeDescription
page_sizeintegeroptionalThe number of items from the full list desired in the response. Maximum: 100
start_cursorstringoptionalIf 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.

Tool: API-patch-block-children

Notion | Append block children

ParametersTypeDescription
block_idstringIdentifier for a block. Also accepts a page ID.
childrenarrayChild content to append to a container block as an array of block objects
afterstringoptionalThe ID of the existing block that the new block should be appended after.

Tool: API-patch-page

Notion | Update page properties

ParametersTypeDescription
page_idstringThe identifier for the Notion page to be updated.
archivedbooleanoptional
coverobjectoptionalA cover image for the page. Only external file objects are supported.
iconobjectoptionalA page icon for the page. Supported types are external file object or emoji object.
in_trashbooleanoptionalSet to true to delete a block. Set to false to restore a block.
propertiesobjectoptionalThe 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.

Tool: API-post-database-query

Notion | Query a database

ParametersTypeDescription
database_idstringIdentifier for a Notion database.
archivedbooleanoptional
filterobjectoptionalWhen supplied, limits which pages are returned based on the filter conditions.
filter_propertiesarrayoptionalA 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_trashbooleanoptional
page_sizeintegeroptionalThe number of items from the full list desired in the response. Maximum: 100
sortsarrayoptionalWhen supplied, orders the results based on the provided sort criteria.
start_cursorstringoptionalWhen supplied, returns a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.

Tool: API-post-page

Notion | Create a page

ParametersTypeDescription
parentobject
propertiesobject
childrenarrayoptionalThe content to be rendered on the new page, represented as an array of block objects.
coverstringoptionalThe cover image of the new page, represented as a file object.
iconstringoptionalThe icon of the new page. Either an emoji object or an external file object..

Tool: API-post-search

Notion | Search by title

ParametersTypeDescription
filterobjectoptionalA 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_sizeintegeroptionalThe number of items from the full list to include in the response. Maximum: 100.
querystringoptionalThe text that the API compares page and database titles against.
sortobjectoptionalA 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_cursorstringoptionalA 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.

Tool: API-retrieve-a-block

Notion | Retrieve a block

ParametersTypeDescription
block_idstringIdentifier for a Notion block

Tool: API-retrieve-a-comment

Notion | Retrieve comments

ParametersTypeDescription
block_idstringIdentifier for a Notion block or page
page_sizeintegeroptionalThe number of items from the full list desired in the response. Maximum: 100
start_cursorstringoptionalIf 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.

Tool: API-retrieve-a-database

Notion | Retrieve a database

ParametersTypeDescription
database_idstringAn identifier for the Notion database.

Tool: API-retrieve-a-page

Notion | Retrieve a page

ParametersTypeDescription
page_idstringIdentifier for a Notion page
filter_propertiesstringoptionalA 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.

Tool: API-retrieve-a-page-property

Notion | Retrieve a page property item

ParametersTypeDescription
page_idstringIdentifier for a Notion page
property_idstringIdentifier for a page property
page_sizeintegeroptionalFor paginated properties. The max number of property item objects on a page. The default size is 100
start_cursorstringoptionalFor paginated properties.

Tool: API-update-a-block

Notion | Update a block

ParametersTypeDescription
block_idstringIdentifier for a Notion block
archivedbooleanoptionalSet to true to archive (delete) a block. Set to false to un-archive (restore) a block.
typeobjectoptionalThe 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.

Tool: API-update-a-database

Notion | Update a database

ParametersTypeDescription
database_idstringidentifier for a Notion database
descriptionarrayoptionalAn 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.
propertiesobjectoptionalProperty schema of database. The keys are the names of properties as they appear in Notion and the values are property schema objects.
titlearrayoptionalAn 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.

Use this MCP Server

{
  "mcpServers": {
    "notion": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "INTERNAL_INTEGRATION_TOKEN",
        "mcp/notion"
      ],
      "env": {
        "INTERNAL_INTEGRATION_TOKEN": "ntn_****"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers