roomi-fields/notebooklm-mcp
요약
Google NotebookLM을 자동화할 수 있는 REST API와 MCP 서버를 제공하는 오픈소스 프로젝트입니다. n8n, Zapier 등 자동화 도구와 Claude Code, Cursor 등 AI 코딩 도구와의 연동을 지원하며, 오디오·비디오·보고서 등 다양한 콘텐츠 생성이 가능합니다.
핵심 포인트
- 33개의 HTTP REST API 엔드포인트 제공
- Claude Code 및 Cursor를 위한 MCP 서버 지원
- 오디오, 비디오, 인포그래픽 등 멀티미디어 생성 기능
- 자동 재인증을 통한 멀티 계정 및 세션 관리 지원
- 인용 기반의 정확한 질의응답 및 소스 추출
Google NotebookLM을 대규모로 자동화하세요. n8n / Zapier / Make / curl을 위한 33개 엔드포인트 HTTP REST API와 Claude Code / Cursor / Codex를 위한 MCP 서버를 제공합니다. 인용 기반의 질의응답(Q&A), 전체 Studio 생성 기능(오디오 · 비디오 · 인포그래픽 · 보고서 · 프레젠테이션 · 데이터 테이블), 자동 재인증을 통한 멀티 계정 로테이션을 지원합니다.
v2.0.1 — 프로덕션급(production-grade) 성능을 갖추었으며, 1,000개 이상의 질문을 밤새 실행하여 배치 테스트(batch-tested)를 완료했습니다. 이제 도구(Tools)는 점 표기법 트리(dot-notation tree) 구조(notebook.ask, source.add, session.list 등)로 제공되며, 모든 도구에 MCP annotations 및 outputSchema가 적용되었습니다. 기존의 평면적(flat) 이름들도 별칭(aliases)으로 여전히 작동하므로 기존 기능이 깨지지 않습니다. 전체 매핑 정보는 변경 로그(changelog)를 참조하세요. 이 프로젝트를 선택해야 할 시점(REST API, 전체 Studio, 자동 재인증 필요 시)과 MCP 전용 업스트림(upstream)을 선택해야 할 시점을 확인하려면 PleasePrompto/notebooklm-mcp v2.0.0과 비교해 보세요.
질문하기(Ask questions): NotebookLM에 질문을 던지고 인용이 포함된 정확한 답변을 받으세요.
소스 인용 추출(Source citation extraction): 5가지 형식(없음, 인라인, 각주, JSON, 확장형(97% 발췌 성공률))으로 제공됩니다.
세션 관리(Session management): 세션 만료 시 자동 재인증(auto-reauth)을 지원하여 멀티 턴(multi-turn) 대화가 가능합니다.
노트북 소스로부터 다양한 콘텐츠 유형을 생성할 수 있습니다:
| 콘텐츠 유형 | 형식 | 옵션 |
|---|---|---|
| 오디오 오버뷰 (Audio Overview) | 팟캐스트 스타일 토론 | 언어 (80개 이상), 사용자 지정 지침 |
| 비디오 (Video) | 브리핑, 설명 영상 | 6가지 시각적 스타일, 언어, 사용자 지정 지침 |
| 인포그래픽 (Infographic) | 가로형, 세로형 | 언어, 사용자 지정 지침 |
| 보고서 (Report) | 요약형, 상세형 | 언어, 사용자 지정 지침 |
| 프레젠테이션 (Presentation) | 개요형, 상세형 | 언어, 사용자 지정 지침 |
| 데이터 테이블 (Data Table) | 단순형, 상세형 | 언어, 사용자 지정 지침 |
비디오 시각적 스타일(Video Visual Styles): 강의실(classroom), 다큐멘터리(documentary), 애니메이션(animated), 기업용(corporate), 시네마틱(cinematic), 미니멀리스트(minimalist)
오디오 다운로드— WAV 오디오 파일
비디오 다운로드— MP4 비디오 파일
인포그래픽 다운로드— PNG 이미지 파일
- 텍스트 기반 콘텐츠(보고서, 프레젠테이션, 데이터 테이블)는 API 응답으로 반환됩니다.
소스 추가 (Add sources): 파일 (PDF, TXT, DOCX), URL, 텍스트, YouTube 동영상, Google Drive
소스 목록 (List sources): 노트북 내의 모든 소스 보기
멀티 노트북 관리 (Multi-notebook management): 검증 및 스마트 선택 기능 포함
자동 검색 (Auto-discovery): NotebookLM 쿼리를 통해 메타데이터를 자동으로 생성
노트북 검색 (Search notebooks): 이름, 설명 또는 주제별 키워드로 노트북 검색
노트북 스크래핑 (Scrape notebooks): ID 및 이름과 함께 NotebookLM의 모든 노트북 목록을 가져옴
일괄 삭제 (Bulk delete): 여러 노트북을 한 번에 삭제
MCP 프로토콜 (MCP Protocol) — Claude Code, Cursor, Codex, 모든 MCP 클라이언트
HTTP REST API — n8n, Zapier, Make.com, 커스텀 통합
Docker — Docker 또는 Docker Compose를 통한 격리된 배포
RTFM 검색 레이어 (RTFM retrieval layer) — /batch-to-vault
인용 근거가 포함된 답변을 Markdown + JSON 사이드카 (nblm-answer-v1 스키마) 형식으로 작성하며, RTFM(FTS5 + 시맨틱 검색)에 의해 인덱싱되어 무제한 오프라인 쿼리가 가능합니다. 학술적 / SOTA (최첨단) 워크플로우에 이상적입니다. 가이드.
NotebookLM을 Claude Code에 연결하는 가장 빠른 방법입니다. RTFM(검색 컴패니언 — RTFM 통합 가이드 참조)과 함께 roomi-fields/claude-plugins 마켓플레이스를 통해 배포됩니다:
/plugin marketplace add roomi-fields/claude-plugins
/plugin install notebooklm@roomi-fields
이 명령은 MCP 서버를 등록하고, npx -y @roomi-fields/notebooklm-mcp@<pinned-version>를 자동으로 실행하며 (Node ≥ 18 필요), 새 릴리스가 출시되었을 때 두 개의 명령으로 업그레이드할 수 있게 해줍니다: /plugin marketplace update roomi-fields 실행 후 /reload-plugins를 실행하세요. 그 다음, Google에 로그인하기 위해 npm run setup-auth를 한 번 실행합니다. RTFM을 동시에 설치하려면 /plugin install rtfm@roomi-fields를 사용하세요.
git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
npm install && npm run build
...
# 인용 근거 기반 Q&A, 단일 curl, JSON 응답
curl -X POST http://localhost:3000/ask \
-H 'Content-Type: application/json' \
...
전체 기능은 **33개의 문서화된 엔드포인트 (endpoints)**로 구성되어 있습니다 — REST API 참조를 확인하세요. 1,000개 이상의 질문을 밤새 배치 처리하려면 배치 패턴을 참조하세요.
# 빌드 (동일 패키지, MCP 전송 방식)
git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
...
그 다음 다음과 같이 말하세요: "Log me in to NotebookLM" → Chrome이 열림 → Google 계정으로 로그인.
# 빌드 및 실행
docker build -t notebooklm-mcp .
docker run -d --name notebooklm-mcp -p 3000:3000 -p 6080:6080 -v notebooklm-data:/data notebooklm-mcp
...
NAS 배포(Synology, QNAP)에 대해서는 Docker 가이드를 참조하세요.
전체 문서 사이트: https://roomi-fields.github.io/notebooklm-mcp/ · OpenAPI 3.1 사양(spec)
| 가이드 | 설명 |
|---|---|
| 설치 (Installation) | HTTP 및 MCP 모드를 위한 단계별 설정 |
| ... | RTFM 통합 — 검색 가능한 볼트(vault)로 캐싱 |
| 파이프라인 패턴 | NotebookLM을 원샷 인제스션(one-shot ingestion)으로, RTFM을 검색 레이어(retrieval layer)로 사용. /batch-to-vault 엔드포인트, nblm-answer-v1 스키마(schema). |
| n8n 통합 | 워크플로우 자동화 설정 |
| 문제 해결 (Troubleshooting) | 일반적인 문제 및 해결 방법 |
| Notebook 라이브러리 | 멀티 노트북 관리 |
| ... | PleasePrompto v2.0.0와 비교 |
| 기능 매트릭스 | 업스트림(upstream) MCP 전용 서버와 비교 |
| Chrome 프로필 제한 | 프로필 잠금 (v1.3.6+에서 해결됨) |
| 언어 추가 | 다국어 UI 지원을 위한 i18n 시스템 |
계획된 기능 및 버전 이력은 ROADMAP.md를 참조하세요.
최신 릴리스:
v2.0.0— 9개의 네임스페이스(namespace)에 걸쳐 도구(Tools)의 이름이 점 표기법(dot-notation) 트리 구조로 변경되었습니다 (notebook.ask, source.add, session.list, server.health, vault.batch 등). tools/list는 정식 명칭(canonical names)만 공지합니다. 하위 호환성 유지 — 기존의 평면적(flat) 이름들도 여전히 별칭(alias)으로 작동하므로, 기존 스크립트와 설정이 계속 실행됩니다. 또한 모든 도구에 MCP annotations (읽기 전용 / 파괴적 / 멱등적 / 오픈 월드 힌트) 및 outputSchema + structuredContent가 추가되었습니다. Smithery 레지스트리에 게시되었습니다.
v1.7.9— 보안: ip-address ^10.2.0를 overrides에 고정함으로써, 전이적 의존성(transitive dependency)인 ip-address ≤10.1.0 (@modelcontextprotocol/sdk → express-rate-limit를 통해 가져옴)에서 발생한 중간 수준의 XSS 권고 사항 GHSA-v2v4-37r5-5v8g를 해결했습니다. npm audit
clean. 1.7.8 버전에서 실패하던 CI 보안 게이트(security gate)를 해제합니다.v1.7.8—add_source
거짓 음성(false-negative) 수정 (이번에는 라이브 MCP 세션에서 런타임 검증 완료): NotebookLM 2026은 연속적인 업로드를 허용하기 위해 대화 상자(dialog)를 계속 열어두므로, 이제 횟수 기반의 성공 감지(success detection)가 업로드 대화 상자가 닫힌 후뿐만 아니라 모든 폴링 사이클(poll cycle)에서 실행됩니다. 또한 dist/index.js가 모드 644(실행 권한 +x 없음)로 게시되어 샌드박스 셸(sandbox shells)에서 조용한 Permission denied 오류를 일으키던 오래된 패키징 버그를 수정했습니다.v1.7.7—add_source
방어적 패치(defensive patch): 비어 있거나 새로 생성된 노트북의 "소스 업로드(Upload sources)" CTA(영어 및 프랑스어)를 포함하도록 선택자(selectors)를 확장하고, 단순한 Could not find "Add source" button 오류를 구조화된 DOM 덤프(URL, 제목, 상위 25개 버튼 + 해당 aria-label/text/class)로 대체하여 다음 반복(iteration) 시 정밀한 대응이 가능하도록 했습니다. 런타임 검증은 수행되지 않았으며, 강화된 진단 정보(diagnostic)를 제공하는 것이 목적입니다.v1.7.6— 1.7.4 버전에서 라이브 런타임 검증 없이 배포된 두 가지 도구(tools)를 수정합니다: (1) create_notebook이 이제 최종 UUID 기반 URL(더 이상 notebook/creating/c가 아님)을 기다리며 이름 변경이 실제로 적용되었는지 확인합니다(name_applied/actual_name 반환); (2) delete_notebooks_from_nblm이 이제 list_notebooks_from_nblm과 동일한 ID 기반 DOM 전략을 사용합니다(기존의 button[aria-labelledby*="project-"] 선택자는 현재 NotebookLM DOM에서 작동하지 않았습니다)v1.7.5— 세 가지 엔드 유저(end-user) 버그 수정: (1) /plugin marketplace update roomi-fields + /reload-plugins가 이제 실제로 실행 중인 MCP를 업그레이드합니다(plugin.json 내의 npx pin); (2) list_notebooks_from_nblm이 더 이상 제목을 `
MCP 도구가 선언되었으나 도달할 수 없음 (dispatch case 누락) — 이제 올바르게 해결됨v1.7.2— Claude Code 플러그인 매니페스트 (.claude-plugin/plugin.json) 업데이트 및 CI에서 교차 파일 버전 동기화 스크립트 강제 적용; README
이 도구는 NotebookLM과의 브라우저 상호작용 (browser interactions)을 자동화합니다. 자동화를 위해 전용 Google 계정을 사용하십시오. Claude Code와 같은 CLI 도구는 실수를 할 수 있으므로, 배포하기 전에 항상 변경 사항을 검토하십시오.
아래의 전체 면책 조항 (Disclaimer)을 확인하십시오.
버그를 발견하셨나요? 아이디어가 있으신가요? 이슈 (issue)를 오픈하거나 PR (Pull Request)을 제출해 주세요!
가이드라인은 CONTRIBUTING.md를 참조하십시오.
MIT — 프로젝트에서 자유롭게 사용하십시오. LICENSE를 참조하십시오.
Romain Peyrichou — @roomi-fields
브라우저 자동화 (browser automation)에 대하여:
인간화 기능 (humanization features, 현실적인 타이핑 속도, 자연스러운 지연 시간, 마우스 움직임)을 구축하였으나, Google이 자동화된 사용을 탐지하거나 플래그 (flag)를 지정하지 않을 것이라고 보장할 수는 없습니다. 자동화를 위해 전용 Google 계정을 사용하십시오.
CLI 도구 및 AI 에이전트 (AI agents)에 대하여:
Claude Code, Codex 및 이와 유사한 AI 기반 어시스턴트와 같은 CLI 도구는 강력하지만 실수를 할 수 있습니다:
- 커밋 (commit) 또는 배포하기 전에 항상 변경 사항을 검토하십시오
- 먼저 안전한 환경에서 테스트하십시오
- 중요한 작업의 백업을 유지하십시오
- AI 에이전트는 보조 도구이며, 결코 오류가 없는 신탁 (oracle)이 아닙니다
저는 저 자신을 위해 이 도구를 만들었으며 다른 사람들에게 도움이 되기를 바라며 공유하지만, 발생할 수 있는 어떠한 문제에 대해서도 책임을 지지 않습니다. 사용자의 재량에 따라 사용하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기