docs: add complete NotebookLM MCP integration documentation
Added comprehensive documentation for NotebookLM MCP server integration in Claude Code, covering all 16 tools across 3 profiles (minimal/standard/full). ## Changes ### guide/ai-ecosystem.md (~330 new lines) **§ 4.1 - Enhanced installation section**: - Detailed tool breakdown table (16 tools × 3 profiles) - Profile comparison with recommended defaults - Multi-account authentication workflow - Share links library building pattern **§ 4.2 - Advanced Features (Full Profile)** (~110 lines): - remove_notebook: Library cleanup - re_auth: Google account switching - cleanup_data: Complete MCP reset with preserve_library option - Manual browser control (3 functions): state inspection, actions, element waiting **§ 4.3 - Browser Options** (~70 lines): - Complete options reference (headless, timeout, viewport, stealth) - Stealth mode configuration (typing speed, delays, mouse movements) - Usage examples: debug visually, custom timeouts, disable stealth **§ 4.4 - Session Management** (~60 lines): - Session lifecycle and properties (15min timeout, 10 max concurrent) - Automatic vs manual session control - List/resume/force new session workflows **§ 4.5 - Library Management Best Practices** (~90 lines): - Naming conventions and topics strategy - Metadata refinement workflow (add → use → refine → archive) - Search and discovery patterns - Notebook lifecycle management ### guide/ultimate-guide.md - Updated Complementary Tools table: Added "MCP integration" mention - Added redirect note to ai-ecosystem.md § 4.1 ### README.md - Template count updated (86 → 83) to reflect current state ## Coverage - ✅ All 16 MCP tools documented - ✅ 3 profiles explained (minimal/standard/full) - ✅ Installation, auth, queries, advanced features - ✅ Browser options, session management, best practices - ✅ Troubleshooting and examples ## Testing - Installation: Verified (standard profile) - Authentication: Tested with multi-account setup (authuser=1) - Library: 4 notebooks added and queried successfully - Advanced features: Documented from API spec (not yet tested in practice) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
be79f6c09a
commit
ff3458a67c
3 changed files with 628 additions and 9 deletions
29
README.md
29
README.md
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/FlorianBruniaux/claude-code-ultimate-guide/stargazers"><img src="https://img.shields.io/github/stars/FlorianBruniaux/claude-code-ultimate-guide?style=for-the-badge" alt="Stars"/></a>
|
<a href="https://github.com/FlorianBruniaux/claude-code-ultimate-guide/stargazers"><img src="https://img.shields.io/github/stars/FlorianBruniaux/claude-code-ultimate-guide?style=for-the-badge" alt="Stars"/></a>
|
||||||
<a href="./examples/"><img src="https://img.shields.io/badge/Templates-86-green?style=for-the-badge" alt="Templates"/></a>
|
<a href="./examples/"><img src="https://img.shields.io/badge/Templates-83-green?style=for-the-badge" alt="Templates"/></a>
|
||||||
<a href="./quiz/"><img src="https://img.shields.io/badge/Quiz-227_questions-orange?style=for-the-badge" alt="Quiz"/></a>
|
<a href="./quiz/"><img src="https://img.shields.io/badge/Quiz-227_questions-orange?style=for-the-badge" alt="Quiz"/></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<a href="https://zread.ai/FlorianBruniaux/claude-code-ultimate-guide"><img src="https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjxNTYgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNC45NjE1NiAxMC4zOTk5SDIuMjQxNTZDMS44ODgxIDEwLjM5OTkgMS42MDE1NiAxMC42ODY0IDEuNjAxNTYgMTEuMDM5OVYxMy43NTk5QzEuNjAxNTYgMTQuMTEzNCAxLjg4ODEgMTQuMzk5OSAyLjI0MTU2IDE0LjM5OTlINC45NjE1NkM1LjMxNTAyIDE0LjM5OTkgNS42MDE1NiAxNC4xMTM0IDUuNjAxNTYgMTMuNzU5OVYxMS4wMzk5QzUuNjAxNTYgMTAuNjg2NCA1LjMxNTAyIDEwLjM5OTkgNC45NjE1NiAxMC4zOTk5WiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNMTMuNzU4NCAxLjYwMDFIMTEuMDM4NEMxMC42ODUgMS42MDAxIDEwLjM5ODQgMS44ODY2NCAxMC4zOTg0IDIuMjQwMVY0Ljk2MDFDMTAuMzk4NCA1LjMxMzU2IDEwLjY4NSA1LjYwMDEgMTEuMDM4NCA1LjYwMDFIMTMuNzU4NEMxNC4xMTE5IDUuNjAwMSAxNC4zOTg0IDUuMzEzNTYgMTQuMzk4NCA0Ljk2MDFWMi4yNDAxQzE0LjM5ODQgMS44ODY2NCAxNC4xMTE5IDEuNjAwMSAxMy43NTg0IDEuNjAwMVoiIGZpbGw9IiNmZmYiLz4KPHBhdGggZD0iTTQgMTJMMTIgNEw0IDEyWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc%2BCg%3D%3D&logoColor=ffffff" alt="Ask Zread"/></a>
|
<a href="https://zread.ai/FlorianBruniaux/claude-code-ultimate-guide"><img src="https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjxNTYgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNC45NjE1NiAxMC4zOTk5SDIuMjQxNTZDMS44ODgxIDEwLjM5OTkgMS42MDE1NiAxMC42ODY0IDEuNjAxNTYgMTEuMDM5OVYxMy43NTk5QzEuNjAxNTYgMTQuMTEzNCAxLjg4ODEgMTQuMzk5OSAyLjI0MTU2IDE0LjM5OTlINC45NjE1NkM1LjMxNTAyIDE0LjM5OTkgNS42MDE1NiAxNC4xMTM0IDUuNjAxNTYgMTMuNzU5OVYxMS4wMzk5QzUuNjAxNTYgMTAuNjg2NCA1LjMxNTAyIDEwLjM5OTkgNC45NjE1NiAxMC4zOTk5WiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNMTMuNzU4NCAxLjYwMDFIMTEuMDM4NEMxMC42ODUgMS42MDAxIDEwLjM5ODQgMS44ODY2NCAxMC4zOTg0IDIuMjQwMVY0Ljk2MDFDMTAuMzk4NCA1LjMxMzU2IDEwLjY4NSA1LjYwMDEgMTEuMDM4NCA1LjYwMDFIMTMuNzU4NEMxNC4xMTE5IDUuNjAwMSAxNC4zOTg0IDUuMzEzNTYgMTQuMzk4NCA0Ljk2MDFWMi4yNDAxQzE0LjM5ODQgMS44ODY2NCAxNC4xMTE5IDEuNjAwMSAxMy43NTg0IDEuNjAwMVoiIGZpbGw9IiNmZmYiLz4KPHBhdGggZD0iTTQgMTJMMTIgNEw0IDEyWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc%2BCg%3D%3D&logoColor=ffffff" alt="Ask Zread"/></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
> Complete guide to Claude Code with 86 production-ready templates
|
> Complete guide to Claude Code with 83 production-ready templates
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -64,9 +64,9 @@ Save as `CLAUDE.md` in your project root. Claude reads it automatically.
|
||||||
|
|
||||||
**The problem**: Awesome-lists give links, not learning paths. Official docs are dense. Tutorials get outdated in weeks.
|
**The problem**: Awesome-lists give links, not learning paths. Official docs are dense. Tutorials get outdated in weeks.
|
||||||
|
|
||||||
**This guide**: Structured learning path with 86 copy-paste templates, from first install to advanced workflows.
|
**This guide**: Structured learning path with 83 copy-paste templates, from first install to advanced workflows.
|
||||||
|
|
||||||
**Reading time**: Quick Start ~15 min. Full guide ~3 hours (most read by section).
|
**Reading time**: Quick Start ~15 min. Full guide ~4 hours (most read by section).
|
||||||
|
|
||||||
**By [Florian BRUNIAUX](https://github.com/FlorianBruniaux)** | Founding Engineer [@Méthode Aristote](https://methode-aristote.fr)
|
**By [Florian BRUNIAUX](https://github.com/FlorianBruniaux)** | Founding Engineer [@Méthode Aristote](https://methode-aristote.fr)
|
||||||
|
|
||||||
|
|
@ -191,7 +191,7 @@ cco # Offline mode (Ollama, 100% local)
|
||||||
|
|
||||||
| File | Purpose | Time |
|
| File | Purpose | Time |
|
||||||
|------|---------|------|
|
|------|---------|------|
|
||||||
| **[Ultimate Guide](./guide/ultimate-guide.md)** | Complete reference, 10 sections | ~3 hours |
|
| **[Ultimate Guide](./guide/ultimate-guide.md)** | Complete reference (~15K lines), 10 sections | ~4 hours |
|
||||||
| **[Cheat Sheet](./guide/cheatsheet.md)** | 1-page printable reference | 5 min |
|
| **[Cheat Sheet](./guide/cheatsheet.md)** | 1-page printable reference | 5 min |
|
||||||
| **[Architecture](./guide/architecture.md)** | How Claude Code works internally | 25 min |
|
| **[Architecture](./guide/architecture.md)** | How Claude Code works internally | 25 min |
|
||||||
| **[Methodologies](./guide/methodologies.md)** | TDD, SDD, BDD reference | 20 min |
|
| **[Methodologies](./guide/methodologies.md)** | TDD, SDD, BDD reference | 20 min |
|
||||||
|
|
@ -208,7 +208,7 @@ cco # Offline mode (Ollama, 100% local)
|
||||||
```
|
```
|
||||||
claude-code-ultimate-guide/
|
claude-code-ultimate-guide/
|
||||||
├── guide/ # 📖 Core documentation
|
├── guide/ # 📖 Core documentation
|
||||||
│ ├── ultimate-guide.md # Complete reference (~13425 lines)
|
│ ├── ultimate-guide.md # Complete reference (~15K lines)
|
||||||
│ ├── cheatsheet.md # 1-page printable reference
|
│ ├── cheatsheet.md # 1-page printable reference
|
||||||
│ ├── architecture.md # How Claude Code works internally
|
│ ├── architecture.md # How Claude Code works internally
|
||||||
│ ├── methodologies.md # 15 development methodologies
|
│ ├── methodologies.md # 15 development methodologies
|
||||||
|
|
@ -238,13 +238,13 @@ claude-code-ultimate-guide/
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>Examples Library</strong> (82 templates)</summary>
|
<summary><strong>Examples Library</strong> (83 templates)</summary>
|
||||||
|
|
||||||
**Agents** (6): [code-reviewer](./examples/agents/code-reviewer.md), [test-writer](./examples/agents/test-writer.md), [security-auditor](./examples/agents/security-auditor.md), [refactoring-specialist](./examples/agents/refactoring-specialist.md), [output-evaluator](./examples/agents/output-evaluator.md), [devops-sre](./examples/agents/devops-sre.md) ⭐
|
**Agents** (6): [code-reviewer](./examples/agents/code-reviewer.md), [test-writer](./examples/agents/test-writer.md), [security-auditor](./examples/agents/security-auditor.md), [refactoring-specialist](./examples/agents/refactoring-specialist.md), [output-evaluator](./examples/agents/output-evaluator.md), [devops-sre](./examples/agents/devops-sre.md) ⭐
|
||||||
|
|
||||||
**Slash Commands** (18): [/pr](./examples/commands/pr.md), [/commit](./examples/commands/commit.md), [/release-notes](./examples/commands/release-notes.md), [/diagnose](./examples/commands/diagnose.md), [/security](./examples/commands/security.md), [/refactor](./examples/commands/refactor.md), [/explain](./examples/commands/explain.md), [/optimize](./examples/commands/optimize.md), [/ship](./examples/commands/ship.md)...
|
**Slash Commands** (18): [/pr](./examples/commands/pr.md), [/commit](./examples/commands/commit.md), [/release-notes](./examples/commands/release-notes.md), [/diagnose](./examples/commands/diagnose.md), [/security](./examples/commands/security.md), [/refactor](./examples/commands/refactor.md), [/explain](./examples/commands/explain.md), [/optimize](./examples/commands/optimize.md), [/ship](./examples/commands/ship.md)...
|
||||||
|
|
||||||
**Security Hooks** (15): [dangerous-actions-blocker](./examples/hooks/bash/dangerous-actions-blocker.sh), [prompt-injection-detector](./examples/hooks/bash/prompt-injection-detector.sh), [unicode-injection-scanner](./examples/hooks/bash/unicode-injection-scanner.sh), [output-secrets-scanner](./examples/hooks/bash/output-secrets-scanner.sh)...
|
**Security Hooks** (18): [dangerous-actions-blocker](./examples/hooks/bash/dangerous-actions-blocker.sh), [prompt-injection-detector](./examples/hooks/bash/prompt-injection-detector.sh), [unicode-injection-scanner](./examples/hooks/bash/unicode-injection-scanner.sh), [output-secrets-scanner](./examples/hooks/bash/output-secrets-scanner.sh)...
|
||||||
|
|
||||||
**Skills** (1): [Claudeception](https://github.com/blader/Claudeception) — Meta-skill that auto-generates skills from session discoveries ⭐
|
**Skills** (1): [Claudeception](https://github.com/blader/Claudeception) — Meta-skill that auto-generates skills from session discoveries ⭐
|
||||||
|
|
||||||
|
|
@ -275,6 +275,19 @@ cd quiz && npm install && npm start
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Resource Evaluations</strong> (14 assessments)</summary>
|
||||||
|
|
||||||
|
Systematic evaluation of external resources (tools, methodologies, articles) before integration into the guide.
|
||||||
|
|
||||||
|
**Methodology**: 5-point scoring system (Critical → Low) with technical review and challenge phase for objectivity.
|
||||||
|
|
||||||
|
**Evaluations**: GSD methodology, Worktrunk, Boris Cowork video, AST-grep, ClawdBot analysis, and more.
|
||||||
|
|
||||||
|
**[Browse Evaluations](./docs/resource-evaluations/)** | **[Evaluation Methodology](./docs/resource-evaluations/README.md)**
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>Audit Tools</strong></summary>
|
<summary><strong>Audit Tools</strong></summary>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -450,6 +450,610 @@ After NotebookLM synthesis, export key insights to your project:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 4.1 NotebookLM MCP Integration
|
||||||
|
|
||||||
|
**Available since**: Claude Code v2.1+ with MCP support
|
||||||
|
|
||||||
|
**What it does**: Query your NotebookLM notebooks directly from Claude Code, maintaining conversation context across multiple questions.
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install NotebookLM MCP server
|
||||||
|
claude mcp add notebooklm npx notebooklm-mcp@latest
|
||||||
|
|
||||||
|
# Configure profile (optional, add to ~/.zshrc or ~/.bashrc)
|
||||||
|
export NOTEBOOKLM_PROFILE=standard # minimal (5 tools) | standard (10 tools) | full (16 tools)
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
claude mcp list
|
||||||
|
# Should show: notebooklm: npx notebooklm-mcp@latest - ✓ Connected
|
||||||
|
```
|
||||||
|
|
||||||
|
**Profile comparison**:
|
||||||
|
|
||||||
|
| Profile | Tools | Use Case |
|
||||||
|
|---------|-------|----------|
|
||||||
|
| `minimal` | 5 | Basic queries, token-constrained environments |
|
||||||
|
| `standard` | 10 | **Recommended** - Queries + library management |
|
||||||
|
| `full` | 16 | Advanced (browser control, cleanup, re-auth) |
|
||||||
|
|
||||||
|
**Detailed tool breakdown**:
|
||||||
|
|
||||||
|
| Tool | minimal | standard | full | Description |
|
||||||
|
|------|---------|----------|------|-------------|
|
||||||
|
| `ask_question` | ✅ | ✅ | ✅ | Query notebooks with conversation context |
|
||||||
|
| `add_notebook` | ✅ | ✅ | ✅ | Add notebook to library |
|
||||||
|
| `list_notebooks` | ✅ | ✅ | ✅ | List all notebooks in library |
|
||||||
|
| `get_notebook` | ✅ | ✅ | ✅ | Get notebook details by ID |
|
||||||
|
| `setup_auth` | ✅ | ✅ | ✅ | Initial Google authentication |
|
||||||
|
| `select_notebook` | ❌ | ✅ | ✅ | Set active notebook |
|
||||||
|
| `update_notebook` | ❌ | ✅ | ✅ | Update notebook metadata |
|
||||||
|
| `search_notebooks` | ❌ | ✅ | ✅ | Search library by keywords |
|
||||||
|
| `list_sessions` | ❌ | ✅ | ✅ | List active conversation sessions |
|
||||||
|
| `get_health` | ❌ | ✅ | ✅ | Check auth status and config |
|
||||||
|
| `remove_notebook` | ❌ | ❌ | ✅ | Remove notebook from library |
|
||||||
|
| `re_auth` | ❌ | ❌ | ✅ | Switch Google account |
|
||||||
|
| `cleanup_data` | ❌ | ❌ | ✅ | Clear browser data and sessions |
|
||||||
|
| `get_browser_state` | ❌ | ❌ | ✅ | Manual browser state inspection |
|
||||||
|
| `execute_browser_action` | ❌ | ❌ | ✅ | Manual browser control |
|
||||||
|
| `wait_for_element` | ❌ | ❌ | ✅ | Manual browser element waiting |
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
|
||||||
|
**Important**: NotebookLM MCP uses isolated Chrome profile, separate from your main browser session.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# In Claude Code, first-time setup:
|
||||||
|
"Log me in to NotebookLM"
|
||||||
|
|
||||||
|
# Browser opens automatically for Google authentication
|
||||||
|
# Select your Google account (pro tip: use authuser=1 for secondary accounts)
|
||||||
|
# Session persists in: ~/Library/Application Support/notebooklm-mcp/
|
||||||
|
```
|
||||||
|
|
||||||
|
**Multi-account setup**:
|
||||||
|
|
||||||
|
If you have multiple Google accounts and want to use a specific one:
|
||||||
|
|
||||||
|
1. **Pre-configure in browser**: Open `https://notebooklm.google.com/?authuser=1` (change number for different accounts)
|
||||||
|
2. Sign in with desired account
|
||||||
|
3. **Then** run authentication in Claude Code
|
||||||
|
|
||||||
|
The MCP stores credentials in an isolated Chrome profile, so your main browser cookies don't affect it.
|
||||||
|
|
||||||
|
**Verify authentication**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Check NotebookLM health status"
|
||||||
|
|
||||||
|
# Expected output after successful auth:
|
||||||
|
# {
|
||||||
|
# "authenticated": true,
|
||||||
|
# "account": "your-email@gmail.com",
|
||||||
|
# "notebooks": <count>
|
||||||
|
# }
|
||||||
|
```
|
||||||
|
|
||||||
|
### Building Your Notebook Library
|
||||||
|
|
||||||
|
Unlike the web UI, the MCP works with **share links** rather than auto-syncing all notebooks.
|
||||||
|
|
||||||
|
**Add a notebook**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. In NotebookLM web UI:
|
||||||
|
# - Open notebook
|
||||||
|
# - Click "Share" → "Anyone with the link"
|
||||||
|
# - Copy share URL
|
||||||
|
|
||||||
|
# 2. In Claude Code:
|
||||||
|
"Add notebook: https://notebooklm.google.com/notebook/abc123...
|
||||||
|
Name: LLM Engineer Handbook
|
||||||
|
Description: Comprehensive guide on LLM engineering practices
|
||||||
|
Topics: LLM, fine-tuning, RAG, deployment"
|
||||||
|
|
||||||
|
# Minimal metadata required - the MCP will analyze content automatically
|
||||||
|
```
|
||||||
|
|
||||||
|
**List your library**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"List my NotebookLM notebooks"
|
||||||
|
|
||||||
|
# Shows all added notebooks with topics, use cases, last used
|
||||||
|
```
|
||||||
|
|
||||||
|
**Search library**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Search NotebookLM library for: React patterns"
|
||||||
|
|
||||||
|
# Returns relevant notebooks based on name, description, topics
|
||||||
|
```
|
||||||
|
|
||||||
|
### Querying Notebooks
|
||||||
|
|
||||||
|
**Direct query** (specify notebook):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"In LLM Engineer Handbook, how do I implement RAG with embeddings?"
|
||||||
|
|
||||||
|
# Claude will:
|
||||||
|
# 1. Select the specified notebook
|
||||||
|
# 2. Query NotebookLM with your question
|
||||||
|
# 3. Return answer with precise citations
|
||||||
|
# 4. Maintain session_id for follow-up questions
|
||||||
|
```
|
||||||
|
|
||||||
|
**Contextual conversation**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# First question
|
||||||
|
"In Building Large-Scale Web Apps notebook, what are the caching strategies?"
|
||||||
|
|
||||||
|
# Follow-up (uses same session_id)
|
||||||
|
"How would that apply to a Next.js application?"
|
||||||
|
|
||||||
|
# Another follow-up
|
||||||
|
"What about Redis vs in-memory cache trade-offs?"
|
||||||
|
|
||||||
|
# Session context is maintained across all queries
|
||||||
|
```
|
||||||
|
|
||||||
|
**Select active notebook**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Select LLM Engineer Handbook as active notebook"
|
||||||
|
|
||||||
|
# Now you can ask without specifying notebook each time
|
||||||
|
"What are the fine-tuning techniques?"
|
||||||
|
"How does DPO compare to RLHF?"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Advanced Workflows
|
||||||
|
|
||||||
|
**Multi-notebook research**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Compare insights across notebooks
|
||||||
|
"What does LLM Engineer Handbook say about embeddings?"
|
||||||
|
"Now check Playwright Automation guide for testing strategies"
|
||||||
|
"How can I combine these approaches?"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Update notebook metadata**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# As you use notebooks, refine their metadata
|
||||||
|
"Update LLM Engineer Handbook:
|
||||||
|
- Add topic: prompt engineering
|
||||||
|
- Add use case: When designing LLM architectures"
|
||||||
|
|
||||||
|
# This helps Claude auto-select the right notebook for future queries
|
||||||
|
```
|
||||||
|
|
||||||
|
**Session management**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"List active NotebookLM sessions"
|
||||||
|
|
||||||
|
# Shows all conversation sessions with message counts, age
|
||||||
|
# Useful to resume previous research threads
|
||||||
|
```
|
||||||
|
|
||||||
|
### Comparison: MCP vs Web UI
|
||||||
|
|
||||||
|
| Feature | MCP Integration | Web UI |
|
||||||
|
|---------|----------------|--------|
|
||||||
|
| Access from Claude Code | ✅ Direct | ❌ Manual copy-paste |
|
||||||
|
| Conversation context | ✅ Persistent session_id | ⚠️ Web chat only |
|
||||||
|
| Multi-notebook queries | ✅ Switch seamlessly | ⚠️ Manual navigation |
|
||||||
|
| Audio generation | ❌ Use web UI | ✅ Native |
|
||||||
|
| Share notebooks | ✅ Via library | ✅ Native |
|
||||||
|
| Query speed | ✅ Instant | ⚠️ Browser navigation |
|
||||||
|
|
||||||
|
**Best practice**: Use **MCP for queries** during development, **web UI for audio generation** during onboarding.
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
| Issue | Solution |
|
||||||
|
|-------|----------|
|
||||||
|
| `notebooklm: not connected` | Run `source ~/.zshrc` (or restart terminal), then restart Claude Code |
|
||||||
|
| Empty notebook list after auth | You're authenticated but haven't added notebooks yet - use share links workflow |
|
||||||
|
| Wrong Google account | Clear auth: delete `~/Library/Application Support/notebooklm-mcp/chrome_profile/`, re-authenticate |
|
||||||
|
| "Tool not found" | Check `NOTEBOOKLM_PROFILE` variable is set correctly |
|
||||||
|
| Rate limit errors | Wait 24h or re-authenticate with different Google account |
|
||||||
|
|
||||||
|
**Check MCP configuration**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# View your .claude.json MCP config
|
||||||
|
cat ~/.claude.json | jq '.mcpServers.notebooklm'
|
||||||
|
|
||||||
|
# Should show:
|
||||||
|
# {
|
||||||
|
# "type": "stdio",
|
||||||
|
# "command": "npx",
|
||||||
|
# "args": ["notebooklm-mcp@latest"],
|
||||||
|
# "env": {}
|
||||||
|
# }
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example: Onboarding Workflow
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Day 1: Setup
|
||||||
|
"Log me in to NotebookLM"
|
||||||
|
"Add notebook: <share-link-1> - Codebase Architecture"
|
||||||
|
"Add notebook: <share-link-2> - API Documentation"
|
||||||
|
|
||||||
|
# Day 2: Research
|
||||||
|
"In Codebase Architecture, what's the auth flow?"
|
||||||
|
"How does that integrate with the API docs?"
|
||||||
|
"Select API Documentation notebook"
|
||||||
|
"What are the rate limiting strategies?"
|
||||||
|
|
||||||
|
# Week 2: Advanced
|
||||||
|
"Search library for: database patterns"
|
||||||
|
"In Database Patterns notebook, explain connection pooling"
|
||||||
|
"How would I implement this in our codebase?"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4.2 Advanced Features (Full Profile)
|
||||||
|
|
||||||
|
**When to use `full` profile**:
|
||||||
|
- Need to switch Google accounts frequently (`re_auth`)
|
||||||
|
- Want to clean up MCP data without manual file deletion (`cleanup_data`)
|
||||||
|
- Need to remove notebooks from library (`remove_notebook`)
|
||||||
|
- Advanced debugging requiring manual browser control
|
||||||
|
|
||||||
|
**Enable full profile**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Add to ~/.zshrc or ~/.bashrc
|
||||||
|
export NOTEBOOKLM_PROFILE=full
|
||||||
|
|
||||||
|
# Restart Claude Code
|
||||||
|
```
|
||||||
|
|
||||||
|
### Remove Notebook from Library
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Remove notebook: LLM Engineer Handbook"
|
||||||
|
|
||||||
|
# Or by ID:
|
||||||
|
"Remove notebook with ID: llm-engineer-handbook"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Use case**: Declutter library, remove outdated notebooks, fix duplicate entries.
|
||||||
|
|
||||||
|
### Re-authentication (Account Switching)
|
||||||
|
|
||||||
|
**Scenario**: You want to switch from personal Google account to work account.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Re-authenticate NotebookLM with different account"
|
||||||
|
|
||||||
|
# Browser opens, select different Google account
|
||||||
|
# New credentials saved, old session cleared
|
||||||
|
```
|
||||||
|
|
||||||
|
**Difference vs `setup_auth`**:
|
||||||
|
- `setup_auth`: First-time authentication
|
||||||
|
- `re_auth`: Switch accounts (clears existing session)
|
||||||
|
|
||||||
|
**Important**: After re-auth, your notebook library is **preserved** (stored locally), but you'll need to verify access to notebooks (they must be shared with new account).
|
||||||
|
|
||||||
|
### Cleanup Data
|
||||||
|
|
||||||
|
**Scenario**: Start fresh, clear all MCP data (auth, library, browser profile).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Clean up NotebookLM MCP data"
|
||||||
|
|
||||||
|
# Options:
|
||||||
|
# - preserve_library: Keep notebook metadata (default: false)
|
||||||
|
# - confirm: Safety confirmation (default: false)
|
||||||
|
```
|
||||||
|
|
||||||
|
**What gets deleted**:
|
||||||
|
- Browser profile (`~/Library/Application Support/notebooklm-mcp/chrome_profile/`)
|
||||||
|
- Authentication cookies
|
||||||
|
- Active sessions
|
||||||
|
- Notebook library (unless `preserve_library=true`)
|
||||||
|
|
||||||
|
**When to use**:
|
||||||
|
- Authentication issues not resolved by re-auth
|
||||||
|
- Browser conflicts or corruption
|
||||||
|
- Starting fresh after testing
|
||||||
|
- Before uninstalling MCP
|
||||||
|
|
||||||
|
**Example**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Clean NotebookLM data but keep my library"
|
||||||
|
# → cleanup_data(preserve_library=true, confirm=true)
|
||||||
|
|
||||||
|
"Completely reset NotebookLM MCP"
|
||||||
|
# → cleanup_data(preserve_library=false, confirm=true)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Browser Control
|
||||||
|
|
||||||
|
**Advanced debugging tools** (full profile only):
|
||||||
|
|
||||||
|
**1. Get browser state**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Show NotebookLM browser state"
|
||||||
|
|
||||||
|
# Returns: current_url, cookies, local_storage, session_storage
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Execute browser action**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Navigate NotebookLM browser to specific notebook URL"
|
||||||
|
"Click element in NotebookLM browser"
|
||||||
|
"Type text in NotebookLM browser"
|
||||||
|
```
|
||||||
|
|
||||||
|
**3. Wait for element**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Wait for element to load in NotebookLM browser"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Use case**: Debugging authentication issues, inspecting browser state during failures, manual notebook navigation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4.3 Browser Options (All Profiles)
|
||||||
|
|
||||||
|
Control browser behavior for queries and authentication.
|
||||||
|
|
||||||
|
### Available Options
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
// Visibility
|
||||||
|
"headless": true, // Run without visible window (default: true)
|
||||||
|
"show": false, // Show browser window (default: false)
|
||||||
|
|
||||||
|
// Performance
|
||||||
|
"timeout_ms": 30000, // Operation timeout (default: 30000)
|
||||||
|
|
||||||
|
// Viewport
|
||||||
|
"viewport": {
|
||||||
|
"width": 1920, // Default: 1920
|
||||||
|
"height": 1080 // Default: 1080
|
||||||
|
},
|
||||||
|
|
||||||
|
// Stealth mode (human-like behavior)
|
||||||
|
"stealth": {
|
||||||
|
"enabled": true, // Master switch (default: true)
|
||||||
|
"human_typing": true, // Simulate typing speed (default: true)
|
||||||
|
"random_delays": true, // Random pauses (default: true)
|
||||||
|
"mouse_movements": true, // Realistic mouse moves (default: true)
|
||||||
|
"typing_wpm_min": 160, // Min typing speed (default: 160)
|
||||||
|
"typing_wpm_max": 240, // Max typing speed (default: 240)
|
||||||
|
"delay_min_ms": 100, // Min delay between actions (default: 100)
|
||||||
|
"delay_max_ms": 400 // Max delay between actions (default: 400)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage Examples
|
||||||
|
|
||||||
|
**Debug authentication visually**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Log me in to NotebookLM with visible browser"
|
||||||
|
|
||||||
|
# Claude calls: setup_auth(show_browser=true)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Custom timeout for slow connections**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Ask NotebookLM (with 60s timeout): What are the main concepts?"
|
||||||
|
|
||||||
|
# Claude calls: ask_question(timeout_ms=60000, ...)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Disable stealth for faster queries** (if rate limits not a concern):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Advanced: requires direct tool call (not natural language)
|
||||||
|
ask_question(
|
||||||
|
question="...",
|
||||||
|
browser_options={
|
||||||
|
"stealth": {"enabled": false},
|
||||||
|
"timeout_ms": 10000
|
||||||
|
}
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
**When to customize**:
|
||||||
|
- **Show browser**: Debugging auth issues, verifying account selection
|
||||||
|
- **Increase timeout**: Slow network, large notebooks, complex queries
|
||||||
|
- **Disable stealth**: Local testing, debugging, speed priority
|
||||||
|
- **Custom viewport**: Testing responsive notebook UI (rare)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4.4 Session Management
|
||||||
|
|
||||||
|
NotebookLM MCP maintains conversation context across queries via `session_id`.
|
||||||
|
|
||||||
|
### How Sessions Work
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# First query → Creates session
|
||||||
|
"In LLM Engineer Handbook, what is RAG?"
|
||||||
|
# → Returns session_id: "abc123"
|
||||||
|
|
||||||
|
# Follow-up → Uses same session
|
||||||
|
"How does it compare to fine-tuning?"
|
||||||
|
# → Uses session_id: "abc123" automatically
|
||||||
|
|
||||||
|
# Another notebook → New session
|
||||||
|
"In Playwright Guide, how do I test?"
|
||||||
|
# → New session_id: "xyz789"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Session properties**:
|
||||||
|
- **Automatic**: Claude manages session_id for follow-up questions
|
||||||
|
- **Scoped**: One session per notebook per conversation
|
||||||
|
- **Timeout**: 15 minutes of inactivity (configurable)
|
||||||
|
- **Max sessions**: 10 concurrent (configurable)
|
||||||
|
|
||||||
|
### List Active Sessions
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"List my active NotebookLM sessions"
|
||||||
|
|
||||||
|
# Returns:
|
||||||
|
# - session_id
|
||||||
|
# - notebook_name
|
||||||
|
# - age_seconds
|
||||||
|
# - message_count
|
||||||
|
# - last_activity (timestamp)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Use case**: Resume previous research threads, understand query history, debug context issues.
|
||||||
|
|
||||||
|
### Manual Session Control
|
||||||
|
|
||||||
|
**Resume specific session**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Continue NotebookLM session abc123 with question: What about embeddings?"
|
||||||
|
|
||||||
|
# Claude calls: ask_question(session_id="abc123", question="...")
|
||||||
|
```
|
||||||
|
|
||||||
|
**Force new session** (ignore context):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Ask NotebookLM in fresh session: What is RAG?"
|
||||||
|
|
||||||
|
# Claude omits session_id to create new session
|
||||||
|
```
|
||||||
|
|
||||||
|
**Session cleanup**:
|
||||||
|
|
||||||
|
Sessions auto-expire after 15 minutes. Manual cleanup via `cleanup_data`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4.5 Library Management Best Practices
|
||||||
|
|
||||||
|
### Organizing Notebooks
|
||||||
|
|
||||||
|
**Naming conventions**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Good: Descriptive, searchable
|
||||||
|
"LLM Engineer Handbook"
|
||||||
|
"Playwright Testing Guide"
|
||||||
|
"Next.js Architecture Patterns"
|
||||||
|
|
||||||
|
# Bad: Vague, unhelpful
|
||||||
|
"Notebook 1"
|
||||||
|
"My Docs"
|
||||||
|
"Tech Stuff"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Topics strategy**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Specific, hierarchical
|
||||||
|
topics: ["RAG", "embeddings", "vector databases", "LLM fine-tuning"]
|
||||||
|
|
||||||
|
# Too broad
|
||||||
|
topics: ["AI", "programming"]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Use cases** (helps Claude auto-select):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Action-oriented
|
||||||
|
use_cases: [
|
||||||
|
"When implementing RAG systems",
|
||||||
|
"For fine-tuning LLM models",
|
||||||
|
"To understand embeddings architecture"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Metadata Refinement Workflow
|
||||||
|
|
||||||
|
After using a notebook, refine its metadata:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Initial add (minimal)
|
||||||
|
"Add notebook: <url>
|
||||||
|
Name: TypeScript Guide
|
||||||
|
Description: TypeScript best practices
|
||||||
|
Topics: TypeScript, types"
|
||||||
|
|
||||||
|
# After usage (refine)
|
||||||
|
"Update TypeScript Guide:
|
||||||
|
- Add topic: generics
|
||||||
|
- Add topic: utility types
|
||||||
|
- Add use case: When designing type-safe APIs
|
||||||
|
- Add tag: advanced"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Search and Discovery
|
||||||
|
|
||||||
|
**Keyword search**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Search library for: React hooks"
|
||||||
|
"Search library for: testing"
|
||||||
|
"Search library for: architecture patterns"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Smart selection** (Claude decides):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"Which notebook should I consult about database design?"
|
||||||
|
# Claude searches library, proposes best match
|
||||||
|
|
||||||
|
"I need help with TypeScript generics"
|
||||||
|
# Claude auto-selects TypeScript Guide if metadata matches
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notebook Lifecycle
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Add
|
||||||
|
"Add notebook: <url> - Name: X, Description: Y, Topics: Z"
|
||||||
|
|
||||||
|
# 2. Use
|
||||||
|
"In X notebook, ask: ..."
|
||||||
|
|
||||||
|
# 3. Refine
|
||||||
|
"Update X: Add topic: ..., Add use case: ..."
|
||||||
|
|
||||||
|
# 4. Archive (full profile)
|
||||||
|
"Remove notebook: X" # If outdated or duplicate
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cost
|
||||||
|
|
||||||
|
**Free**: NotebookLM (including MCP integration) is free with Google account
|
||||||
|
|
||||||
|
**Limits**:
|
||||||
|
- Free tier: 100 notebooks, 50 sources per notebook, 500K words, 50 daily queries
|
||||||
|
- Google AI Premium/Ultra: 5x higher limits
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 5. Voice-to-Text Tools (Wispr Flow, Superwhisper)
|
## 5. Voice-to-Text Tools (Wispr Flow, Superwhisper)
|
||||||
|
|
||||||
**Philosophy**: "Vibe coding" — dictate intent, let AI implement
|
**Philosophy**: "Vibe coding" — dictate intent, let AI implement
|
||||||
|
|
|
||||||
|
|
@ -14225,7 +14225,7 @@ The goal isn't replacement—it's **chaining the right tool for each step**.
|
||||||
| **[Perplexity](https://perplexity.ai)** | Research with verified sources | 5 Pro searches/day | $20/month |
|
| **[Perplexity](https://perplexity.ai)** | Research with verified sources | 5 Pro searches/day | $20/month |
|
||||||
| **[Gemini](https://gemini.google.com)** | Image understanding → code | Generous | $19.99/month |
|
| **[Gemini](https://gemini.google.com)** | Image understanding → code | Generous | $19.99/month |
|
||||||
| **[Kimi](https://kimi.ai)** | PPTX generation, 128K context | Generous | Free |
|
| **[Kimi](https://kimi.ai)** | PPTX generation, 128K context | Generous | Free |
|
||||||
| **[NotebookLM](https://notebooklm.google.com)** | Doc synthesis + audio | Full features | Free |
|
| **[NotebookLM](https://notebooklm.google.com)** | Doc synthesis + audio + **MCP integration** | Full features | Free |
|
||||||
| **[v0.dev](https://v0.dev)** | UI prototyping (Shadcn) | Limited | $20/month |
|
| **[v0.dev](https://v0.dev)** | UI prototyping (Shadcn) | Limited | $20/month |
|
||||||
| **[Cursor](https://cursor.sh)** | IDE with AI autocomplete | Limited | $20/month |
|
| **[Cursor](https://cursor.sh)** | IDE with AI autocomplete | Limited | $20/month |
|
||||||
| **[cc-copilot-bridge](https://github.com/FlorianBruniaux/cc-copilot-bridge)** | Multi-provider switching | Full | Copilot Pro+ $10/month |
|
| **[cc-copilot-bridge](https://github.com/FlorianBruniaux/cc-copilot-bridge)** | Multi-provider switching | Full | Copilot Pro+ $10/month |
|
||||||
|
|
@ -14437,6 +14437,8 @@ Use when: You need to quickly understand a new codebase or create audio overview
|
||||||
|
|
||||||
**When to use**: Joining new team, reviewing unfamiliar codebase, onboarding prep.
|
**When to use**: Joining new team, reviewing unfamiliar codebase, onboarding prep.
|
||||||
|
|
||||||
|
> **💡 MCP Integration Available**: You can now query NotebookLM notebooks directly from Claude Code using the NotebookLM MCP server. See [ai-ecosystem.md § 4.1](./ai-ecosystem.md#41-notebooklm-mcp-integration) for installation and usage guide.
|
||||||
|
|
||||||
### Presentation Pipeline
|
### Presentation Pipeline
|
||||||
|
|
||||||
Use when: You need to communicate technical changes to stakeholders.
|
Use when: You need to communicate technical changes to stakeholders.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue