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:
Florian BRUNIAUX 2026-01-26 14:40:17 +01:00
parent be79f6c09a
commit ff3458a67c
3 changed files with 628 additions and 9 deletions

View file

@ -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>

View file

@ -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

View file

@ -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.