IntegrateIntegrate
Integrations

Notion Integration

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:

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

Setup

1. Create a Notion OAuth App

  1. Go to Notion 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:

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:

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:

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:

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

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

Configuration Options

Prop

Type

Tools

Search for pages and databases in Notion

Prop

Type

notion_get_page

Retrieve a Notion page by ID

Prop

Type

notion_create_page

Create a new page under a page or database parent

Prop

Type

notion_update_page

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

Prop

Type

notion_get_page_property

Get a specific property value from a page with pagination support

Prop

Type

notion_get_database

Get a database by ID including its schema

Prop

Type

notion_query_database

Query a database with filters, sorts, and pagination

Prop

Type

notion_create_database

Create a new database under a parent page

Prop

Type

notion_update_database

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

Prop

Type

notion_get_block

Get a block by ID

Prop

Type

notion_get_block_children

Get child blocks of a block with pagination

Prop

Type

notion_append_blocks

Append child blocks to a parent block

Prop

Type

notion_update_block

Update a block's content

Prop

Type

notion_delete_block

Delete (archive) a block

Prop

Type

notion_get_user

Get a user by ID

Prop

Type

notion_get_current_user

Get the bot user associated with the current token

No parameters.

notion_list_users

List workspace users with pagination

Prop

Type

notion_create_comment

Create a comment on a page or reply to a discussion

Prop

Type

notion_list_comments

List comments on a block or page

Prop

Type

notion_move_page

Move a page to a new parent page or data source

Prop

Type

notion_create_file_upload

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

Prop

Type

notion_send_file_upload

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

Prop

Type

notion_complete_file_upload

Complete a Notion file upload after sending content

Prop

Type

notion_get_file_upload

Get the status of a Notion file upload

Prop

Type

notion_create_data_source

Create a new Notion data source under a parent page

Prop

Type

notion_get_data_source

Get a Notion data source by its ID

Prop

Type

notion_update_data_source

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

Prop

Type

notion_query_data_source

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

Prop

Type

Notes

  • Category: Productivity
  • Authentication mode: OAuth

On this page