本指南整合社群最佳實踐,涵蓋架構設計、安裝部署、認證管理、自動化工作流、進階模式與故障排除,適合想要建立「Claude Code + NotebookLM」自動化研究管線的開發者。
1. 整體架構設計
1.1 核心架構圖
┌─────────────────────────────────────────────────────────────────┐
│ 用戶層 (User Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Claude Code │ │ Cursor │ │ Codex │ ... MCP Clients
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼────────────────┼──────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ MCP 協議層 (MCP Protocol) │
│ JSON-RPC 2.0 over stdio / SSE │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ NotebookLM MCP Server (Node.js / Python) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Auth │ │Notebook │ │ Source │ │ Studio │ 35+ Tools │ │
│ │ │ Manager │ │ Manager │ │ Manager │ │ Manager │ │ │
│ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ │
│ └───────┼────────────┼────────────┼────────────┼──────────────┘ │
└──────────┼────────────┼────────────┼────────────┼────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ NotebookLM 內部 RPC 層 (Google Internal) │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Headless Chrome (Playwright/Puppeteer) / HTTP RPC Calls │ │
│ │ → Cookie 提取 → RPC 呼叫 → 回傳結構化 JSON │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
1.2 兩大實作路線比較
| 維度 | Playwright 自動化路線 (jacob-bd, alfredang) | 純 HTTP RPC 路線 (rubayatk, PleasePrompto) |
|---|---|---|
| 原理 | 啟動 Headless Chrome,模擬用戶操作 | 直接呼叫 NotebookLM 內部 RPC API |
| 速度 | 較慢(需啟動瀏覽器、頁面載入) | 極快(無瀏覽器開銷) |
| 資源 | 高(記憶體、CPU) | 低 |
| 穩定性 | 受 UI 變更影響大 | 受 API 變更影響大 |
| 功能完整度 | 最高(支援所有 Studio 功能) | 高(約 31-35 tools) |
| 適用場景 | 本機開發、需要完整功能 | CI/CD、Serverless、高頻查詢 |
建議:本機開發用 jacob-bd/notebooklm-mcp-cli(功能最全、CLI+MCP 雙模);生產/自動化管線可評估 HTTP RPC 版 以降低資源消耗。
2. 安裝與部署指南
2.1 方案 A:jacob-bd/notebooklm-mcp-cli(推薦:功能最完整)
# 前置需求:Python 3.10+, uv (建議)
# 安裝 uv: curl -LsSf https://astral.sh/uv/install.sh | sh
# 方式 1:uv tool(推薦,隔離環境、自動更新)
uv tool install notebooklm-mcp-cli
# 方式 2:pipx(同樣隔離環境)
pipx install notebooklm-mcp-cli
# 方式 3:pip(全域安裝,不建議)
pip install notebooklm-mcp-cli
# 驗證安裝
nlm --version
notebooklm-mcp --help
2.2 方案 B:PleasePrompto/notebooklm-mcp(Node.js,輕量)
# 需 Node.js 18+
# 直接用 npx 執行(無需全域安裝)
npx -y notebooklm-mcp@latest
# 或全域安裝
npm install -g notebooklm-mcp
2.3 方案 C:純 HTTP RPC 版(進階、高效能)
# 參考專案:rubayatk/mcp-research-pipeline
# 需自行部署 Node.js 服務,並配合 Cookie 管理服務
# 適合:Kubernetes、Cloud Run、Serverless Functions
3. Claude Code 整合設定
3.1 快速設定(單指令)
# 方案 A:jacob-bd 版(自動寫入 Claude Code 設定)
nlm setup add claude-code
# 方案 B:PleasePrompto 版
claude mcp add notebooklm npx -y notebooklm-mcp@latest
# 方案 C:手動編輯 ~/.claude.json(所有版本通用)
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": ["-y", "notebooklm-mcp@latest"],
"env": {}
}
}
}
3.2 多 Profile 設定(多 Google 帳號)
# 建立不同 profile
nlm login --profile work # 公司帳號
nlm login --profile personal # 個人帳號
# MCP 中切換:在 Claude Code 輸入
"Switch to work profile in NotebookLM"
4. 認證管理架構
4.1 三種認證模式
| 模式 | 原理 | 適用場景 | 設定方式 |
|---|---|---|---|
| Auto (Playwright) | 啟動 Chrome/CDP,手動登入,自動提取 Cookie | 本機開發、有桌面環境 | nlm login / notebooklm-mcp login |
| Manual (Cookie) | 從瀏覽器 DevTools 複製 Cookie Header |
無頭伺服器、CI/CD、Docker | nlm login --manual 貼上 Cookie 字串 |
| External CDP | 連接外部管理的瀏覽器實例 | 企業級瀏覽器編排(OpenClaw, Browserbase) | --provider openclaw --cdp-url http://host:port |
4.2 Cookie 儲存與輪換
~/.notebooklm-mcp-cli/
├── auth.json # 主認證檔(加密儲存)
├── profiles/
│ ├── work/
│ │ ├── cookies.json
│ │ └── metadata.json
│ └── personal/
│ ├── cookies.json
│ └── metadata.json
└── config.json # 全域設定
- 自動刷新:MCP Server 背景定期檢查 Cookie 有效性,嘗試無頭瀏覽器重新登入
- 手動刷新:
nlm login --refresh或在 Claude Code 說「Refresh my NotebookLM login」 - 有效期:約 2-4 週,建議排程每週刷新
4.3 CI/CD 環境最佳實踐
# .github/workflows/research.yml
jobs:
research:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup uv
uses: astral-sh/setup-uv@v3
- name: Install notebooklm-mcp-cli
run: uv tool install notebooklm-mcp-cli
- name: Configure auth
env:
NOTEBOOKLM_COOKIE: ${{ secrets.NOTEBOOKLM_COOKIE }}
run: |
echo "$NOTEBOOKLM_COOKIE" | nlm login --manual --stdin
- name: Run research pipeline
run: |
nlm notebook query "my-notebook-id" "Summarize key findings"
nlm studio create "my-notebook-id" --type audio --wait
nlm download audio "my-notebook-id" ./output/podcast.mp3
5. 核心 MCP Tools 架構(以 jacob-bd 版為例,共 35 Tools)
5.1 Tools 分類總覽
| 分類 | Tools | 用途 |
|---|---|---|
| 認證管理 | login, logout, switch_profile, save_auth_tokens, get_auth_status |
多帳號、Token 管理 |
| 筆記本管理 | create_notebook, list_notebooks, get_notebook, delete_notebook, update_notebook |
CRUD |
| 來源管理 | add_source_url, add_source_pdf, add_source_drive, list_sources, delete_source, refresh_source, sync_drive_sources |
文件接入、同步 |
| 查詢與研究 | query_notebook, deep_research, cross_notebook_query, suggest_questions |
RAG 查詢、深度研究 |
| Studio 內容生成 | generate_audio, generate_video, generate_mind_map, generate_slides, generate_quiz, generate_flashcards, generate_infographic, generate_data_table, generate_briefing_doc |
9 大 Studio 功能 |
| 下載與匯出 | download_audio, download_video, download_mind_map, download_slides, export_notebook |
成果物導出 |
| 管線自動化 | create_pipeline, run_pipeline, list_pipelines |
多步驟工作流 |
| 標籤與搜尋 | add_tags, search_by_tags, smart_select_notebook |
知識組織 |
5.2 關鍵 Tools 參數範例
// deep_research:深度研究(非同步、可追蹤進度)
{
"notebook_id": "uuid",
"topic": "Transformer 架構演進",
"mode": "comprehensive", // quick | standard | comprehensive
"source_selection": "all", // all | tagged | specific
"max_sources": 50,
"follow_up_questions": true
}
// cross_notebook_query:跨筆記本查詢
{
"query": "RAG 評估指標有哪些?",
"notebook_ids": ["uuid1", "uuid2", "uuid3"],
"synthesis_mode": "comparative" // comparative | unified | contradiction
}
// create_pipeline:定義自動化管線
{
"name": "Weekly Research Digest",
"steps": [
{"tool": "deep_research", "params": {"topic": "LLM 新論文", "mode": "quick"}},
{"tool": "generate_audio", "params": {"format": "deep-dive"}},
{"tool": "generate_slides", "params": {"template": "academic"}},
{"tool": "download_audio", "params": {"output": "./digest/weekly.mp3"}},
{"tool": "download_slides", "params": {"output": "./digest/weekly.pptx"}}
],
"schedule": "0 9 * * 1" // 每週一 9:00
}
6. 自動化知識檢索工作流設計模式
6.1 模式一:單輪問答(RAG 基礎)
sequenceDiagram
participant User
participant ClaudeCode
participant MCP
participant NotebookLM
User->>ClaudeCode: "查詢 NotebookLM: RAG chunking 策略"
ClaudeCode->>MCP: query_notebook(notebook_id, "RAG chunking 策略")
MCP->>NotebookLM: RPC: chat.ask()
NotebookLM-->>MCP: {answer, citations, sources}
MCP-->>ClaudeCode: 結構化回應(含引用)
ClaudeCode-->>User: 整理後的回答 + 來源連結
Claude Code Prompt 範本:
使用 NotebookLM MCP 查詢我的筆記本 "AI-Research",問題:
"比較不同上下文長度下的 chunking 策略優缺點"
要求:
1. 引用具體來源(頁碼/段落)
2. 列出關鍵論文與結論
3. 產出比較表格
6.2 模式二:自主深度研究(Agentic Research)
graph TD
A[用戶目標] --> B[Claude Code 規劃]
B --> C{拆解子問題}
C --> D[MCP: suggest_questions]
C --> E[MCP: deep_research mode=quick]
E --> F[分析初步結果]
F --> G{需深入?}
G -->|是| H[MCP: deep_research mode=comprehensive]
G -->|否| I[綜合報告]
H --> J[跨筆記本驗證 cross_notebook_query]
J --> I
I --> K[生成成果物: audio/slides/mindmap]
K --> L[下載交付]
Claude Code 系統提示詞:
你是研究助理,擁有 NotebookLM MCP 工具。
工作流程:
1. 接收研究主題 → 拆解 3-5 個子問題
2. 用 suggest_questions 讓 NotebookLM 提補充問題
3. 執行 deep_research (quick) 掃描全貌
4. 根據結果決定是否升級 comprehensive
5. 用 cross_notebook_query 交叉驗證
6. 綜合生成:Briefing Doc + Slides + Mind Map
7. 下載所有成品到 ./output/{topic}/
6.3 模式三:定期自動化管線(Scheduled Pipeline)
# 定義管線(一次設定,長期執行)
nlm pipeline create "Weekly AI Digest" --steps '
[
{"tool": "deep_research", "params": {"topic": "本週 LLM 論文", "mode": "standard"}},
{"tool": "generate_audio", "params": {"format": "deep-dive", "length": "long"}},
{"tool": "generate_slides", "params": {"template": "executive", "max_slides": 20}},
{"tool": "generate_mind_map", "params": {"focus": "connections"}},
{"tool": "download_audio", "params": {"output": "~/digest/weekly-$(date +%Y%m%d).mp3"}},
{"tool": "download_slides", "params": {"output": "~/digest/weekly-$(date +%Y%m%d).pptx"}},
{"tool": "download_mind_map", "params": {"output": "~/digest/weekly-$(date +%Y%m%d).json"}}
]'
# 排程執行(系統 cron 或 GitHub Actions)
# 每週一早 6 點自動生成
0 6 * * 1 nlm pipeline run "Weekly AI Digest"
6.4 模式四:知識蒸餾 → 技能構建(Skill Generation)
flowchart LR
A[NotebookLM 研究筆記本] --> B[Claude Code 查詢提取框架]
B --> C[生成 Claude Skill 定義]
C --> D[安裝到 Claude Code / Hermes]
D --> E[未來直接調用 Skill 執行同類研究]
style A fill:#e1f5fe
style D fill:#fff3e0
style E fill:#e8f5e9
實作步驟(參考 AI Maker 指南 ): aimaker.substack
-
提取框架:
"查詢我的 'RAG 評估' 筆記本,提取其中的評估框架、指標定義、最佳實踐, 產出結構化 JSON:{name, description, steps, metrics, templates}" -
生成 Skill:
// ~/.claude/skills/rag-evaluation-skill.json { "name": "rag-evaluation", "description": "基於 NotebookLM 研究的 RAG 評估標準流程", "tools": ["notebooklm:query_notebook", "notebooklm:deep_research"], "prompt_template": "執行 RAG 評估:{dataset} 對 {metrics},參考筆記本 {notebook_id}" } -
安裝與使用:
claude skill install ~/.claude/skills/rag-evaluation-skill.json # 之後直接用: > /skill rag-evaluation "評估新嵌入模型在 HotpotQA 上的表現"
7. 進階架構模式
7.1 多 Agent 協作架構
┌────────────────────────────────────────────────────────────┐
│ Orchestrator (Claude Code) │
│ - 任務規劃 - 結果綜合 - 決策路由 │
└────────────┬─────────────┬─────────────┬────────────────────┘
│ │ │
┌──────▼──────┐ ┌────▼─────┐ ┌────▼─────┐
│ Researcher │ │ Synthesizer│ │ Creator │
│ (MCP Query) │ │ (Cross-nb)│ │ (Studio) │
└─────────────┘ └──────────┘ └──────────┘
Claude Code 協作提示詞:
你是研究團隊協調者。可用子代理:
- @researcher: 專門用 NotebookLM MCP 執行 query/deep_research
- @synthesizer: 專門做 cross_notebook_query 和矛盾檢測
- @creator: 專門呼叫 generate_audio/slides/mind_map
任務:為 "Agent Memory 架構" 產出完整研究報告 + 投影片 + 播客
流程:
1. @researcher 掃描所有相關筆記本,回傳關鍵發現清單
2. @synthesizer 交叉比較 3 個筆記本,找出共識與分歧
3. @creator 基於綜合結果生成 3 種成品
4. 你整合最終交付包
7.2 混合 RAG 架構(NotebookLM + 本地向量庫)
┌────────────────────────────────────────────────────────────┐
│ Query Router │
│ - 簡單事實查詢 → Local Vector DB (毫秒級) │
│ - 複雜推理/綜合 → NotebookLM MCP (秒級、引用準確) │
│ - 內容生成 → NotebookLM Studio │
└────────────┬────────────────────────────────────────────────┘
│
┌────────▼────────┐
│ Claude Code │
└────────┬────────┘
┌───────┴───────┐
▼ ▼
┌─────────┐ ┌──────────────┐
│Local DB │ │NotebookLM MCP│
│(Chroma/ │ │(深度研究/生成) │
│ FAISS) │ │ │
└─────────┘ └──────────────┘
優勢:
- 90% 簡單查詢走本地(快、省額度)
- 10% 複雜任務走 NotebookLM(質量高、有引用)
- 突破 NotebookLM 50 queries/天 免費限制
8. 效能優化與成本控制
8.1 Token/Context 管理
| 問題 | 解決方案 |
|---|---|
| MCP Tools 佔用大量 Context | 使用 nlm --ai 生成精簡工具文檔,只載入需要的 tools |
| Deep Research 回傳過長 | 設定 max_tokens 參數、要求 summary_only: true |
| 多輪對話 Context 爆炸 | 定期 /compact、用 cross_notebook_query 替代多輪 query |
# 生成精簡工具文檔給 AI 讀取
nlm --ai > ~/.claude/skills/notebooklm-tools.md
# 在 Claude Code 只載入必要 tools
# ~/.claude.json
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": ["-y", "notebooklm-mcp@latest", "--tools=query_notebook,deep_research,generate_audio"]
}
}
}
8.2 免費額度管理策略
# 額度追蹤腳本(概念代碼)
class QuotaManager:
DAILY_LIMIT = 50 # 免費帳號約 50 queries/天
def __init__(self):
self.used = self.load_today_usage()
def can_query(self, estimated_cost=1):
return self.used + estimated_cost < self.DAILY_LIMIT * 0.8 # 留 20% 緩衝
def route_query(self, query_type):
if query_type == "simple_fact":
return "local_vector_db" # 不消耗額度
elif query_type == "synthesis":
if self.can_query(3):
return "notebooklm_deep_research"
else:
return "local_vector_db + summary"
elif query_type == "generation":
if self.can_query(5):
return "notebooklm_studio"
else:
raise QuotaExceededError("明日再試或升級 Google AI Ultra")
9. 故障排除與常見問題
9.1 連線問題診斷流程
flowchart TD
A[MCP 連線失敗] --> B{查看錯誤訊息}
B -->|"Authentication failed"| C[重新登入: nlm login]
B -->|"Connection refused"| D[檢查 MCP Server 是否啟動]
B -->|"Tool not found"| E[檢查工具名稱拼寫]
B -->|"Timeout"| F[增加 timeout 設定]
B -->|"Rate limited"| G[等待/切換帳號/升級方案]
C --> H[驗證: nlm auth status]
D --> I[重啟: nlm mcp restart]
F --> J[設定: --timeout 120000]
9.2 常見錯誤與解決
| 錯誤 | 原因 | 解決 |
|---|---|---|
Cookie expired |
Google 登入過期 | nlm login --refresh 或重新登入 |
Notebook not found |
UUID 錯誤/權限不足 | nlm list 確認 ID、檢查帳號 |
Source sync failed |
Drive 檔案權限/格式不支援 | 手動在 Web UI 確認、轉 PDF 再上傳 |
Audio generation stuck |
佇列擁擠/格式錯誤 | --wait --timeout 600、改用 deep-dive 格式 |
MCP tools not showing |
Claude Code 未重啟/設定錯誤 | 重啟 Claude Code、檢查 ~/.claude.json 語法 |
9.3 除錯模式
# 啟用詳細日誌
NLM_LOG_LEVEL=debug nlm notebook query "test" "query"
# MCP Server 除錯
DEBUG=notebooklm-mcp:* npx notebooklm-mcp@latest
# 檢查 RPC 請求/回應(HTTP RPC 版)
# 設定 MITM proxy 或瀏覽器 DevTools Network 面板
10. 安全性與合規考量
10.1 風險矩陣
| 風險 | 等級 | 緩解措施 |
|---|---|---|
| Cookie 洩露 → 帳號被盜 | 高 | 加密儲存、定期輪換、專用帳號、不存生產環境 |
| 內部 API 變更 → 工具失效 | 高 | 版本鎖定、監控告警、備援本地 RAG |
| 敏感資料上傳至 NotebookLM | 中 | 資料分級、脫敏、私有部署替代方案 |
| MCP Server 被惡意利用 | 中 | 本機運行、網路隔離、最小權限原則 |
10.2 企業級部署建議
# Docker Compose 範例(隔離環境)
services:
notebooklm-mcp:
image: ghcr.io/jacob-bd/notebooklm-mcp-cli:latest
volumes:
- ./auth:/home/user/.notebooklm-mcp-cli:ro
- ./output:/output
environment:
- NLM_PROFILE=production
- NLM_HEADLESS=true
read_only: true
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
networks: [internal]
cookie-refresher:
image: custom/cookie-refresher
schedules: ["0 3 * * 0"] # 每週日 3 點刷新
secrets: [google_credentials]
11. 替代方案比較:何時不應用 NotebookLM MCP
| 場景 | 推薦替代方案 | 理由 |
|---|---|---|
| 生產環境、需 SLA | Vertex AI RAG Engine / Gemini API + Pinecone/Weaviate | 官方支援、SLA、擴展性 |
| 高頻查詢(>500/天) | 自建向量資料庫 + Embedding API | 成本可控、無額度限制 |
| 嚴格資料治理/合規 | 內網部署開源 RAG(AnythingLLM, Dify, RagFlow) | 資料不出網、可審計 |
| 即時性要求(<100ms) | 本地向量庫 + 重排序模型 | 延遲可控 |
| 多租戶 SaaS | 專用 RAG 服務(Vectara, Pinecone Serverless) | 隔離性、計費模型 |
12. 完整資源彙總
13. 快速啟動檢查清單
# □ 1. 選定方案(建議:jacob-bd/notebooklm-mcp-cli)
# □ 2. 安裝 uv + notebooklm-mcp-cli
# □ 3. 執行 nlm login(建立專用 Google 帳號)
# □ 4. 執行 nlm setup add claude-code
# □ 5. 重啟 Claude Code,輸入 "List my NotebookLM notebooks" 驗證
# □ 6. 建立第一個測試筆記本:nlm notebook create "Test"
# □ 7. 加入測試來源:nlm source add <id> --url "https://example.com"
# □ 8. 執行查詢:nlm notebook query <id> "摘要重點"
# □ 9. 生成音訊:nlm studio create <id> --type audio --wait
# □ 10. 下載成品:nlm download audio <id> ./test.mp3
# □ 11. 設定自動刷新 Cookie(cron/排程)
# □ 12. 設計第一個自動化管線(pipeline)
# □ 13. 建立 Claude Skill 封裝常用工作流
總結
NotebookLM MCP 讓 Claude Code 獲得「具備引用的超大上下文知識庫」能力,透過 35+ MCP Tools 可實現:
- 即時 RAG 查詢 - 秒級回應、含精確引用
- 自主深度研究 - 多輪推理、跨筆記本綜合
- 內容自動生成 - 播客/影片/投影片/心智圖/測驗/閃卡
- 管線化自動化 - 定時執行、成品自動交付
- 知識蒸餾為 Skill - 將研究方法論封裝為可複用能力
架構關鍵點:
- 以 MCP 協議 為標準介面,支援所有主流 AI Coding Agent
- 認證管理 是核心痛點,建議專用帳號 + 自動刷新機制
- 免費額度限制(50 queries/天)需配合本地向量庫分流
- 非官方 API 風險需評估,生產關鍵系統建議改用 Vertex AI RAG
這套架構已在社群驗證超過半年,穩定度足以支撐個人/團隊級研究自動化需求。開始實作前,先完成上方檢查清單的前 5 步驟,即可在 15 分鐘內體驗完整流程。