# Notion

MCP server for Notion API — manage pages, blocks, databases, data sources, comments, and users.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add node2flow/notion

# Browse available tools
npx -y @smithery/cli@latest tool list node2flow/notion

# Get full schema for a tool
npx -y @smithery/cli@latest tool get node2flow/notion notion_search

# Call a tool
npx -y @smithery/cli@latest tool call node2flow/notion notion_search '{}'
```

## Direct MCP Connection

Endpoint: `https://notion--node2flow.run.tools`

**Required config:**
- `NOTION_API_KEY` (query) — NOTION_API_KEY — Internal Integration Token from https://www.notion.so/my-integrations

**Optional config:**
- `NOTION_TIMEOUT` (query) — Request timeout (ms)
- `NOTION_API_VERSION` (query) — Notion API version header

## Tools (25)

- `notion_search` — Search pages and databases in your Notion workspace by title. Filter by object type and sort by last edited time.
- `notion_create_page` — Create a new page in Notion. Set parent as a data source (data_source_id) or another page (page_id). Provide properties…
- `notion_get_page` — Retrieve a Notion page by ID. Returns properties, parent, timestamps, and URL. Use notion_get_block_children to read th…
- `notion_update_page` — Update a Notion page. Change properties, icon, cover, or archive/trash status. Use block tools to update page content.
- `notion_move_page` — Move a page to a new parent page or data source.
- `notion_get_page_property` — Retrieve a specific property value from a page. Useful for paginated properties like relations or rollups.
- `notion_get_block` — Retrieve a single block by ID. Returns block type, content, and whether it has children.
- `notion_get_block_children` — Get child blocks of a page or block. This is how you read page content. Returns a paginated list of blocks.
- `notion_append_blocks` — Append content blocks to a page or block. Max 100 blocks, 2 levels of nesting. Common types: paragraph, heading_1/2/3, …
- `notion_update_block` — Update a block's content. Send the block type key with updated data, e.g. { "paragraph": { "rich_text": [...] } }.
- `notion_delete_block` — Delete (archive) a block. The block is moved to trash.
- `notion_create_data_source` — Create a new data source (table) under an existing database. Data sources are individual tables within a database (API …
- `notion_get_data_source` — Retrieve a data source by ID. Returns title, property schema, and timestamps.
- `notion_update_data_source` — Update a data source title or property schema.
- `notion_query_data_source` — Query pages in a data source with filters and sorts. For new API (2025-09-03). For legacy databases use notion_query_da…
- `notion_list_data_source_templates` — List page templates available in a data source.
- `notion_get_database` — Get a database by ID (legacy endpoint). Returns schema with properties and title. For new integrations prefer data sour…
- `notion_query_database` — Query a database with filters and sorts (legacy endpoint). For new integrations prefer notion_query_data_source.
- `notion_create_database` — Create a new inline database inside a page (legacy). Must include at least one title property in the schema.
- `notion_create_comment` — Create a comment on a page or reply in a discussion thread. Integration must have comment capabilities enabled.
- `notion_get_comments` — List unresolved comments on a page or block.
- `notion_get_comment` — Retrieve a single comment by ID.
- `notion_list_users` — List all users in the workspace. Returns names, types (person/bot), and avatars.
- `notion_get_user` — Get a user by ID.
- `notion_get_bot_user` — Get the bot user info for this integration. Useful for checking identity and permissions.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get node2flow/notion <tool-name>
```

## Resources

- `notion://server-info` — Connection status and available tools for this Notion MCP server

## Prompts (2)

- `manage-pages` — Guide for managing Notion pages — search, create, update, and organize content
- `query-databases` — Guide for querying and managing Notion databases and data sources

---

License: MIT
