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">
|
||||
<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>
|
||||
</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>
|
||||
</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.
|
||||
|
||||
**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)
|
||||
|
||||
|
|
@ -191,7 +191,7 @@ cco # Offline mode (Ollama, 100% local)
|
|||
|
||||
| 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 |
|
||||
| **[Architecture](./guide/architecture.md)** | How Claude Code works internally | 25 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/
|
||||
├── guide/ # 📖 Core documentation
|
||||
│ ├── ultimate-guide.md # Complete reference (~13425 lines)
|
||||
│ ├── ultimate-guide.md # Complete reference (~15K lines)
|
||||
│ ├── cheatsheet.md # 1-page printable reference
|
||||
│ ├── architecture.md # How Claude Code works internally
|
||||
│ ├── methodologies.md # 15 development methodologies
|
||||
|
|
@ -238,13 +238,13 @@ claude-code-ultimate-guide/
|
|||
</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) ⭐
|
||||
|
||||
**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 ⭐
|
||||
|
||||
|
|
@ -275,6 +275,19 @@ cd quiz && npm install && npm start
|
|||
|
||||
</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>
|
||||
<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)
|
||||
|
||||
**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 |
|
||||
| **[Gemini](https://gemini.google.com)** | Image understanding → code | Generous | $19.99/month |
|
||||
| **[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 |
|
||||
| **[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 |
|
||||
|
|
@ -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.
|
||||
|
||||
> **💡 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
|
||||
|
||||
Use when: You need to communicate technical changes to stakeholders.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue