| name | moai-mcp-notion |
| description | 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. |
| version | 1.0.0 |
| category | integration |
| allowed-tools | Read, Write, Edit, Bash, Grep, Glob |
| tags | mcp, notion, workspace, database, knowledge-management, documentation |
| related-skills | moai-docs-generation, moai-workflow-project, moai-domain-backend |
| updated | Sun Dec 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time) |
| status | active |
| author | MoAI-ADK Team |
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/ 디렉터리를 참조하세요.