npm package: @jun-b/notion-mcp
Description: AI-powered Notion MCP server
Author: jun-b
Latest version: 1.0.0

# Notion MCP

AI agents can autonomously Notion using building blocks.

## Features

- **30+ Building Block Tools** - AI freely combines tools to create unique designs
- **Design Tips in Every Tool** - AI learns design principles through tool descriptions
- **Color Palettes & Icons** - Harmonious color schemes and icon suggestions
- **NPX Support** - Run directly with `npx @jun-b/notion-mcp`

## Installation

### With Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@jun-b/notion-mcp"],
      "env": {
        "NOTION_API_KEY": "your-api-key"
      }
    }
  }
}
```

### With Cursor

Add to Cursor settings:

```json
{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": [
        "-y",
        "@jun-b/notion-mcp",
        "--api-key",
        "your-api-key"
      ]
    }
  }
}
```

## Getting Notion API Key

1. Go to [Notion Integrations](https://www.notion.so/my-integrations)
2. Create new integration
3. Copy the API key
4. Share pages/databases with your integration

## Available Tools

### Page Tools

| Tool               | Description          |
| ------------------ | -------------------- |
| `create_page`    | Create a new page    |
| `set_page_cover` | Set cover image      |
| `set_page_icon`  | Set emoji/image icon |
| `get_page`       | Get page details     |
| `search_pages`   | Search pages         |

### Block Tools

| Tool                              | Description                    |
| --------------------------------- | ------------------------------ |
| `add_heading`                   | Add H1/H2/H3                   |
| `add_paragraph`                 | Add text paragraph             |
| `add_callout`                   | Add callout with icon          |
| `add_quote`                     | Add quote block                |
| `add_divider`                   | Add horizontal line            |
| `add_toggle`                    | Add collapsible toggle         |
| `add_list`                      | Add bullet/numbered/todo list  |
| `add_code_block`                | Add code with syntax highlight |
| `add_image`                     | Add image from URL             |
| `add_bookmark`                  | Add bookmark link              |
| `get_blocks` / `delete_block` | Manage blocks                  |

### Layout Tools

| Tool                      | Description                |
| ------------------------- | -------------------------- |
| `create_columns`        | Create multi-column layout |
| `create_table`          | Create table with headers  |
| `create_section`        | Create styled section      |
| `add_table_of_contents` | Add TOC                    |
| `add_breadcrumb`        | Add navigation             |

### Database Tools

| Tool                  | Description                 |
| --------------------- | --------------------------- |
| `create_database`   | Create database with schema |
| `add_database_item` | Add database entry          |
| `query_database`    | Query with filters          |
| `get_database`      | Get database schema         |

### Style Tools

| Tool                      | Description               |
| ------------------------- | ------------------------- |
| `get_color_palette`     | Get harmonious colors     |
| `list_color_palettes`   | List all palettes         |
| `get_icon_suggestions`  | Get icons by category     |
| `get_cover_suggestions` | Get cover image URLs      |
| `get_design_tips`       | Get design best practices |

## Example Usage

When AI receives "Create a project dashboard", it autonomously:

```
1. get_color_palette("ocean")
2. create_page(title="Project Dashboard", icon="rocket")
3. set_page_cover(coverUrl="https://...")
4. add_heading("Overview", level=1, color="blue")
5. create_columns(3)
6. add_callout("Tasks: 12", icon="check", color="blue_background")
7. add_callout("Progress: 75%", icon="chart", color="green_background")
8. add_divider()
9. create_database(title="Tasks", properties=[...])
```

Each time produces a **unique creative design**!

## Development

```bash
npm install
npm run build
npm run dev
```

## License

MIT