Zero-hallucination answers • Gemini Deep Research • 14 Security Layers • Enterprise Compliance What's New 2026 • Deep Research • Document API • Create Notebooks • Security • Install - 🔍 Query your NotebookLM notebooks — source-grounded, zero-hallucination answers - 📚 Create & manage notebooks programmatically — no manual clicking - 🎙️ Generate audio overviews — podcast-style summaries of your d
Add this skill
npx mdskills install Pantheon-Security/notebooklm-mcp-secureComprehensive MCP server with 47 tools for NotebookLM, Gemini research, and enterprise security
1<div align="center">23# NotebookLM MCP Server (Security Hardened)45### 🏆 The World's Most Advanced NotebookLM MCP Server67**Zero-hallucination answers • Gemini Deep Research • 14 Security Layers • Enterprise Compliance**89[](https://www.npmjs.com/package/@pan-sec/notebooklm-mcp)10[](https://calver.org/)11[](https://www.typescriptlang.org/)12[](https://modelcontextprotocol.io/)13[](#cross-platform-support)14[](./SECURITY.md)15[](./SECURITY.md#post-quantum-encryption)16[](#-gemini-deep-research-v180)17[](#-document-api-v190)18[](#programmatic-notebook-creation-v170)19[](./docs/COMPLIANCE-SPEC.md)20[](./tests/)2122[**What's New 2026**](#-whats-new-in-2026) • [**Deep Research**](#-gemini-deep-research) • [**Document API**](#-document-api) • [**Create Notebooks**](#programmatic-notebook-creation) • [**Security**](#security-features) • [**Install**](#installation)2324</div>2526> **The only NotebookLM MCP with enterprise-grade security, post-quantum encryption, and full Gemini API integration.**27>28> Security-hardened fork of [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp) • Maintained by [Pantheon Security](https://pantheonsecurity.io)2930### ⚡ TL;DR — What You Get3132- 🔍 **Query your NotebookLM notebooks** — source-grounded, zero-hallucination answers33- 📚 **Create & manage notebooks programmatically** — no manual clicking34- 🎙️ **Generate audio overviews** — podcast-style summaries of your docs35- 🎬 **Generate video overviews** — AI video summaries with 10 visual styles **NEW**36- 📊 **Extract data tables** — structured JSON from notebook sources **NEW**37- 🔬 **Gemini 3 + Deep Research** — latest models with thinking control (optional API) **NEW**38- 📄 **Document API** — upload & query PDFs without browser (optional API)39- 🔐 **14 security layers** — post-quantum encryption, audit logs, secrets scanning40- ✅ **Enterprise compliance** — GDPR, SOC2, CSSF ready41- 💡 **No API key required** — core features work with just browser auth4243---4445## 🚀 What's New in 20264647**Latest: v2026.2.1** — Standard profile now exposes all key features (33 tools by default)4849| Version | Highlights |50|---------|------------|51| **v2026.2.1** | Standard profile expanded: 14 → 33 tools — notebook creation, audio, source management now visible by default |52| **v2026.2.0** | Gemini 3 models (2.5 retiring March 31), Video Overviews, Data Tables, thinking level, structured JSON, SDK 1.41 |53| **v2026.1.12** | Security hardening: constant-time auth, command injection fix, memory leak fixes, MCP SDK 1.26.0 |54| **v2026.1.11** | Notebook sync extraction for new Angular UI, `NOTEBOOKLM_NO_GEMINI` env var |55| **v2026.1.10** | Tool description clarity for multi-LLM compatibility |56| **v2026.1.9** | Documentation & UX improvements, npm audit fix |57| **v2026.1.8** | Major dependency updates (zod 4.x, dotenv 17.x, post-quantum 0.5.4) |58| **v2026.1.7** | MCP Protocol UX: tool icons, human-friendly titles, behavior annotations |59| **v2026.1.4** | Defense-in-depth path validation, security hardening |60| **v2026.1.1** | Deep health checks, chat history extraction, context management |6162```bash63# Quick install64claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest65```6667### Why Choose This MCP?6869| Capability | Other MCPs | This MCP |70|------------|------------|----------|71| Query NotebookLM | ✅ Basic | ✅ **+ session management, quotas** |72| Create notebooks programmatically | ❌ | ✅ **UNIQUE** |73| Gemini Deep Research | ❌ | ✅ **EXCLUSIVE** |74| Document API (no browser) | ❌ | ✅ **EXCLUSIVE** |75| Post-quantum encryption | ❌ | ✅ **Future-proof** |76| Enterprise compliance | ❌ | ✅ **GDPR/SOC2/CSSF** |77| Video Overview generation | ❌ | ✅ **NEW** |78| Data Table extraction | ❌ | ✅ **NEW** |79| Chat history extraction | ❌ | ✅ |80| Deep health verification | ❌ | ✅ |8182<details>83<summary><b>📋 Full Feature List (47 Tools)</b></summary>8485#### Core NotebookLM (No API Key Required)86| Tool | Description |87|------|-------------|88| `ask_question` | Query notebooks with source-grounded answers |89| `add_notebook` | Add a notebook to your library |90| `list_notebooks` | List all notebooks in library |91| `select_notebook` | Set active notebook |92| `update_notebook` | Update notebook metadata |93| `remove_notebook` | Remove from library |94| `create_notebook` | Programmatically create new notebooks |95| `batch_create_notebooks` | Create multiple notebooks at once |96| `sync_library` | Sync library with NotebookLM |97| `list_sources` | List sources in a notebook |98| `add_source` | Add source to notebook |99| `remove_source` | Remove source from notebook |100| `generate_audio_overview` | Create podcast-style audio |101| `get_audio_status` | Check audio generation status |102| `download_audio` | Download generated audio |103| `generate_video_overview` | Create AI video overview (10 styles) |104| `get_video_status` | Check video generation status |105| `generate_data_table` | Generate structured data table |106| `get_data_table` | Extract data table as JSON |107| `list_sessions` | List active sessions |108| `close_session` | Close a session |109| `reset_session` | Reset session history |110| `get_health` | Check server & auth status |111| `setup_auth` | Initial authentication |112| `re_auth` | Re-authenticate |113| `cleanup_data` | Clean up local data |114| `get_quota` | Check usage quotas |115| `set_quota_tier` | Set quota tier |116| `get_query_history` | View past queries |117| `get_notebook_chat_history` | Extract browser chat history |118| `get_project_info` | Get project context |119| `export_library` | Export library backup |120121#### Gemini API (Optional - Requires GEMINI_API_KEY)122| Tool | Description |123|------|-------------|124| `deep_research` | Comprehensive research agent |125| `gemini_query` | Fast grounded queries |126| `get_research_status` | Check research progress |127| `upload_document` | Upload docs to Gemini |128| `query_document` | Query uploaded documents |129| `query_chunked_document` | Query large documents |130| `list_documents` | List uploaded documents |131| `delete_document` | Delete uploaded document |132133#### Webhooks & Integrations134| Tool | Description |135|------|-------------|136| `configure_webhook` | Set up webhook notifications |137| `list_webhooks` | List configured webhooks |138| `test_webhook` | Test webhook delivery |139| `remove_webhook` | Remove a webhook |140141#### Enterprise Compliance (16 additional tools)142See [Compliance Documentation](./docs/COMPLIANCE-SPEC.md) for full list.143144</details>145146---147148## Gemini Deep Research (v1.8.0)149150**The most powerful research capability for AI agents — now in your MCP toolkit.**151152v1.8.0 introduces the **Gemini Interactions API** as a stable, API-based research backend alongside browser automation. This gives your agents access to Google's state-of-the-art Deep Research agent.153154### Why This Matters155156| Challenge | Solution |157|-----------|----------|158| Browser UI changes break automation | **Gemini API is stable and versioned** |159| Need comprehensive research but no research agent | **Deep Research agent does it for you** |160| Want current information with citations | **Google Search grounding built-in** |161| Need reliable, fast queries | **API-based = no UI dependencies** |162163### New Tools164165#### `deep_research` — Comprehensive Research Agent166167```168"Research the security implications of post-quantum cryptography adoption in financial services"169```170171- Runs Google's **Deep Research agent** (same as Gemini Advanced)172- Takes 1-5 minutes for comprehensive, web-grounded analysis173- Returns structured answers with **citations and sources**174- Perfect for complex topics requiring multi-source synthesis175176#### `gemini_query` — Fast Grounded Queries177178```179"What are the latest CVEs for Log4j in 2025?" (with Google Search)180"Calculate the compound interest on $10,000 at 5% over 10 years" (with code execution)181"Summarize this security advisory: [URL]" (with URL context)182```183184- **Google Search grounding** — Current information, not just training data185- **Code execution** — Run calculations, data analysis186- **URL context** — Analyze web pages on demand187- Models: `gemini-3-flash-preview` (default), `gemini-3-pro-preview` (powerful), `gemini-2.5-flash` (legacy)188189#### `get_research_status` — Background Task Monitoring190191Run deep research in the background and check progress:192```193"Start researching [topic] in the background"194... continue other work ...195"Check research status for interaction_abc123"196```197198### Hybrid Architecture199200```201┌──────────────────────────────────────────────────────────────────────────────┐202│ NotebookLM MCP Server v2026.2.x │203├──────────────────────────────────────────────────────────────────────────────┤204│ │205│ ┌────────────────────────────────┐ ┌──────────────────────────────────┐ │206│ │ BROWSER AUTOMATION │ │ GEMINI API │ │207│ │ ✅ NO API KEY NEEDED │ │ ⚡ OPTIONAL - needs API key │ │208│ ├────────────────────────────────┤ ├──────────────────────────────────┤ │209│ │ │ │ │ │210│ │ QUERY │ │ RESEARCH │ │211│ │ • ask_question │ │ • deep_research │ │212│ │ • get_notebook_chat_history │ │ • gemini_query │ │213│ │ │ │ • get_research_status │ │214│ │ CREATE & MANAGE │ │ │ │215│ │ • create_notebook │ │ DOCUMENTS │ │216│ │ • batch_create_notebooks │ │ • upload_document │ │217│ │ • manage_sources │ │ • query_document │ │218│ │ • generate_audio │ │ • query_chunked_document │ │219│ │ • generate_video_overview │ │ • list/delete_document │ │220│ │ • generate_data_table │ │ │ │221│ │ • sync_notebook │ │ │ │222│ │ │ │ │ │223│ │ HEALTH & SESSIONS v2026 │ │ │ │224│ │ • get_health (deep_check) │ │ Fast API • 48h retention │ │225│ │ • get_query_history │ │ Auto-chunking for large PDFs │ │226│ └────────────────────────────────┘ └──────────────────────────────────┘ │227│ │228│ ┌─────────────────────────────────┐ │229│ │ 14 SECURITY LAYERS │ │230│ │ Post-Quantum • Audit Logs │ │231│ │ Cert Pinning • Memory Wipe │ │232│ │ GDPR • SOC2 • CSSF Ready │ │233│ └─────────────────────────────────┘ │234└──────────────────────────────────────────────────────────────────────────────┘235```236237> **💡 Gemini API is completely optional!** All core NotebookLM features (ask_question, notebooks, sessions, audio) work via browser automation with **no API key required**. The Gemini tools below are bonus features for users who want direct API access.238239### Gemini Configuration (Optional)240241```bash242# Only required if you want Gemini API features (deep_research, gemini_query, upload_document)243GEMINI_API_KEY=your-api-key # Get from https://aistudio.google.com/apikey244245# Optional settings246GEMINI_DEFAULT_MODEL=gemini-3-flash-preview # Default model (was gemini-2.5-flash)247GEMINI_DEEP_RESEARCH_ENABLED=true # Enable Deep Research248GEMINI_TIMEOUT_MS=30000 # API timeout249```250251### When to Use Which252253| Task | Best Tool | Why |254|------|-----------|-----|255| Questions about YOUR documents | `ask_question` | Grounded on your uploaded sources |256| Comprehensive topic research | `deep_research` | Multi-source synthesis with citations |257| Current events / recent info | `gemini_query` + google_search | Live web data |258| Code calculations | `gemini_query` + code_execution | Reliable computation |259| Analyze a webpage | `gemini_query` + url_context | Direct page analysis |260| **Quick PDF/document analysis** | `upload_document` + `query_document` | **Fast API, no browser** (NEW!) |261262---263264## 📄 Document API (v1.9.0)265266**Upload and query documents directly via Gemini API — no browser automation needed.**267268v1.9.0 introduces the **Gemini Files API** for fast, reliable document analysis. Upload PDFs, analyze them instantly, and delete when done.269270### Why This Matters271272| Feature | Browser Mode | Document API |273|---------|--------------|--------------|274| Speed | Seconds | **Milliseconds** |275| Reliability | UI-dependent | **API-stable** |276| File Support | Via NotebookLM | **50MB PDFs, 1000 pages** |277| Retention | Permanent | 48 hours |278| Setup | Auth + cookies | **Just API key** |279280### New Tools281282#### `upload_document` — Fast Document Upload283284Upload any document to Gemini for instant querying:285286```287Upload /path/to/research-paper.pdf288```289290- **Supported**: PDF (50MB, 1000 pages), TXT, MD, HTML, CSV, JSON, DOCX, images, audio, video291- **48-hour retention** — files auto-expire, or delete manually292- Returns a file ID for querying293294#### `query_document` — Ask Questions About Documents295296```297"What are the main findings in this research paper?"298"Summarize section 3 of the document"299"Extract all statistics mentioned in the PDF"300```301302- Full document understanding (text, tables, charts, diagrams)303- Multi-document queries (compare multiple files)304- Fast API response (no browser wait)305306#### `list_documents` — See All Uploaded Files307308```309List all my uploaded documents310```311312Shows file names, sizes, MIME types, and expiration times.313314#### `delete_document` — Clean Up Sensitive Files315316```317Delete file xyz123318```319320Immediately remove files (don't wait for 48h expiration).321322### Workflow Example323324```3251. upload_document("/research/paper.pdf")326 → Returns: files/abc1233273282. query_document("files/abc123", "What methodology was used?")329 → Returns: "The paper uses a mixed-methods approach combining..."3303313. query_document("files/abc123", "List all cited authors")332 → Returns: "Smith et al. (2024), Johnson (2023)..."3333344. delete_document("files/abc123")335 → File removed336```337338### Auto-Chunking for Large PDFs (v1.10.0)339340**No file size limits** — PDFs of any size are automatically handled.341342When you upload a PDF that exceeds Gemini's limits (50MB or 1000 pages), the system automatically:3433441. **Detects** the oversized PDF3452. **Splits** it into optimal chunks (500 pages each)3463. **Uploads** all chunks in parallel3474. **Returns** chunk metadata for querying348349```350upload_document("/research/massive-2000-page-report.pdf")351352→ Returns:353{354 "wasChunked": true,355 "totalPages": 2000,356 "chunks": [357 { "fileName": "files/abc1", "pageStart": 1, "pageEnd": 500 },358 { "fileName": "files/abc2", "pageStart": 501, "pageEnd": 1000 },359 { "fileName": "files/abc3", "pageStart": 1001, "pageEnd": 1500 },360 { "fileName": "files/abc4", "pageStart": 1501, "pageEnd": 2000 }361 ],362 "allFileNames": ["files/abc1", "files/abc2", "files/abc3", "files/abc4"]363}364```365366#### `query_chunked_document` — Query All Chunks at Once367368For chunked documents, use this tool to query all parts and get an aggregated answer:369370```371query_chunked_document(372 file_names: ["files/abc1", "files/abc2", "files/abc3", "files/abc4"],373 query: "What are the key recommendations in this report?"374)375376→ Queries each chunk, then synthesizes a unified answer377```378379### When to Use Document API vs NotebookLM380381| Scenario | Use |382|----------|-----|383| Quick one-off document analysis | **Document API** — fast, no setup |384| Building a permanent knowledge base | **NotebookLM** — permanent storage |385| Analyzing sensitive documents | **Document API** — 48h auto-delete |386| Multi-source research over time | **NotebookLM** — organized notebooks |387| CI/CD pipeline document processing | **Document API** — API-native |388| **Large PDFs (1000+ pages)** | **Document API** — auto-chunking |389390---391392## Programmatic Notebook Creation (v1.7.0+)393394**Create NotebookLM notebooks entirely from code — no manual clicks required.**395396Most MCP servers can only *read* from NotebookLM. This one can **create notebooks, add sources, and generate audio** — all programmatically.397398### `create_notebook` — Build Notebooks Instantly399400Create a complete notebook with multiple sources in one command:401402```json403{404 "name": "Security Research 2025",405 "sources": [406 { "type": "url", "value": "https://owasp.org/Top10" },407 { "type": "file", "value": "/path/to/security-report.pdf" },408 { "type": "text", "value": "Custom analysis notes...", "title": "My Notes" }409 ],410 "description": "OWASP security best practices",411 "topics": ["security", "owasp", "vulnerabilities"]412}413```414415**Supported source types:**416- **URL** — Web pages, documentation, articles417- **File** — PDF, DOCX, TXT, and more418- **Text** — Raw text, code snippets, notes419420### `batch_create_notebooks` — Scale Up421422Create **up to 10 notebooks** in a single operation:423424```json425{426 "notebooks": [427 { "name": "React Docs", "sources": [{ "type": "url", "value": "https://react.dev/reference" }] },428 { "name": "Node.js API", "sources": [{ "type": "url", "value": "https://nodejs.org/api/" }] },429 { "name": "TypeScript Handbook", "sources": [{ "type": "url", "value": "https://www.typescriptlang.org/docs/" }] }430 ]431}432```433434Perfect for:435- Setting up project documentation libraries436- Onboarding new team members with curated knowledge bases437- Creating topic-specific research notebooks in bulk438439### `manage_sources` — Dynamic Source Management440441Add or remove sources from existing notebooks:442443```json444{445 "notebook_id": "abc123",446 "action": "add",447 "sources": [{ "type": "url", "value": "https://new-documentation.com" }]448}449```450451### `generate_audio` — Audio Overview Creation452453Generate NotebookLM's famous "Audio Overview" podcasts programmatically:454455```456"Generate an audio overview for my Security Research notebook"457```458459### `sync_notebook` — Keep Sources Updated460461Sync notebook sources from a local directory:462463```json464{465 "notebook_id": "abc123",466 "directory": "/path/to/docs",467 "patterns": ["*.md", "*.pdf"]468}469```470471### Why This Matters472473| Traditional Workflow | With This MCP |474|---------------------|---------------|475| Manually create notebook in browser | `create_notebook` → done |476| Click "Add source" for each document | Batch add in single command |477| Navigate UI to generate audio | `generate_audio` → podcast ready |478| Update sources by hand | `sync_notebook` from local files |479480**Your agent can now build entire knowledge bases autonomously.**481482---483484## 🎬 Video Overviews & Data Tables (v2026.2.0)485486**Generate AI-powered visual summaries and extract structured data from any notebook — all programmatically.**487488NotebookLM's Studio panel now offers Video Overviews and Data Tables alongside Audio Overviews. This release brings full automation for both.489490### `generate_video_overview` — AI Video Summaries491492Generate visual video overviews of your notebook content with **10 visual styles**:493494| Style | Description |495|-------|-------------|496| `auto-select` | Let NotebookLM choose the best style (default) |497| `classic` | Clean presentation style |498| `whiteboard` | Hand-drawn whiteboard aesthetic |499| `kawaii` | Cute illustrated style |500| `anime` | Anime-inspired visuals |501| `watercolour` | Watercolour painting style |502| `retro-print` | Retro print aesthetic |503| `heritage` | Traditional heritage style |504| `paper-craft` | Paper-craft visual style |505| `custom` | Custom visual style |506507**Two formats:**508- **Explainer** — Full explanation (5-15 min)509- **Brief** — Quick summary (1-3 min)510511```512"Generate a kawaii-style brief video overview for my Security Research notebook"513```514515### `get_video_status` — Check Generation Progress516517Video generation takes 3-10 minutes. Check progress:518519```520"Check video status for my Security Research notebook"521→ { "status": "generating", "progress": 0 }522→ { "status": "ready" }523```524525### `generate_data_table` — Structured Data Extraction526527Generate a structured table from your notebook sources. NotebookLM extracts key information into rows and columns:528529```530"Generate a data table for my research notebook"531```532533### `get_data_table` — Extract Table as JSON534535Extract the generated table as structured JSON for processing:536537```538"Get the data table from my research notebook"539→ {540 "headers": ["Title", "Year", "Key Finding", "Methodology", ...],541 "rows": [["Paper A", "2025", "Finding X", "Survey", ...], ...],542 "totalRows": 27,543 "totalColumns": 7544 }545```546547### When to Use Which Studio Feature548549| Task | Best Tool | Why |550|------|-----------|-----|551| Podcast-style audio summary | `generate_audio_overview` | Shareable audio content |552| Visual presentation of research | `generate_video_overview` | Engaging video summary |553| Structured data for analysis | `generate_data_table` + `get_data_table` | Machine-readable JSON |554| Quick status check | `get_audio_status` / `get_video_status` | Non-blocking progress |555556---557558## 📊 Query History & Chat Extraction (v2026.1.0)559560**Track your research and recover conversations from NotebookLM notebooks.**561562### `get_query_history` — Review Past Research (v1.10.8)563564All queries made through the MCP are automatically logged for review:565566```567"Show me my recent NotebookLM queries"568"Find queries about security from last week"569"What did I ask the fine-tuning notebook?"570```571572- **Automatic logging** — every Q&A pair saved with metadata573- **Search** — find specific topics across all queries574- **Filter** — by notebook, session, or date575- **Quota tracking** — see query counts and timing576577### `get_notebook_chat_history` — Extract Browser Conversations (v2026.1.0)578579Extract conversation history directly from a NotebookLM notebook's chat UI with **context management** to avoid overwhelming your AI context window:580581**Quick audit (preview mode):**582```json583{ "notebook_id": "my-research", "preview_only": true }584```585Returns message counts without content — test the water before extracting.586587**Export to file (avoids context overflow):**588```json589{ "notebook_id": "my-research", "output_file": "/tmp/chat-history.json" }590```591Dumps full history to disk instead of returning to context.592593**Paginate through history:**594```json595{ "notebook_id": "my-research", "limit": 20, "offset": 0 }596{ "notebook_id": "my-research", "limit": 20, "offset": 20 }597```598Page through large histories without loading everything at once.599600**Returns:**601```json602{603 "notebook_url": "https://notebooklm.google.com/notebook/xxx",604 "notebook_name": "My Research",605 "total_messages": 150,606 "returned_messages": 40,607 "user_messages": 75,608 "assistant_messages": 75,609 "offset": 0,610 "has_more": true,611 "messages": [...]612}613```614615**Use cases:**616- **Recover conversations** made directly in the NotebookLM browser (not tracked by MCP)617- **Audit research** — see what queries were made in a notebook618- **Resume context** — pick up where a previous session left off619- **Quota reconciliation** — understand why quota seems off620621---622623## Why This Fork?624625The original NotebookLM MCP is excellent for productivity — but MCP servers handle sensitive data:626- **Browser sessions** with Google authentication627- **Cookies and tokens** stored on disk628- **Query history** that may contain proprietary information629630This fork adds **14 security hardening layers** to protect that data.631632---633634## Security Features635636| Layer | Feature | Protection |637|-------|---------|------------|638| 🔐 | **Post-Quantum Encryption** | ML-KEM-768 + ChaCha20-Poly1305 hybrid |639| 🔍 | **Secrets Scanning** | Detects 30+ credential patterns (AWS, GitHub, Slack...) |640| 📌 | **Certificate Pinning** | Blocks MITM attacks on Google connections |641| 🧹 | **Memory Scrubbing** | Zeros sensitive data after use |642| 📝 | **Audit Logging** | Tamper-evident logs with hash chains |643| ⏱️ | **Session Timeout** | 8h hard limit + 30m inactivity auto-logout |644| 🎫 | **MCP Authentication** | Token-based auth with brute-force lockout |645| 🛡️ | **Response Validation** | Detects prompt injection attempts |646| ✅ | **Input Validation** | URL whitelisting, sanitization |647| 🚦 | **Rate Limiting** | Per-session request throttling |648| 🙈 | **Log Sanitization** | Credentials masked in all output |649| 🐍 | **MEDUSA Integration** | Automated security scanning |650| 🖥️ | **Cross-Platform** | Native support for Linux, macOS, Windows |651652### Post-Quantum Ready653654Traditional encryption (RSA, ECDH) will be broken by quantum computers. This fork uses **hybrid encryption**:655656```657ML-KEM-768 (Kyber) + ChaCha20-Poly1305658```659660- **ML-KEM-768**: NIST-standardized post-quantum key encapsulation661- **ChaCha20-Poly1305**: Modern stream cipher (immune to timing attacks)662663Even if one algorithm is broken, the other remains secure.664665### Cross-Platform Support666667Full native support for all major operating systems:668669| Platform | File Permissions | Data Directory |670|----------|-----------------|----------------|671| **Linux** | Unix chmod (0o600/0o700) | `~/.local/share/notebooklm-mcp/` |672| **macOS** | Unix chmod (0o600/0o700) | `~/Library/Application Support/notebooklm-mcp/` |673| **Windows** | ACLs via icacls (current user only) | `%LOCALAPPDATA%\notebooklm-mcp\` |674675All sensitive files (encryption keys, auth tokens, audit logs) are automatically protected with owner-only permissions on every platform.676677### Enterprise Compliance (v1.6.0+)678679Full compliance support for regulated industries:680681| Regulation | Features |682|------------|----------|683| **GDPR** | Consent management, DSAR handling, right to erasure, data portability |684| **SOC2 Type II** | Hash-chained audit logs, incident response, availability monitoring |685| **CSSF** | 7-year retention, SIEM integration, policy documentation |686687#### Compliance Tools (16 MCP tools)688```689compliance_dashboard - Real-time compliance status690compliance_report - Generate audit reports (JSON/CSV/HTML)691compliance_evidence - Collect evidence packages692grant_consent - Record user consent693submit_dsar - Handle data subject requests694request_erasure - Right to be forgotten695export_user_data - Data portability export696create_incident - Security incident management697...and 8 more698```699700See [COMPLIANCE-SPEC.md](./docs/COMPLIANCE-SPEC.md) for full documentation.701702---703704## Installation705706### What Works Out of the Box (No API Key)707708All core NotebookLM features work immediately with just browser authentication:709710| Feature | Tool | Description |711|---------|------|-------------|712| 🔍 Query notebooks | `ask_question` | Get source-grounded answers from your documents |713| 📚 Manage library | `add_notebook`, `list_notebooks`, etc. | Organize your notebook collection |714| 🎙️ Audio overviews | `generate_audio_overview` | Create podcast-style summaries |715| 🎬 Video overviews | `generate_video_overview` | AI video summaries with 10 visual styles **NEW** |716| 📊 Data tables | `generate_data_table`, `get_data_table` | Structured data extraction as JSON **NEW** |717| 📝 Create notebooks | `create_notebook` | Programmatically create new notebooks |718| 🔄 Session management | `list_sessions`, `reset_session` | Manage conversation context |719| 📊 Chat history | `get_notebook_chat_history` | Extract past conversations |720| ❤️ Health checks | `get_health` | Verify authentication status |721722**Optional:** Add `GEMINI_API_KEY` for bonus features like `deep_research`, `gemini_query`, and `upload_document`.723724---725726### Claude Code727```bash728claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest729```730731### With Authentication + Gemini (Recommended)732```bash733claude mcp add notebooklm \734 --env NLMCP_AUTH_ENABLED=true \735 --env NLMCP_AUTH_TOKEN=$(openssl rand -base64 32) \736 --env GEMINI_API_KEY=your-gemini-api-key \737 -- npx @pan-sec/notebooklm-mcp@latest738```739740### Codex741```bash742codex mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest743```744745<details>746<summary>Cursor</summary>747748Add to `~/.cursor/mcp.json`:749```json750{751 "mcpServers": {752 "notebooklm": {753 "command": "npx",754 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],755 "env": {756 "NLMCP_AUTH_ENABLED": "true",757 "NLMCP_AUTH_TOKEN": "your-secure-token",758 "GEMINI_API_KEY": "your-gemini-api-key"759 }760 }761 }762}763```764</details>765766<details>767<summary>Google Antigravity</summary>768769Add to `~/.gemini/antigravity/mcp_config.json` (macOS/Linux) or `%USERPROFILE%\.gemini\antigravity\mcp_config.json` (Windows):770```json771{772 "mcpServers": {773 "notebooklm": {774 "command": "npx",775 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"]776 }777 }778}779```780781With optional env vars:782```json783{784 "mcpServers": {785 "notebooklm": {786 "command": "npx",787 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],788 "env": {789 "GEMINI_API_KEY": "your-gemini-api-key"790 }791 }792 }793}794```795796> **Note:** Antigravity does NOT support `${workspaceFolder}` variables. Use absolute paths.797</details>798799<details>800<summary>OpenCode</summary>801802Add to `~/.config/opencode/opencode.json` (global) or `opencode.json` in project root:803```json804{805 "$schema": "https://opencode.ai/config.json",806 "mcp": {807 "notebooklm": {808 "type": "local",809 "command": ["npx", "-y", "@pan-sec/notebooklm-mcp@latest"],810 "enabled": true,811 "environment": {812 "GEMINI_API_KEY": "your-gemini-api-key"813 }814 }815 }816}817```818819> **Note:** OpenCode uses `"mcp"` (not `"mcpServers"`) and `"command"` is an array.820</details>821822<details>823<summary>Windsurf</summary>824825Add to `~/.codeium/windsurf/mcp_config.json`:826```json827{828 "mcpServers": {829 "notebooklm": {830 "command": "npx",831 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],832 "env": {833 "GEMINI_API_KEY": "your-gemini-api-key"834 }835 }836 }837}838```839</details>840841<details>842<summary>VS Code + Copilot</summary>843844Add to your VS Code `settings.json`:845```json846{847 "mcp": {848 "servers": {849 "notebooklm": {850 "command": "npx",851 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],852 "env": {853 "GEMINI_API_KEY": "your-gemini-api-key"854 }855 }856 }857 }858}859```860</details>861862<details>863<summary>Other MCP Clients</summary>864865Most MCP clients use this standard format:866```json867{868 "mcpServers": {869 "notebooklm": {870 "command": "npx",871 "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],872 "env": {873 "GEMINI_API_KEY": "your-gemini-api-key"874 }875 }876 }877}878```879880**Common config locations:**881| Client | Config File |882|--------|-------------|883| Claude Desktop | `~/.config/claude/claude_desktop_config.json` |884| Cursor | `~/.cursor/mcp.json` |885| Antigravity | `~/.gemini/antigravity/mcp_config.json` |886| OpenCode | `~/.config/opencode/opencode.json` |887| Windsurf | `~/.codeium/windsurf/mcp_config.json` |888</details>889890---891892## Quick Start893894### 1. Install (see above)895896### 2. Authenticate897```898"Log me in to NotebookLM"899```900*Chrome opens → sign in with Google*901902### 3. Add your notebook903Go to [notebooklm.google.com](https://notebooklm.google.com) → Create notebook → Upload docs → Share link904905### 4. Use it906```907"Research [topic] using this NotebookLM: [link]"908```909910### 5. Try Deep Research (NEW!)911```912"Use deep research to investigate [complex topic]"913```914915---916917## Complete Tool Reference918919### Research Tools920| Tool | Description | Backend |921|------|-------------|---------|922| `ask_question` | Query your NotebookLM notebooks | Browser |923| `deep_research` | Comprehensive research with citations | Gemini API |924| `gemini_query` | Fast queries with grounding tools | Gemini API |925| `get_research_status` | Check background research progress | Gemini API |926927### Notebook Management928| Tool | Description |929|------|-------------|930| `add_notebook` | Add notebook to library |931| `list_notebooks` | List all notebooks |932| `get_notebook` | Get notebook details |933| `update_notebook` | Update notebook metadata |934| `remove_notebook` | Remove from library |935| `select_notebook` | Set active notebook |936| `search_notebooks` | Search by query |937938### Source Management (v1.7.0+)939| Tool | Description |940|------|-------------|941| `manage_sources` | Add/remove/list sources |942| `generate_audio` | Create Audio Overview |943| `sync_notebook` | Sync sources from local files |944945### Studio Features (v2026.2.0)946| Tool | Description |947|------|-------------|948| `generate_video_overview` | Create AI video overview (10 visual styles, 2 formats) |949| `get_video_status` | Check video generation progress |950| `generate_data_table` | Generate structured data table from sources |951| `get_data_table` | Extract data table as JSON (headers + rows) |952953### Session & System954| Tool | Description |955|------|-------------|956| `list_sessions` | View active sessions |957| `close_session` | Close a session |958| `reset_session` | Reset session chat |959| `get_health` | Server health check (**with deep_check for UI verification**) |960| `get_query_history` | Review past queries with search/filter |961| `get_notebook_chat_history` | Extract browser conversations (pagination, file export) |962| `setup_auth` | Initial authentication |963| `re_auth` | Re-authenticate |964| `cleanup_data` | Deep cleanup utility |965| `get_library_stats` | Library statistics |966| `get_quota` | Check usage limits and remaining quota |967968### Compliance (v1.6.0+)96916 compliance tools for GDPR, SOC2, and CSSF requirements.970971---972973## What Gets Protected974975| Data | Protection |976|------|------------|977| Browser cookies | Post-quantum encrypted at rest |978| Session tokens | Auto-expire + memory scrubbing |979| Query history | Audit logged with tamper detection |980| Google connection | Certificate pinned (MITM blocked) |981| Log output | Credentials auto-redacted |982| API responses | Scanned for leaked secrets |983| Gemini API key | Secure memory handling |984985---986987## Configuration988989All security features are **enabled by default**. Override via environment variables:990991```bash992# Authentication993NLMCP_AUTH_ENABLED=true994NLMCP_AUTH_TOKEN=your-secret-token995996# Gemini API (v1.8.0+)997GEMINI_API_KEY=your-api-key998GEMINI_DEFAULT_MODEL=gemini-3-flash-preview # Default (was gemini-2.5-flash)999GEMINI_DEEP_RESEARCH_ENABLED=true1000GEMINI_TIMEOUT_MS=300001001NOTEBOOKLM_NO_GEMINI=false # Set to true to disable all Gemini tools10021003# Tool Profiles1004NOTEBOOKLM_PROFILE=standard # minimal (5 tools) | standard (33 tools) | full (all 47)1005NOTEBOOKLM_DISABLED_TOOLS= # Comma-separated list of tools to hide10061007# Encryption1008NLMCP_USE_POST_QUANTUM=true1009NLMCP_ENCRYPTION_KEY=base64-32-bytes # Optional custom key10101011# Session Limits1012NLMCP_SESSION_MAX_LIFETIME=28800 # 8 hours1013NLMCP_SESSION_INACTIVITY=1800 # 30 minutes10141015# Secrets Scanning1016NLMCP_SECRETS_SCANNING=true1017NLMCP_SECRETS_BLOCK=false # Block on detection1018NLMCP_SECRETS_REDACT=true # Auto-redact10191020# Certificate Pinning1021NLMCP_CERT_PINNING=true10221023# Audit Logging1024NLMCP_AUDIT_ENABLED=true10251026# Multi-Session Support (v2026.1.2+)1027NOTEBOOK_PROFILE_STRATEGY=isolated # isolated|single|auto1028NOTEBOOK_CLONE_PROFILE=true # Clone auth from base profile1029```10301031### Multi-Session Mode10321033Run multiple Claude Code sessions simultaneously with isolated browser profiles:10341035```bash1036# Add to ~/.bashrc or ~/.zshrc1037export NOTEBOOK_PROFILE_STRATEGY=isolated1038export NOTEBOOK_CLONE_PROFILE=true1039```10401041| Variable | Values | Description |1042|----------|--------|-------------|1043| `NOTEBOOK_PROFILE_STRATEGY` | `single`, `auto`, `isolated` | `isolated` = separate profile per session |1044| `NOTEBOOK_CLONE_PROFILE` | `true`, `false` | Clone authenticated base profile into isolated instances |10451046**How it works:**1047- Each session gets its own Chrome profile (no lock conflicts)1048- Isolated profiles clone from the authenticated base profile1049- Auth coordination ensures cloning waits for any in-progress authentication10501051See [SECURITY.md](./SECURITY.md) for complete configuration reference.10521053---10541055## Security Scanning10561057Run MEDUSA security scanner:10581059```bash1060npm run security-scan1061```10621063Or integrate in CI/CD:10641065```yaml1066- name: Security Scan1067 run: npx @pan-sec/notebooklm-mcp && npm run security-scan1068```10691070---10711072## Comparison10731074### vs Other NotebookLM MCPs10751076| Feature | Others | @pan-sec/notebooklm-mcp |1077|---------|--------|-------------------------|1078| Zero-hallucination Q&A | ✅ | ✅ |1079| Library management | ✅ | ✅ |1080| **Create Notebooks Programmatically** | ❌ | ✅ **EXCLUSIVE** |1081| **Batch Create (10 notebooks)** | ❌ | ✅ **EXCLUSIVE** |1082| **Gemini Deep Research** | ❌ | ✅ **EXCLUSIVE** |1083| **Document API (no browser)** | ❌ | ✅ **EXCLUSIVE** |1084| **Auto-chunking (1000+ page PDFs)** | ❌ | ✅ **EXCLUSIVE** |1085| **Chat History Extraction** | ❌ | ✅ **NEW** |1086| **Deep Health Verification** | ❌ | ✅ **NEW** |1087| **Query History & Search** | ❌ | ✅ |1088| **Quota Management** | ❌ | ✅ |1089| Source Management (add/remove) | ❌ | ✅ |1090| Audio Overview Generation | ❌ | ✅ |1091| **Video Overview Generation (10 styles)** | ❌ | ✅ **NEW** |1092| **Data Table Extraction (JSON)** | ❌ | ✅ **NEW** |1093| **Gemini 3 + Thinking Control** | ❌ | ✅ **NEW** |1094| **Structured JSON Output** | ❌ | ✅ **NEW** |1095| Sync from Local Directories | ❌ | ✅ |10961097### Security & Compliance (Unique to This Fork)10981099| Feature | Others | @pan-sec/notebooklm-mcp |1100|---------|--------|-------------------------|1101| Cross-platform (Linux/macOS/Windows) | ⚠️ Partial | ✅ Full |1102| **Post-quantum encryption** | ❌ | ✅ ML-KEM-768 + ChaCha20 |1103| **Secrets scanning** | ❌ | ✅ 30+ patterns |1104| **Certificate pinning** | ❌ | ✅ Google MITM protection |1105| **Memory scrubbing** | ❌ | ✅ Zero-on-free |1106| **Audit logging** | ❌ | ✅ Hash-chained |1107| **MCP authentication** | ❌ | ✅ Token + lockout |1108| **Prompt injection detection** | ❌ | ✅ Response validation |1109| **GDPR Compliance** | ❌ | ✅ Full |1110| **SOC2 Type II** | ❌ | ✅ Full |1111| **CSSF (Luxembourg)** | ❌ | ✅ Full |11121113> **Bottom line**: If you need more than basic queries, or care about security, there's only one choice.11141115---11161117## Version History11181119| Version | Highlights |1120|---------|------------|1121| **v2026.2.1** | 🔧 Standard profile expanded: 14 → 33 tools — all key features now visible by default |1122| **v2026.2.0** | 🚀 Gemini 3 models (2.5 retiring March 31), Video Overviews (10 styles), Data Table extraction (JSON), thinking level control, structured JSON output, SDK 1.41 |1123| **v2026.1.12** | 🔒 Security hardening — timing attack fix, command injection fix, 6 memory leak fixes, MCP SDK 1.26.0 |1124| **v2026.1.11** | 🔄 Notebook sync extraction for Angular UI, `NOTEBOOKLM_NO_GEMINI` env var |1125| **v2026.1.10** | 📝 Tool descriptions clarified for multi-LLM compatibility (OpenCode fix) |1126| **v2026.1.9** | 📄 Documentation & UX improvements, npm audit fix |1127| **v2026.1.8** | 📦 Major dependency updates (zod 4.x, dotenv 17.x, post-quantum 0.5.4) |1128| **v2026.1.7** | 🎨 MCP Protocol UX — tool icons, titles, behavior annotations |1129| **v2026.1.4** | 🛡️ Defense-in-depth path validation, security hardening |1130| **v2026.1.2** | 🔗 Multi-session auth coordination — lock system for concurrent sessions |1131| **v2026.1.1** | 🔍 Deep health check — verifies NotebookLM chat UI actually loads |1132| **v2026.1.0** | 📊 Chat history extraction with context management, CalVer versioning |1133| **v1.10.8** | Query history logging, quota tracking |1134| **v1.10.0** | Auto-chunking for large PDFs (1000+ pages) |1135| **v1.9.0** | Document API: upload, query, delete via Gemini Files API |1136| **v1.8.0** | Gemini Deep Research, Query with Grounding, Background Tasks |1137| **v1.7.0** | Programmatic notebook creation, batch operations, audio generation |1138| **v1.6.0** | Enterprise compliance: GDPR, SOC2 Type II, CSSF |1139| **v1.5.0** | Cross-platform support (Windows ACLs, macOS, Linux) |1140| **v1.4.0** | Post-quantum encryption, secrets scanning |11411142---11431144## Reporting Vulnerabilities11451146Found a security issue? **Do not open a public GitHub issue.**11471148Email: support@pantheonsecurity.io11491150---11511152## Credits11531154- **Original MCP Server**: [Gérôme Dexheimer](https://github.com/PleasePrompto) — [notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)1155- **Security Hardening**: [Pantheon Security](https://pantheonsecurity.io)1156- **Post-Quantum Crypto**: [@noble/post-quantum](https://www.npmjs.com/package/@noble/post-quantum)1157- **Gemini API**: [Google AI](https://ai.google.dev/)11581159## License11601161MIT — Same as original.11621163---11641165<div align="center">11661167**Security hardened with 🔒 by [Pantheon Security](https://pantheonsecurity.io)**11681169**Powered by Google Gemini 3 🚀**11701171[Full Security Documentation](./SECURITY.md) • [Compliance Guide](./docs/COMPLIANCE-SPEC.md) • [Report Vulnerability](mailto:support@pantheonsecurity.io)11721173</div>1174
Full transparency — inspect the skill content before installing.