Skip to main content
Glama
README.md
# ๐Ÿ“„ Notion Page Viewer

Notion ํŽ˜์ด์ง€์˜ ์ปจํ…์ธ ๋ฅผ ์›น์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” Streamlit ์•ฑ์ž…๋‹ˆ๋‹ค. 

## โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

### ๐Ÿ” **4๊ฐ€์ง€ ๋ณด๊ธฐ ๋ชจ๋“œ**
1. **์ „์ฒด ์ปจํ…์ธ ** - ํ† ๊ธ€, ์ด๋ฏธ์ง€, ํ•˜์œ„ ํŽ˜์ด์ง€๊นŒ์ง€ ๋ชจ๋“  ์ปจํ…์ธ  ํ‘œ์‹œ
2. **์ œ๋ชฉ + ์ด๋ฏธ์ง€** - ๋ฉ”์ธํŽ˜์ด์ง€์˜ ์ œ๋ชฉ๊ณผ ์ด๋ฏธ์ง€๋งŒ ํ‘œ์‹œ
3. **ํ•˜์œ„ ํŽ˜์ด์ง€** - ์—ฐ๊ฒฐ๋œ ํ•˜์œ„ ํŽ˜์ด์ง€๋“ค์˜ ์ œ๋ชฉ ๋ฆฌ์ŠคํŠธ
4. **์›๋ณธ ๋ฐ์ดํ„ฐ** - JSON ํ˜•ํƒœ์˜ ์›๋ณธ ๋ฐ์ดํ„ฐ (๋””๋ฒ„๊น…์šฉ)

## ๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

### 1. ์„ค์น˜

```bash
git clone https://github.com/ar-codelabs/MCP_NotionMCP_Webviewer.git
cd MCP_notion_webviewer

# ์„ค์น˜
pip install -r requirements.txt

```

### 2. Notion ์„ค์ •

1. [developers.notion.com/](https://www.notion.so/profile/integrations))์—์„œ Integration ์ƒ์„ฑ
2. Integration Token ๋ณต์‚ฌ
3. ๋ณด๊ณ  ์‹ถ์€ Notion ํŽ˜์ด์ง€์— Integration ์—ฐ๊ฒฐ
4. ํŽ˜์ด์ง€ ID ๋ณต์‚ฌ (URL์—์„œ ์ถ”์ถœ)

### 3. ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • (Notion)

`application/mcp.json` ํŒŒ์ผ์—์„œ:

```json
{
  "mcpServers": {
    "notion": {
      "command": "python3",
      "args": ["./application/mcp_server_notion.py"],
      "env": {
        "NOTION_API_KEY": "your_notion_integration_token",
        "NOTION_PAGE_ID": "your_notion_page_id"
      }
    }
  }
}
```

### 4. ์‹คํ–‰

```bash
streamlit run application/app_webview_mcp_simple.py
```

## ๐Ÿ“– ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

### 1. ์›น ์•ฑ ์ ‘์†
- ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘์†

### 2. 4๊ฐ€์ง€ ๋ฒ„ํŠผ ํ™œ์šฉ
- **๐Ÿ” ์ „์ฒด ์ปจํ…์ธ **: ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๊ตฌ์กฐ์ ์œผ๋กœ ํ‘œ์‹œ
- **๐Ÿ–ผ๏ธ ์ œ๋ชฉ + ์ด๋ฏธ์ง€**: ์ œ๋ชฉ๊ณผ ์ด๋ฏธ์ง€๋งŒ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์„œ ํ‘œ์‹œ
- **๐Ÿ“‘ ํ•˜์œ„ ํŽ˜์ด์ง€**: ์—ฐ๊ฒฐ๋œ ํ•˜์œ„ ํŽ˜์ด์ง€๋“ค์˜ ์ œ๋ชฉ ๋ชฉ๋ก๊ณผ ๋งํฌ
- **๐Ÿ”ง ์›๋ณธ ๋ฐ์ดํ„ฐ**: ๊ฐœ๋ฐœ์ž์šฉ JSON ๋ฐ์ดํ„ฐ ํ™•์ธ

### 3. ์ง€์›ํ•˜๋Š” Notion ๋ธ”๋ก
- ํ…์ŠคํŠธ (paragraph)
- ํ—ค๋”ฉ (heading_1, heading_2, heading_3)
- ๋ฆฌ์ŠคํŠธ (bulleted_list_item, numbered_list_item)
- ํ† ๊ธ€ (toggle)
- ์ด๋ฏธ์ง€ (image)
- ์ฝ”๋“œ (code)
- ์ธ์šฉ๋ฌธ (quote)
- ์ปฌ๋Ÿผ (column_list, column)
- ํ•˜์œ„ ํŽ˜์ด์ง€ (child_page)

## ๐Ÿ”ง ๊ณ ๊ธ‰ ์„ค์ •

### Notion ํŽ˜์ด์ง€ ID ์ฐพ๊ธฐ
1. Notion ํŽ˜์ด์ง€ URL: `https://notion.so/ํŽ˜์ด์ง€์ œ๋ชฉ-abc123def456...`
2. ๋งˆ์ง€๋ง‰ ํ•˜์ดํ”ˆ ๋’ค์˜ 32์ž๋ฆฌ ๋ฌธ์ž์—ด์ด ํŽ˜์ด์ง€ ID
3. ํ•˜์ดํ”ˆ ์ œ๊ฑฐ: `abc123def456...`


### ํฌํŠธ ๋ณ€๊ฒฝ
```bash
# MCP ๋ฐฉ์‹
streamlit run application/app_webview_mcp_simple.py --server.port 8502
```


## ๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

### ๊ณตํ†ต
- **Frontend**: Streamlit
- **API**: Notion API (notion-client)
- **Language**: Python 3.8+

### MCP ๋ฐฉ์‹ ์ถ”๊ฐ€
- **MCP**: Model Context Protocol
- **Architecture**: Server-Client ๋ถ„๋ฆฌ
- **Modularity**: ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ MCP ์„œ๋ฒ„

## ๐Ÿ“ ์ฃผ์˜์‚ฌํ•ญ

- Notion Integration์— ํŽ˜์ด์ง€ ์ฝ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
- ์ด๋ฏธ์ง€๋Š” Notion์˜ ์ž„์‹œ URL์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ผ์ • ์‹œ๊ฐ„ ํ›„ ๋งŒ๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
- ๋Œ€์šฉ๋Ÿ‰ ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค