Notion MCP 활용으로 영상 요약 내용 저장하기
Notion MCP 설정
MCP 어댑터 설정
•
GitHub에서 사용한 것과 유사한 방식으로 설정 복사
•
MCP 어댑터로 감싸기
•
API 키 변경 필요
설정 시 주의사항
•
Notion MCP는 JSON을 딕셔너리로 제공하지 않음
•
문자열 형태로 입력해야 함 (그렇지 않으면 오류 발생)
•
LangChain 어댑터에 따라 transport 지정 필요
툴 리스트 및 블록 문법
사용 가능한 툴
•
기존 데이터베이스에 페이지 게시
•
페이지 생성 후 블록 추가
•
Notion 데이터베이스에 페이지 생성 및 블록 추가
블록 문법의 복잡성
•
공식 문서의 append block children 엔드포인트 참조
•
다양한 블록과 객체들이 각각의 문법에 맞춰 작성 필요
•
헤딩 사용 시 rich text 컬러 지정 필요
•
헤딩 1, 2, 3의 깊이 차이 존재
•
rich text 타입을 텍스트에 맞춰 조정 필요
•
로직 직접 작성보다 MCP 사용이 효율적
Create React Agent 구현
에이전트 설정
•
기존에 많이 사용한 Create React Agent 활용
•
Notion 툴을 툴 리스트에 포함
•
LLM 설정 및 툴 사용 지시
노드 변경 방식
•
복잡한 LangGraph 문법 학습 대신 간단한 방법 선택
•
Upload to Notion 노드 변경
•
기존 MCP 에이전트의 Agent A-Stream 호출 방식 활용
•
헬퍼 함수 복사 및 async 변경
오류 처리 및 해결
데이터베이스 ID vs 페이지 ID 문제
•
데이터베이스 ID를 제공했지만 페이지 ID로 인식하는 오류 발생
•
두 가지 해결 방법 제시
첫 번째 해결책: 프롬프트 개선
•
세부사항 포함하여 데이터베이스에 페이지 생성 후 페이지 ID 사용 지시
•
경험상 Notion MCP에서 잘 작동하지 않음
두 번째 해결책: 노드 추가
•
Create Notion Page 노드 별도 추가
•
페이지 생성 후 페이지 ID 반환
•
반환된 페이지 ID로 블록 추가
페이지 생성 구현
페이지 생성 코드
•
MCP 툴 사용하지 않고 기존 코드 활용
•
outline 제거하고 title만 사용
•
children 제거
페이지 ID 처리
•
Create Page Endpoint의 반환값에 ID 포함
•
해당 ID가 MCP에서 사용할 페이지 ID
•
상태에 페이지 ID 저장 후 블록 추가에 활용
테스트 및 결과 확인
함수 테스트
•
에이전트 실행 전 개별 함수 테스트
•
페이지 생성 및 고유값 확인
•
UUID 형태의 동일한 값 확인
•
uploadToNotion 호출 시 페이지 ID와 outline 사용
결과 확인
•
에이전트 실행 결과 양호
•
Notion에서 불릿 포인트 확인 가능
프롬프트 개선
Generate Outline 프롬프트 수정
•
마크다운 형식 유지 지시
•
헤딩과 서브헤딩 사용
•
불릿 포인트나 번호 사용 지시
Upload Notion 프롬프트 수정
•
마크다운 형식 인식하도록 수정
•
제목 변경으로 혼동 방지
헤딩 처리 개선
헤딩 사용 문제
•
MCP 제작 시 헤딩 사용법 미숙으로 인한 문제
•
개별 블록 제작 시 전체적이지 않은 결과
Notion API 문서 참조
•
블록 객체의 헤딩 섹션 참조
•
헤딩 입력 방법 복사 및 적용
•
헤딩 3까지만 지원하도록 프롬프트 수정
LangChain 문법 개선
•
f-string 제거
•
템플릿 형태로 감싸기
•
일반 문자열과 변수 구분
•
human message의 invoke로 prompt value 생성
•
문자열 형태로 포맷팅 후 전달
최종 결과
성공적인 구현
•
음성 인식 완료 후 헤딩 적용 성공
•
Notion에서 올바른 헤딩 형태 확인
•
비디오에서 텍스트 추출 → 요약 → Notion 업로드 완료
실무 활용 가능성
•
회사 교육 시 비디오 자료 활용
•
YouTube 영상 공유 시 요약 활용
•
다음 강의: YouTube 비디오 요약 구현 예정