---
title: "Notion Integration"
description: "Manage Notion pages and databases"
---
The Notion integration provides access to manage Notion pages and databases through the Integrate MCP server.

## Installation

The Notion integration is included with the SDK:

```typescript
import { notionIntegration } from "integrate-sdk/server";
```

## Setup

### 1. Create a Notion OAuth App

1. Go to [Notion Integrations](https://www.notion.so/my-integrations)
2. Create a new OAuth application
3. Configure your redirect URI
4. Note your Client ID and Client Secret

### 2. Configure the Integration on Your Server

Add the Notion integration to your server configuration. The integration automatically reads `NOTION_CLIENT_ID` and `NOTION_CLIENT_SECRET` from your environment variables:

```typescript
import { createMCPServer, notionIntegration } from "integrate-sdk/server";

export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    notionIntegration({
    }),
  ],
});
```

You can override the environment variables by passing explicit values:

```typescript
notionIntegration({
  clientId: process.env.CUSTOM_NOTION_ID,
  clientSecret: process.env.CUSTOM_NOTION_SECRET,
});
```

### 3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

```typescript
import { client } from "integrate-sdk";

await client.authorize("notion");
const result = await client.notion.search({});

console.log(result);
```

If you're using a custom client, add the integration to the integrations array:

```typescript
import { createMCPClient, notionIntegration } from "integrate-sdk";

const customClient = createMCPClient({
  integrations: [notionIntegration()],
});
```

## Configuration Options

<AutoTypeTable
  path="../src/integrations/notion.ts"
  name="NotionIntegrationConfig"
/>


## Tools

### `notion_search`

Search for pages and databases in Notion

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionSearchParams"
/>

### `notion_get_page`

Retrieve a Notion page by ID

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetPageParams"
/>

### `notion_create_page`

Create a new page under a page or database parent

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCreatePageParams"
/>

### `notion_update_page`

Update a page's properties, icon, cover, or archive status

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionUpdatePageParams"
/>

### `notion_get_page_property`

Get a specific property value from a page with pagination support

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetPagePropertyParams"
/>

### `notion_get_database`

Get a database by ID including its schema

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetDatabaseParams"
/>

### `notion_query_database`

Query a database with filters, sorts, and pagination

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionQueryDatabaseParams"
/>

### `notion_create_database`

Create a new database under a parent page

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCreateDatabaseParams"
/>

### `notion_update_database`

Update a database's title, description, properties, or archive status

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionUpdateDatabaseParams"
/>

### `notion_get_block`

Get a block by ID

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetBlockParams"
/>

### `notion_get_block_children`

Get child blocks of a block with pagination

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetBlockChildrenParams"
/>

### `notion_append_blocks`

Append child blocks to a parent block

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionAppendBlocksParams"
/>

### `notion_update_block`

Update a block's content

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionUpdateBlockParams"
/>

### `notion_delete_block`

Delete (archive) a block

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionDeleteBlockParams"
/>

### `notion_get_user`

Get a user by ID

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetUserParams"
/>

### `notion_get_current_user`

Get the bot user associated with the current token

_No parameters._

### `notion_list_users`

List workspace users with pagination

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionListUsersParams"
/>

### `notion_create_comment`

Create a comment on a page or reply to a discussion

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCreateCommentParams"
/>

### `notion_list_comments`

List comments on a block or page

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionListCommentsParams"
/>

### `notion_move_page`

Move a page to a new parent page or data source

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionMovePageParams"
/>

### `notion_create_file_upload`

Create a Notion file upload. Use mode "external_url" to import from a URL,

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCreateFileUploadParams"
/>

### `notion_send_file_upload`

Send file content for a Notion file upload (single_part mode).

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionSendFileUploadParams"
/>

### `notion_complete_file_upload`

Complete a Notion file upload after sending content

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCompleteFileUploadParams"
/>

### `notion_get_file_upload`

Get the status of a Notion file upload

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetFileUploadParams"
/>

### `notion_create_data_source`

Create a new Notion data source under a parent page

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionCreateDataSourceParams"
/>

### `notion_get_data_source`

Get a Notion data source by its ID

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionGetDataSourceParams"
/>

### `notion_update_data_source`

Update a Notion data source's title, description, properties, or status

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionUpdateDataSourceParams"
/>

### `notion_query_data_source`

Query a Notion data source with optional filters, sorts, and pagination

<AutoTypeTable
  path="generated/tool-params/notion.ts"
  name="NotionQueryDataSourceParams"
/>

## Notes

- Category: Productivity
- Authentication mode: OAuth
