Notion MCP Integration Specialist
Quick Reference (30 seconds)
Notion MCP Integration - 전문화된 MCP (Model Context Protocol) 기반 Notion 워크스페이스 통합 전문가입니다. 데이터베이스 쿼리, 페이지 관리, 지식 추출, 그리고 문서화 자동화를 제공합니다.
핵심 기능:
- Notion API 통합: MCP 서버 설정, 인증, 워크스페이스 접근
- 데이터베이스 작업: 쿼리, 필터링, 생성, 업데이트, 관계 관리
- 페이지 관리: 페이지 생성/업데이트, 블록 작업, 콘텐츠 추출
- 지식 추출: 자동화된 분석, 구조화, 문서 생성
- 템플릿 자동화: 재사용 가능한 페이지 템플릿, 워크플로우 자동화
사용 시점:
- Notion 워크스페이스와 외부 시스템 통합
- 데이터베이스 쿼리 및 자동화된 콘텐츠 관리
- 지식 베이스 추출 및 문서 생성
- 페이지 템플릿 자동화 및 배치 작업
Implementation Guide (5 minutes)
Quick Start Workflow
Notion MCP 서버 설정:
from moai_mcp_notion import NotionMCPServer, NotionConnector
# Notion MCP 서버 초기화
notion_server = NotionMCPServer("notion-integration")
# Notion 커넥터 설정
connector = NotionConnector({
'api_key': os.getenv('NOTION_TOKEN'),
'api_version': '2022-06-28'
})
# 서버에 커넥터 등록
notion_server.register_connector(connector)
# 도구 등록 및 서버 시작
connector.register_tools(notion_server)
notion_server.start(port=3001)
기본 데이터베이스 작업:
# 데이터베이스 쿼리
mcp-tools query_notion_database --database-id "abc123" --filter '{"property": "Status", "select": {"equals": "Active"}}'
# 페이지 생성
mcp-tools create_notion_page --database-id "abc123" --properties '{"Title": {"title": [{"text": {"content": "New Page"}}]}}'
# 페이지 업데이트
mcp-tools update_notion_page --page-id "xyz789" --properties '{"Status": {"select": {"name": "Completed"}}}'
# 블록 추가
mcp-tools append_blocks --page-id "xyz789" --blocks '{"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Content"}}]}}'
핵심 컴포넌트
- Notion API 통합 (
modules/notion-api-integration.md)
- MCP 서버 설정 및 초기화
- Notion API 인증 (OAuth 2.0, Integration Token)
- 워크스페이스 및 데이터베이스 접근 권한 관리
- API 버전 관리 및 호환성 보장
- 데이터베이스 작업 (
modules/database-operations.md)
- 고급 쿼리: 필터, 정렬, 페이지네이션
- 데이터베이스 생성 및 스키마 정의
- 속성 관리: 텍스트, 숫자, 선택, 날짜, 관계
- 관계 및 롤업 설정
- 배치 작업 및 대량 데이터 처리
- 페이지 관리 (
modules/page-management.md)
- 페이지 생성: 속성 설정, 초기 콘텐츠
- 페이지 업데이트: 속성 변경, 콘텐츠 추가/삭제
- 블록 레벨 작업: 단락, 제목, 목록, 코드 블록
- 중첩 블록 구조 관리
- 페이지 메타데이터 추출
- 지식 추출 및 자동화 (
modules/knowledge-extraction.md)
- 자동화된 콘텐츠 분석
- 구조화된 지식 베이스 생성
- AI 기반 요약 및 인사이트 추출
- 문서 생성 및 템플릿 적용
Advanced Patterns (10+ minutes)
고급 구현 패턴 (복잡한 쿼리, 페이지 구조, 지식 추출, 템플릿 자동화, 배치 작업)은 별도 파일에서 제공됩니다:
자세한 내용: Advanced Patterns
주요 고급 패턴 요약
데이터베이스 쿼리:
- 복잡한 필터 조건 (and, or 연산자)
- 페이지네이션 처리
- 정렬 및 검색 최적화
페이지 및 블록 관리:
- 구조화된 페이지 생성 (헤딩, 단락, 목록)
- 중첩 블록 구조 (토글, 칼럼)
- 블록 레벨 조작
지식 베이스 워크플로우:
- 자동화된 콘텐츠 추출
- AI 기반 분석 및 구조화
- 문서 자동 생성
템플릿 자동화:
- 재사용 가능한 페이지 템플릿
- 변수 기반 콘텐츠 생성
- 템플릿 관리 시스템
배치 작업:
- 대량 페이지 업데이트
- 데이터베이스 동기화
- 실시간 이벤트 처리 (Webhook)
Works Well With
보완 스킬:
moai-docs-generation - 자동화된 문서 생성 워크플로우
moai-workflow-project - 프로젝트 관리 및 문서화
moai-domain-backend - 백엔드 API 통합 패턴
moai-foundation-claude - Claude Code 통합 패턴
외부 서비스:
- Notion API (워크스페이스, 데이터베이스, 페이지)
- OAuth 2.0 인증 제공자
- REST API 통합
- 클라우드 스토리지 서비스
통합 플랫폼:
- FastMCP 서버 프레임워크
- AsyncIO 비동기 작업
- Pydantic 데이터 검증
- HTTPX HTTP 클라이언트
사용 예시
데이터베이스 쿼리 및 분석
기본 쿼리:
# 활성 상태 항목 쿼리
active_items = await notion_server.invoke_tool("query_notion_database", {
"database_id": "project-db",
"filter": {
"property": "Status",
"select": {"equals": "Active"}
}
})
# 우선순위 높은 작업 쿼리
high_priority = await notion_server.invoke_tool("query_notion_database", {
"database_id": "tasks-db",
"filter": {
"and": [
{"property": "Priority", "select": {"equals": "High"}},
{"property": "Assignee", "people": {"is_not_empty": True}}
]
},
"sorts": [{"property": "Due Date", "direction": "ascending"}]
})
페이지 생성 및 업데이트
새 페이지 생성:
# 프로젝트 문서 페이지 생성
project_page = await notion_server.invoke_tool("create_notion_page", {
"database_id": "documentation-db",
"properties": {
"Title": {"title": [{"text": {"content": "API Documentation"}}]},
"Category": {"select": {"name": "Technical"}},
"Status": {"select": {"name": "In Progress"}},
"Tags": {"multi_select": [{"name": "API"}, {"name": "Backend"}]}
}
})
# 콘텐츠 블록 추가
await notion_server.invoke_tool("append_blocks", {
"page_id": project_page["id"],
"blocks": [
{
"type": "heading_1",
"heading_1": {"rich_text": [{"text": {"content": "API Documentation"}}]}
},
{
"type": "paragraph",
"paragraph": {"rich_text": [{"text": {"content": "Comprehensive API reference"}}]}
},
{
"type": "code",
"code": {
"rich_text": [{"text": {"content": "GET /api/users\nPOST /api/users"}}],
"language": "bash"
}
}
]
})
지식 베이스 관리
지식 추출 및 구조화:
# 지식 베이스 추출
knowledge = await notion_server.invoke_tool("knowledge_extraction_workflow", {
"database_id": "knowledge-base",
"analysis_goals": ["best_practices", "patterns", "lessons_learned"],
"output_format": "structured_json"
})
# 분석 결과를 새 페이지로 저장
summary_page = await notion_server.invoke_tool("create_notion_page", {
"database_id": "summaries-db",
"properties": {
"Title": {"title": [{"text": {"content": "Knowledge Base Summary"}}]},
"Type": {"select": {"name": "Analysis"}}
}
})
# 분석 결과 블록 추가
await notion_server.invoke_tool("append_blocks", {
"page_id": summary_page["id"],
"blocks": knowledge["structured_blocks"]
})
기술 스택
핵심 프레임워크:
- FastMCP (Python MCP 서버 프레임워크)
- AsyncIO (비동기 작업 처리)
- Pydantic (데이터 검증 및 스키마 관리)
- HTTPX (HTTP 클라이언트 작업)
Notion 통합:
- Notion API (공식 REST API)
- OAuth 2.0 (인증 및 권한 관리)
- Webhook (실시간 이벤트 수신)
- Rich Text 객체 (복잡한 콘텐츠 구조)
보안 및 인증:
- OAuth 2.0 구현
- Integration Token 관리
- JWT 토큰 처리
- 안전한 자격 증명 저장
오류 처리 및 신뢰성:
- 재시도 메커니즘 (지수 백오프)
- 속도 제한 처리 (Rate Limiting)
- 포괄적인 오류 분류
- 모니터링 및 관찰 가능성
개발 도구:
- 타입 힌트 및 검증
- 포괄적인 로깅
- 성능 모니터링
- 디버깅 및 프로파일링 도구
자세한 구현 패턴, 커넥터 개발, 고급 워크플로우는 modules/ 디렉터리를 참조하세요.
1---2name: moai-mcp-notion3description: Notion MCP integration specialist for workspace management, database operations, page creation, and knowledge extraction. Use when integrating Notion workspaces, managing databases, or automating documentation workflows.4---5
6# Notion MCP Integration Specialist
7
8## Quick Reference (30 seconds)
9
10Notion MCP Integration - 전문화된 MCP (Model Context Protocol) 기반 Notion 워크스페이스 통합 전문가입니다. 데이터베이스 쿼리, 페이지 관리, 지식 추출, 그리고 문서화 자동화를 제공합니다.
11
12핵심 기능:
13- Notion API 통합: MCP 서버 설정, 인증, 워크스페이스 접근
14- 데이터베이스 작업: 쿼리, 필터링, 생성, 업데이트, 관계 관리
15- 페이지 관리: 페이지 생성/업데이트, 블록 작업, 콘텐츠 추출
16- 지식 추출: 자동화된 분석, 구조화, 문서 생성
17- 템플릿 자동화: 재사용 가능한 페이지 템플릿, 워크플로우 자동화
18
19사용 시점:
20- Notion 워크스페이스와 외부 시스템 통합
21- 데이터베이스 쿼리 및 자동화된 콘텐츠 관리
22- 지식 베이스 추출 및 문서 생성
23- 페이지 템플릿 자동화 및 배치 작업
24
25---
26
27## Implementation Guide (5 minutes)
28
29### Quick Start Workflow
30
31Notion MCP 서버 설정:
32```python
33from moai_mcp_notion import NotionMCPServer, NotionConnector
34
35# Notion MCP 서버 초기화
36notion_server = NotionMCPServer("notion-integration")
37
38# Notion 커넥터 설정
39connector = NotionConnector({
40 'api_key': os.getenv('NOTION_TOKEN'),
41 'api_version': '2022-06-28'
42})
43
44# 서버에 커넥터 등록
45notion_server.register_connector(connector)
46
47# 도구 등록 및 서버 시작
48connector.register_tools(notion_server)
49notion_server.start(port=3001)
50```
51
52기본 데이터베이스 작업:
53```bash
54# 데이터베이스 쿼리
55mcp-tools query_notion_database --database-id "abc123" --filter '{"property": "Status", "select": {"equals": "Active"}}'
56
57# 페이지 생성
58mcp-tools create_notion_page --database-id "abc123" --properties '{"Title": {"title": [{"text": {"content": "New Page"}}]}}'
59
60# 페이지 업데이트
61mcp-tools update_notion_page --page-id "xyz789" --properties '{"Status": {"select": {"name": "Completed"}}}'
62
63# 블록 추가
64mcp-tools append_blocks --page-id "xyz789" --blocks '{"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Content"}}]}}'
65```
66
67### 핵심 컴포넌트
68
691. Notion API 통합 (`modules/notion-api-integration.md`)
70- MCP 서버 설정 및 초기화
71- Notion API 인증 (OAuth 2.0, Integration Token)
72- 워크스페이스 및 데이터베이스 접근 권한 관리
73- API 버전 관리 및 호환성 보장
74
752. 데이터베이스 작업 (`modules/database-operations.md`)
76- 고급 쿼리: 필터, 정렬, 페이지네이션
77- 데이터베이스 생성 및 스키마 정의
78- 속성 관리: 텍스트, 숫자, 선택, 날짜, 관계
79- 관계 및 롤업 설정
80- 배치 작업 및 대량 데이터 처리
81
823. 페이지 관리 (`modules/page-management.md`)
83- 페이지 생성: 속성 설정, 초기 콘텐츠
84- 페이지 업데이트: 속성 변경, 콘텐츠 추가/삭제
85- 블록 레벨 작업: 단락, 제목, 목록, 코드 블록
86- 중첩 블록 구조 관리
87- 페이지 메타데이터 추출
88
894. 지식 추출 및 자동화 (`modules/knowledge-extraction.md`)
90- 자동화된 콘텐츠 분석
91- 구조화된 지식 베이스 생성
92- AI 기반 요약 및 인사이트 추출
93- 문서 생성 및 템플릿 적용
94
95---
96
97## Advanced Patterns (10+ minutes)
98
99고급 구현 패턴 (복잡한 쿼리, 페이지 구조, 지식 추출, 템플릿 자동화, 배치 작업)은 별도 파일에서 제공됩니다:
100
101자세한 내용: [Advanced Patterns](advanced-patterns.md)
102
103### 주요 고급 패턴 요약
104
105데이터베이스 쿼리:
106- 복잡한 필터 조건 (and, or 연산자)
107- 페이지네이션 처리
108- 정렬 및 검색 최적화
109
110페이지 및 블록 관리:
111- 구조화된 페이지 생성 (헤딩, 단락, 목록)
112- 중첩 블록 구조 (토글, 칼럼)
113- 블록 레벨 조작
114
115지식 베이스 워크플로우:
116- 자동화된 콘텐츠 추출
117- AI 기반 분석 및 구조화
118- 문서 자동 생성
119
120템플릿 자동화:
121- 재사용 가능한 페이지 템플릿
122- 변수 기반 콘텐츠 생성
123- 템플릿 관리 시스템
124
125배치 작업:
126- 대량 페이지 업데이트
127- 데이터베이스 동기화
128- 실시간 이벤트 처리 (Webhook)
129
130---
131
132## Works Well With
133
134보완 스킬:
135- `moai-docs-generation` - 자동화된 문서 생성 워크플로우
136- `moai-workflow-project` - 프로젝트 관리 및 문서화
137- `moai-domain-backend` - 백엔드 API 통합 패턴
138- `moai-foundation-claude` - Claude Code 통합 패턴
139
140외부 서비스:
141- Notion API (워크스페이스, 데이터베이스, 페이지)
142- OAuth 2.0 인증 제공자
143- REST API 통합
144- 클라우드 스토리지 서비스
145
146통합 플랫폼:
147- FastMCP 서버 프레임워크
148- AsyncIO 비동기 작업
149- Pydantic 데이터 검증
150- HTTPX HTTP 클라이언트
151
152---
153
154## 사용 예시
155
156### 데이터베이스 쿼리 및 분석
157
158기본 쿼리:
159```python
160# 활성 상태 항목 쿼리
161active_items = await notion_server.invoke_tool("query_notion_database", {
162 "database_id": "project-db",
163 "filter": {
164 "property": "Status",
165 "select": {"equals": "Active"}
166 }
167})
168
169# 우선순위 높은 작업 쿼리
170high_priority = await notion_server.invoke_tool("query_notion_database", {
171 "database_id": "tasks-db",
172 "filter": {
173 "and": [
174 {"property": "Priority", "select": {"equals": "High"}},
175 {"property": "Assignee", "people": {"is_not_empty": True}}
176 ]
177 },
178 "sorts": [{"property": "Due Date", "direction": "ascending"}]
179})
180```
181
182### 페이지 생성 및 업데이트
183
184새 페이지 생성:
185```python
186# 프로젝트 문서 페이지 생성
187project_page = await notion_server.invoke_tool("create_notion_page", {
188 "database_id": "documentation-db",
189 "properties": {
190 "Title": {"title": [{"text": {"content": "API Documentation"}}]},
191 "Category": {"select": {"name": "Technical"}},
192 "Status": {"select": {"name": "In Progress"}},
193 "Tags": {"multi_select": [{"name": "API"}, {"name": "Backend"}]}
194 }
195})
196
197# 콘텐츠 블록 추가
198await notion_server.invoke_tool("append_blocks", {
199 "page_id": project_page["id"],
200 "blocks": [
201 {
202 "type": "heading_1",
203 "heading_1": {"rich_text": [{"text": {"content": "API Documentation"}}]}
204 },
205 {
206 "type": "paragraph",
207 "paragraph": {"rich_text": [{"text": {"content": "Comprehensive API reference"}}]}
208 },
209 {
210 "type": "code",
211 "code": {
212 "rich_text": [{"text": {"content": "GET /api/users\nPOST /api/users"}}],
213 "language": "bash"
214 }
215 }
216 ]
217})
218```
219
220### 지식 베이스 관리
221
222지식 추출 및 구조화:
223```python
224# 지식 베이스 추출
225knowledge = await notion_server.invoke_tool("knowledge_extraction_workflow", {
226 "database_id": "knowledge-base",
227 "analysis_goals": ["best_practices", "patterns", "lessons_learned"],
228 "output_format": "structured_json"
229})
230
231# 분석 결과를 새 페이지로 저장
232summary_page = await notion_server.invoke_tool("create_notion_page", {
233 "database_id": "summaries-db",
234 "properties": {
235 "Title": {"title": [{"text": {"content": "Knowledge Base Summary"}}]},
236 "Type": {"select": {"name": "Analysis"}}
237 }
238})
239
240# 분석 결과 블록 추가
241await notion_server.invoke_tool("append_blocks", {
242 "page_id": summary_page["id"],
243 "blocks": knowledge["structured_blocks"]
244})
245```
246
247---
248
249## 기술 스택
250
251핵심 프레임워크:
252- FastMCP (Python MCP 서버 프레임워크)
253- AsyncIO (비동기 작업 처리)
254- Pydantic (데이터 검증 및 스키마 관리)
255- HTTPX (HTTP 클라이언트 작업)
256
257Notion 통합:
258- Notion API (공식 REST API)
259- OAuth 2.0 (인증 및 권한 관리)
260- Webhook (실시간 이벤트 수신)
261- Rich Text 객체 (복잡한 콘텐츠 구조)
262
263보안 및 인증:
264- OAuth 2.0 구현
265- Integration Token 관리
266- JWT 토큰 처리
267- 안전한 자격 증명 저장
268
269오류 처리 및 신뢰성:
270- 재시도 메커니즘 (지수 백오프)
271- 속도 제한 처리 (Rate Limiting)
272- 포괄적인 오류 분류
273- 모니터링 및 관찰 가능성
274
275개발 도구:
276- 타입 힌트 및 검증
277- 포괄적인 로깅
278- 성능 모니터링
279- 디버깅 및 프로파일링 도구
280
281---
282
283*자세한 구현 패턴, 커넥터 개발, 고급 워크플로우는 `modules/` 디렉터리를 참조하세요.*