@pan-sec/notebooklm-mcp 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NotebookLM MCP Server (Security Hardened)
4
4
 
5
- **Zero-hallucination answers from NotebookLM — now with enterprise-grade security**
5
+ **Zero-hallucination answers from NotebookLM + Gemini Deep Research — with enterprise-grade security**
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/@pan-sec/notebooklm-mcp?color=blue)](https://www.npmjs.com/package/@pan-sec/notebooklm-mcp)
8
8
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/)
@@ -10,18 +10,351 @@
10
10
  [![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg)](#cross-platform-support)
11
11
  [![Security](https://img.shields.io/badge/Security-14%20Layers-red.svg)](./SECURITY.md)
12
12
  [![Post-Quantum](https://img.shields.io/badge/Encryption-Post--Quantum-purple.svg)](./SECURITY.md#post-quantum-encryption)
13
+ [![Gemini](https://img.shields.io/badge/Gemini-Deep%20Research-4285F4.svg)](#-gemini-deep-research-v180)
14
+ [![Documents](https://img.shields.io/badge/Documents-API%20Upload-34A853.svg)](#-document-api-v190)
15
+ [![Notebooks](https://img.shields.io/badge/Notebooks-Create%20%26%20Manage-orange.svg)](#programmatic-notebook-creation-v170)
13
16
  [![Compliance](https://img.shields.io/badge/Compliance-GDPR%20%7C%20SOC2%20%7C%20CSSF-blue.svg)](./docs/COMPLIANCE-SPEC.md)
14
17
  [![Tests](https://img.shields.io/badge/Tests-111%20Passing-brightgreen.svg)](./tests/)
15
18
 
16
- [Security Features](#security-features) • [Compliance](#enterprise-compliance-v160) • [Installation](#installation) • [Quick Start](#quick-start) • [Why This Fork?](#why-this-fork) • [Documentation](./SECURITY.md)
19
+ [**Gemini Deep Research**](#-gemini-deep-research-v180) • [**Document API**](#-document-api-v190) • [**Notebook Creation**](#programmatic-notebook-creation-v170) • [Security](#security-features) • [Install](#installation)
17
20
 
18
21
  </div>
19
22
 
20
- > 🔒 **Security-hardened fork** of [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
23
+ > **Security-hardened fork** of [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
21
24
  > Maintained by [Pantheon Security](https://pantheonsecurity.io)
22
25
 
23
26
  ---
24
27
 
28
+ ## Gemini Deep Research (v1.8.0)
29
+
30
+ **The most powerful research capability for AI agents — now in your MCP toolkit.**
31
+
32
+ v1.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.
33
+
34
+ ### Why This Matters
35
+
36
+ | Challenge | Solution |
37
+ |-----------|----------|
38
+ | Browser UI changes break automation | **Gemini API is stable and versioned** |
39
+ | Need comprehensive research but no research agent | **Deep Research agent does it for you** |
40
+ | Want current information with citations | **Google Search grounding built-in** |
41
+ | Need reliable, fast queries | **API-based = no UI dependencies** |
42
+
43
+ ### New Tools
44
+
45
+ #### `deep_research` — Comprehensive Research Agent
46
+
47
+ ```
48
+ "Research the security implications of post-quantum cryptography adoption in financial services"
49
+ ```
50
+
51
+ - Runs Google's **Deep Research agent** (same as Gemini Advanced)
52
+ - Takes 1-5 minutes for comprehensive, web-grounded analysis
53
+ - Returns structured answers with **citations and sources**
54
+ - Perfect for complex topics requiring multi-source synthesis
55
+
56
+ #### `gemini_query` — Fast Grounded Queries
57
+
58
+ ```
59
+ "What are the latest CVEs for Log4j in 2025?" (with Google Search)
60
+ "Calculate the compound interest on $10,000 at 5% over 10 years" (with code execution)
61
+ "Summarize this security advisory: [URL]" (with URL context)
62
+ ```
63
+
64
+ - **Google Search grounding** — Current information, not just training data
65
+ - **Code execution** — Run calculations, data analysis
66
+ - **URL context** — Analyze web pages on demand
67
+ - Models: `gemini-2.5-flash` (fast), `gemini-2.5-pro` (powerful), `gemini-3-flash-preview` (latest)
68
+
69
+ #### `get_research_status` — Background Task Monitoring
70
+
71
+ Run deep research in the background and check progress:
72
+ ```
73
+ "Start researching [topic] in the background"
74
+ ... continue other work ...
75
+ "Check research status for interaction_abc123"
76
+ ```
77
+
78
+ ### Hybrid Architecture
79
+
80
+ ```
81
+ ┌──────────────────────────────────────────────────────────────────────────────┐
82
+ │ NotebookLM MCP Server v1.9.0 │
83
+ ├──────────────────────────────────────────────────────────────────────────────┤
84
+ │ │
85
+ │ ┌────────────────────────────────┐ ┌──────────────────────────────────┐ │
86
+ │ │ BROWSER AUTOMATION │ │ GEMINI API │ │
87
+ │ │ (Your Documents) │ │ (Research & Documents) │ │
88
+ │ ├────────────────────────────────┤ ├──────────────────────────────────┤ │
89
+ │ │ │ │ │ │
90
+ │ │ QUERY │ │ RESEARCH v1.8 │ │
91
+ │ │ • ask_question │ │ • deep_research │ │
92
+ │ │ │ │ • gemini_query │ │
93
+ │ │ CREATE & MANAGE v1.7 │ │ • get_research_status │ │
94
+ │ │ • create_notebook │ │ │ │
95
+ │ │ • batch_create_notebooks │ │ DOCUMENTS (NEW!) v1.9 │ │
96
+ │ │ • manage_sources │ │ • upload_document │ │
97
+ │ │ • generate_audio │ │ • query_document │ │
98
+ │ │ • sync_notebook │ │ • list_documents │ │
99
+ │ │ │ │ • delete_document │ │
100
+ │ │ Grounded on YOUR docs │ │ │ │
101
+ │ │ Permanent storage │ │ Fast API • 48h retention │ │
102
+ │ └────────────────────────────────┘ └──────────────────────────────────┘ │
103
+ │ │
104
+ │ ┌─────────────────────────────────┐ │
105
+ │ │ 14 SECURITY LAYERS │ │
106
+ │ │ Post-Quantum • Audit Logs │ │
107
+ │ │ Cert Pinning • Memory Wipe │ │
108
+ │ │ GDPR • SOC2 • CSSF Ready │ │
109
+ │ └─────────────────────────────────┘ │
110
+ └──────────────────────────────────────────────────────────────────────────────┘
111
+ ```
112
+
113
+ ### Gemini Configuration
114
+
115
+ ```bash
116
+ # Required for Gemini features
117
+ GEMINI_API_KEY=your-api-key # Get from https://aistudio.google.com/apikey
118
+
119
+ # Optional settings
120
+ GEMINI_DEFAULT_MODEL=gemini-2.5-flash # Default model
121
+ GEMINI_DEEP_RESEARCH_ENABLED=true # Enable Deep Research
122
+ GEMINI_TIMEOUT_MS=30000 # API timeout
123
+ ```
124
+
125
+ ### When to Use Which
126
+
127
+ | Task | Best Tool | Why |
128
+ |------|-----------|-----|
129
+ | Questions about YOUR documents | `ask_question` | Grounded on your uploaded sources |
130
+ | Comprehensive topic research | `deep_research` | Multi-source synthesis with citations |
131
+ | Current events / recent info | `gemini_query` + google_search | Live web data |
132
+ | Code calculations | `gemini_query` + code_execution | Reliable computation |
133
+ | Analyze a webpage | `gemini_query` + url_context | Direct page analysis |
134
+ | **Quick PDF/document analysis** | `upload_document` + `query_document` | **Fast API, no browser** (NEW!) |
135
+
136
+ ---
137
+
138
+ ## 📄 Document API (v1.9.0)
139
+
140
+ **Upload and query documents directly via Gemini API — no browser automation needed.**
141
+
142
+ v1.9.0 introduces the **Gemini Files API** for fast, reliable document analysis. Upload PDFs, analyze them instantly, and delete when done.
143
+
144
+ ### Why This Matters
145
+
146
+ | Feature | Browser Mode | Document API |
147
+ |---------|--------------|--------------|
148
+ | Speed | Seconds | **Milliseconds** |
149
+ | Reliability | UI-dependent | **API-stable** |
150
+ | File Support | Via NotebookLM | **50MB PDFs, 1000 pages** |
151
+ | Retention | Permanent | 48 hours |
152
+ | Setup | Auth + cookies | **Just API key** |
153
+
154
+ ### New Tools
155
+
156
+ #### `upload_document` — Fast Document Upload
157
+
158
+ Upload any document to Gemini for instant querying:
159
+
160
+ ```
161
+ Upload /path/to/research-paper.pdf
162
+ ```
163
+
164
+ - **Supported**: PDF (50MB, 1000 pages), TXT, MD, HTML, CSV, JSON, DOCX, images, audio, video
165
+ - **48-hour retention** — files auto-expire, or delete manually
166
+ - Returns a file ID for querying
167
+
168
+ #### `query_document` — Ask Questions About Documents
169
+
170
+ ```
171
+ "What are the main findings in this research paper?"
172
+ "Summarize section 3 of the document"
173
+ "Extract all statistics mentioned in the PDF"
174
+ ```
175
+
176
+ - Full document understanding (text, tables, charts, diagrams)
177
+ - Multi-document queries (compare multiple files)
178
+ - Fast API response (no browser wait)
179
+
180
+ #### `list_documents` — See All Uploaded Files
181
+
182
+ ```
183
+ List all my uploaded documents
184
+ ```
185
+
186
+ Shows file names, sizes, MIME types, and expiration times.
187
+
188
+ #### `delete_document` — Clean Up Sensitive Files
189
+
190
+ ```
191
+ Delete file xyz123
192
+ ```
193
+
194
+ Immediately remove files (don't wait for 48h expiration).
195
+
196
+ ### Workflow Example
197
+
198
+ ```
199
+ 1. upload_document("/research/paper.pdf")
200
+ → Returns: files/abc123
201
+
202
+ 2. query_document("files/abc123", "What methodology was used?")
203
+ → Returns: "The paper uses a mixed-methods approach combining..."
204
+
205
+ 3. query_document("files/abc123", "List all cited authors")
206
+ → Returns: "Smith et al. (2024), Johnson (2023)..."
207
+
208
+ 4. delete_document("files/abc123")
209
+ → File removed
210
+ ```
211
+
212
+ ### Auto-Chunking for Large PDFs (v1.10.0)
213
+
214
+ **No file size limits** — PDFs of any size are automatically handled.
215
+
216
+ When you upload a PDF that exceeds Gemini's limits (50MB or 1000 pages), the system automatically:
217
+
218
+ 1. **Detects** the oversized PDF
219
+ 2. **Splits** it into optimal chunks (500 pages each)
220
+ 3. **Uploads** all chunks in parallel
221
+ 4. **Returns** chunk metadata for querying
222
+
223
+ ```
224
+ upload_document("/research/massive-2000-page-report.pdf")
225
+
226
+ → Returns:
227
+ {
228
+ "wasChunked": true,
229
+ "totalPages": 2000,
230
+ "chunks": [
231
+ { "fileName": "files/abc1", "pageStart": 1, "pageEnd": 500 },
232
+ { "fileName": "files/abc2", "pageStart": 501, "pageEnd": 1000 },
233
+ { "fileName": "files/abc3", "pageStart": 1001, "pageEnd": 1500 },
234
+ { "fileName": "files/abc4", "pageStart": 1501, "pageEnd": 2000 }
235
+ ],
236
+ "allFileNames": ["files/abc1", "files/abc2", "files/abc3", "files/abc4"]
237
+ }
238
+ ```
239
+
240
+ #### `query_chunked_document` — Query All Chunks at Once
241
+
242
+ For chunked documents, use this tool to query all parts and get an aggregated answer:
243
+
244
+ ```
245
+ query_chunked_document(
246
+ file_names: ["files/abc1", "files/abc2", "files/abc3", "files/abc4"],
247
+ query: "What are the key recommendations in this report?"
248
+ )
249
+
250
+ → Queries each chunk, then synthesizes a unified answer
251
+ ```
252
+
253
+ ### When to Use Document API vs NotebookLM
254
+
255
+ | Scenario | Use |
256
+ |----------|-----|
257
+ | Quick one-off document analysis | **Document API** — fast, no setup |
258
+ | Building a permanent knowledge base | **NotebookLM** — permanent storage |
259
+ | Analyzing sensitive documents | **Document API** — 48h auto-delete |
260
+ | Multi-source research over time | **NotebookLM** — organized notebooks |
261
+ | CI/CD pipeline document processing | **Document API** — API-native |
262
+ | **Large PDFs (1000+ pages)** | **Document API** — auto-chunking |
263
+
264
+ ---
265
+
266
+ ## Programmatic Notebook Creation (v1.7.0+)
267
+
268
+ **Create NotebookLM notebooks entirely from code — no manual clicks required.**
269
+
270
+ Most MCP servers can only *read* from NotebookLM. This one can **create notebooks, add sources, and generate audio** — all programmatically.
271
+
272
+ ### `create_notebook` — Build Notebooks Instantly
273
+
274
+ Create a complete notebook with multiple sources in one command:
275
+
276
+ ```json
277
+ {
278
+ "name": "Security Research 2025",
279
+ "sources": [
280
+ { "type": "url", "value": "https://owasp.org/Top10" },
281
+ { "type": "file", "value": "/path/to/security-report.pdf" },
282
+ { "type": "text", "value": "Custom analysis notes...", "title": "My Notes" }
283
+ ],
284
+ "description": "OWASP security best practices",
285
+ "topics": ["security", "owasp", "vulnerabilities"]
286
+ }
287
+ ```
288
+
289
+ **Supported source types:**
290
+ - **URL** — Web pages, documentation, articles
291
+ - **File** — PDF, DOCX, TXT, and more
292
+ - **Text** — Raw text, code snippets, notes
293
+
294
+ ### `batch_create_notebooks` — Scale Up
295
+
296
+ Create **up to 10 notebooks** in a single operation:
297
+
298
+ ```json
299
+ {
300
+ "notebooks": [
301
+ { "name": "React Docs", "sources": [{ "type": "url", "value": "https://react.dev/reference" }] },
302
+ { "name": "Node.js API", "sources": [{ "type": "url", "value": "https://nodejs.org/api/" }] },
303
+ { "name": "TypeScript Handbook", "sources": [{ "type": "url", "value": "https://www.typescriptlang.org/docs/" }] }
304
+ ]
305
+ }
306
+ ```
307
+
308
+ Perfect for:
309
+ - Setting up project documentation libraries
310
+ - Onboarding new team members with curated knowledge bases
311
+ - Creating topic-specific research notebooks in bulk
312
+
313
+ ### `manage_sources` — Dynamic Source Management
314
+
315
+ Add or remove sources from existing notebooks:
316
+
317
+ ```json
318
+ {
319
+ "notebook_id": "abc123",
320
+ "action": "add",
321
+ "sources": [{ "type": "url", "value": "https://new-documentation.com" }]
322
+ }
323
+ ```
324
+
325
+ ### `generate_audio` — Audio Overview Creation
326
+
327
+ Generate NotebookLM's famous "Audio Overview" podcasts programmatically:
328
+
329
+ ```
330
+ "Generate an audio overview for my Security Research notebook"
331
+ ```
332
+
333
+ ### `sync_notebook` — Keep Sources Updated
334
+
335
+ Sync notebook sources from a local directory:
336
+
337
+ ```json
338
+ {
339
+ "notebook_id": "abc123",
340
+ "directory": "/path/to/docs",
341
+ "patterns": ["*.md", "*.pdf"]
342
+ }
343
+ ```
344
+
345
+ ### Why This Matters
346
+
347
+ | Traditional Workflow | With This MCP |
348
+ |---------------------|---------------|
349
+ | Manually create notebook in browser | `create_notebook` → done |
350
+ | Click "Add source" for each document | Batch add in single command |
351
+ | Navigate UI to generate audio | `generate_audio` → podcast ready |
352
+ | Update sources by hand | `sync_notebook` from local files |
353
+
354
+ **Your agent can now build entire knowledge bases autonomously.**
355
+
356
+ ---
357
+
25
358
  ## Why This Fork?
26
359
 
27
360
  The original NotebookLM MCP is excellent for productivity — but MCP servers handle sensitive data:
@@ -99,18 +432,6 @@ create_incident - Security incident management
99
432
  ...and 8 more
100
433
  ```
101
434
 
102
- #### Compliance Dashboard Example
103
- ```
104
- ═══════════════════════════════════════════════════════════════
105
- COMPLIANCE DASHBOARD - NotebookLM MCP Server
106
- ═══════════════════════════════════════════════════════════════
107
- Generated: 2025-12-18T10:00:00.000Z
108
- Overall Score: 95/100
109
-
110
- GDPR: [COMPLIANT] SOC2: [COMPLIANT] CSSF: [COMPLIANT]
111
- ═══════════════════════════════════════════════════════════════
112
- ```
113
-
114
435
  See [COMPLIANCE-SPEC.md](./docs/COMPLIANCE-SPEC.md) for full documentation.
115
436
 
116
437
  ---
@@ -122,11 +443,12 @@ See [COMPLIANCE-SPEC.md](./docs/COMPLIANCE-SPEC.md) for full documentation.
122
443
  claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest
123
444
  ```
124
445
 
125
- ### With Authentication (Recommended)
446
+ ### With Authentication + Gemini (Recommended)
126
447
  ```bash
127
448
  claude mcp add notebooklm \
128
449
  --env NLMCP_AUTH_ENABLED=true \
129
450
  --env NLMCP_AUTH_TOKEN=$(openssl rand -base64 32) \
451
+ --env GEMINI_API_KEY=your-gemini-api-key \
130
452
  -- npx @pan-sec/notebooklm-mcp@latest
131
453
  ```
132
454
 
@@ -147,7 +469,8 @@ Add to `~/.cursor/mcp.json`:
147
469
  "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],
148
470
  "env": {
149
471
  "NLMCP_AUTH_ENABLED": "true",
150
- "NLMCP_AUTH_TOKEN": "your-secure-token"
472
+ "NLMCP_AUTH_TOKEN": "your-secure-token",
473
+ "GEMINI_API_KEY": "your-gemini-api-key"
151
474
  }
152
475
  }
153
476
  }
@@ -166,7 +489,8 @@ Add to `~/.cursor/mcp.json`:
166
489
  "args": ["-y", "@pan-sec/notebooklm-mcp@latest"],
167
490
  "env": {
168
491
  "NLMCP_AUTH_ENABLED": "true",
169
- "NLMCP_AUTH_TOKEN": "your-secure-token"
492
+ "NLMCP_AUTH_TOKEN": "your-secure-token",
493
+ "GEMINI_API_KEY": "your-gemini-api-key"
170
494
  }
171
495
  }
172
496
  }
@@ -194,6 +518,56 @@ Go to [notebooklm.google.com](https://notebooklm.google.com) → Create notebook
194
518
  "Research [topic] using this NotebookLM: [link]"
195
519
  ```
196
520
 
521
+ ### 5. Try Deep Research (NEW!)
522
+ ```
523
+ "Use deep research to investigate [complex topic]"
524
+ ```
525
+
526
+ ---
527
+
528
+ ## Complete Tool Reference
529
+
530
+ ### Research Tools
531
+ | Tool | Description | Backend |
532
+ |------|-------------|---------|
533
+ | `ask_question` | Query your NotebookLM notebooks | Browser |
534
+ | `deep_research` | Comprehensive research with citations | Gemini API |
535
+ | `gemini_query` | Fast queries with grounding tools | Gemini API |
536
+ | `get_research_status` | Check background research progress | Gemini API |
537
+
538
+ ### Notebook Management
539
+ | Tool | Description |
540
+ |------|-------------|
541
+ | `add_notebook` | Add notebook to library |
542
+ | `list_notebooks` | List all notebooks |
543
+ | `get_notebook` | Get notebook details |
544
+ | `update_notebook` | Update notebook metadata |
545
+ | `remove_notebook` | Remove from library |
546
+ | `select_notebook` | Set active notebook |
547
+ | `search_notebooks` | Search by query |
548
+
549
+ ### Source Management (v1.7.0+)
550
+ | Tool | Description |
551
+ |------|-------------|
552
+ | `manage_sources` | Add/remove/list sources |
553
+ | `generate_audio` | Create Audio Overview |
554
+ | `sync_notebook` | Sync sources from local files |
555
+
556
+ ### Session & System
557
+ | Tool | Description |
558
+ |------|-------------|
559
+ | `list_sessions` | View active sessions |
560
+ | `close_session` | Close a session |
561
+ | `reset_session` | Reset session chat |
562
+ | `get_health` | Server health check |
563
+ | `setup_auth` | Initial authentication |
564
+ | `re_auth` | Re-authenticate |
565
+ | `cleanup_data` | Deep cleanup utility |
566
+ | `get_library_stats` | Library statistics |
567
+
568
+ ### Compliance (v1.6.0+)
569
+ 16 compliance tools for GDPR, SOC2, and CSSF requirements.
570
+
197
571
  ---
198
572
 
199
573
  ## What Gets Protected
@@ -206,6 +580,7 @@ Go to [notebooklm.google.com](https://notebooklm.google.com) → Create notebook
206
580
  | Google connection | Certificate pinned (MITM blocked) |
207
581
  | Log output | Credentials auto-redacted |
208
582
  | API responses | Scanned for leaked secrets |
583
+ | Gemini API key | Secure memory handling |
209
584
 
210
585
  ---
211
586
 
@@ -218,6 +593,12 @@ All security features are **enabled by default**. Override via environment varia
218
593
  NLMCP_AUTH_ENABLED=true
219
594
  NLMCP_AUTH_TOKEN=your-secret-token
220
595
 
596
+ # Gemini API (v1.8.0+)
597
+ GEMINI_API_KEY=your-api-key
598
+ GEMINI_DEFAULT_MODEL=gemini-2.5-flash
599
+ GEMINI_DEEP_RESEARCH_ENABLED=true
600
+ GEMINI_TIMEOUT_MS=30000
601
+
221
602
  # Encryption
222
603
  NLMCP_USE_POST_QUANTUM=true
223
604
  NLMCP_ENCRYPTION_KEY=base64-32-bytes # Optional custom key
@@ -259,43 +640,6 @@ Or integrate in CI/CD:
259
640
 
260
641
  ---
261
642
 
262
- ## How It Works
263
-
264
- ```
265
- ┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
266
- │ Claude/ │────▶│ MCP Server │────▶│ NotebookLM │
267
- │ Codex │ │ (This Fork) │ │ (Google) │
268
- └─────────────┘ └──────────────────┘ └─────────────┘
269
-
270
- ┌──────┴──────┐
271
- │ 14 Security │
272
- │ Layers │
273
- └─────────────┘
274
- • PQ Encryption
275
- • Secrets Scan
276
- • Cert Pinning
277
- • Memory Wipe
278
- • Audit Logs
279
- • Rate Limits
280
- • ...
281
- ```
282
-
283
- Your agent asks questions → Security layers protect the pipeline → NotebookLM answers from your docs.
284
-
285
- ---
286
-
287
- ## Original Features (Preserved)
288
-
289
- All original functionality from [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp):
290
-
291
- - **Zero hallucinations** — NotebookLM only answers from your uploaded docs
292
- - **Autonomous research** — Claude asks follow-up questions automatically
293
- - **Smart library** — Save notebooks with tags, auto-select by context
294
- - **Cross-tool sharing** — Works with Claude Code, Codex, Cursor, etc.
295
- - **Tool profiles** — Minimal, standard, or full tool sets
296
-
297
- ---
298
-
299
643
  ## Comparison
300
644
 
301
645
  | Feature | Original | This Fork |
@@ -303,6 +647,13 @@ All original functionality from [PleasePrompto/notebooklm-mcp](https://github.co
303
647
  | Zero-hallucination Q&A | ✅ | ✅ |
304
648
  | Library management | ✅ | ✅ |
305
649
  | Multi-client support | ✅ | ✅ |
650
+ | **Create Notebooks Programmatically** | ❌ | ✅ **UNIQUE** |
651
+ | **Batch Create (10 notebooks at once)** | ❌ | ✅ **UNIQUE** |
652
+ | **Gemini Deep Research** | ❌ | ✅ **NEW** |
653
+ | **Gemini Query with Grounding** | ❌ | ✅ **NEW** |
654
+ | **Source Management (add/remove)** | ❌ | ✅ |
655
+ | **Audio Overview Generation** | ❌ | ✅ |
656
+ | **Sync from Local Directories** | ❌ | ✅ |
306
657
  | **Cross-platform (Linux/macOS/Windows)** | ⚠️ | ✅ |
307
658
  | **Post-quantum encryption** | ❌ | ✅ |
308
659
  | **Secrets scanning** | ❌ | ✅ |
@@ -311,6 +662,20 @@ All original functionality from [PleasePrompto/notebooklm-mcp](https://github.co
311
662
  | **Audit logging** | ❌ | ✅ |
312
663
  | **MCP authentication** | ❌ | ✅ |
313
664
  | **Prompt injection detection** | ❌ | ✅ |
665
+ | **Enterprise Compliance (GDPR/SOC2/CSSF)** | ❌ | ✅ |
666
+
667
+ ---
668
+
669
+ ## Version History
670
+
671
+ | Version | Highlights |
672
+ |---------|------------|
673
+ | **v1.8.0** | Gemini Interactions API: Deep Research, Query with Grounding, Background Tasks |
674
+ | **v1.7.0** | Source management, batch operations, audio generation, webhooks |
675
+ | **v1.6.0** | Enterprise compliance: GDPR, SOC2 Type II, CSSF |
676
+ | **v1.5.0** | Cross-platform support (Windows ACLs, macOS, Linux) |
677
+ | **v1.4.0** | Post-quantum encryption, secrets scanning |
678
+ | **v1.3.0** | Certificate pinning, audit logging |
314
679
 
315
680
  ---
316
681
 
@@ -327,6 +692,7 @@ Email: support@pantheonsecurity.io
327
692
  - **Original MCP Server**: [Gérôme Dexheimer](https://github.com/PleasePrompto) — [notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
328
693
  - **Security Hardening**: [Pantheon Security](https://pantheonsecurity.io)
329
694
  - **Post-Quantum Crypto**: [@noble/post-quantum](https://www.npmjs.com/package/@noble/post-quantum)
695
+ - **Gemini API**: [Google AI](https://ai.google.dev/)
330
696
 
331
697
  ## License
332
698
 
@@ -338,6 +704,8 @@ MIT — Same as original.
338
704
 
339
705
  **Security hardened with 🔒 by [Pantheon Security](https://pantheonsecurity.io)**
340
706
 
341
- [Full Security Documentation](./SECURITY.md) [Report Vulnerability](mailto:support@pantheonsecurity.io)
707
+ **Powered by Google Gemini 🚀**
708
+
709
+ [Full Security Documentation](./SECURITY.md) • [Compliance Guide](./docs/COMPLIANCE-SPEC.md) • [Report Vulnerability](mailto:support@pantheonsecurity.io)
342
710
 
343
711
  </div>
@@ -5,7 +5,7 @@
5
5
  * via the Interactions API for stable, API-based research capabilities.
6
6
  */
7
7
  import type { ProgressCallback } from "../types.js";
8
- import type { GeminiQueryOptions, GeminiInteraction, DeepResearchOptions } from "./types.js";
8
+ import type { GeminiQueryOptions, GeminiInteraction, DeepResearchOptions, UploadDocumentOptions, QueryDocumentOptions, GeminiFile, UploadDocumentResult, QueryDocumentResult, ListDocumentsResult } from "./types.js";
9
9
  export { DEEP_RESEARCH_AGENT } from "./types.js";
10
10
  /**
11
11
  * Client for Gemini Interactions API
@@ -41,5 +41,59 @@ export declare class GeminiClient {
41
41
  * Map SDK response to our interface
42
42
  */
43
43
  private mapInteraction;
44
+ /**
45
+ * Upload a document to Gemini Files API
46
+ * Files are retained for 48 hours and can be used in multiple queries
47
+ * Large PDFs (>50MB or >1000 pages) are automatically chunked
48
+ */
49
+ uploadDocument(options: UploadDocumentOptions): Promise<UploadDocumentResult>;
50
+ /**
51
+ * Upload a large PDF by splitting it into chunks
52
+ */
53
+ private uploadChunkedPdf;
54
+ /**
55
+ * Wait for file processing to complete
56
+ */
57
+ private waitForFileProcessing;
58
+ /**
59
+ * Get file metadata
60
+ */
61
+ getFile(fileName: string): Promise<GeminiFile>;
62
+ /**
63
+ * List all uploaded files
64
+ */
65
+ listFiles(pageSize?: number, pageToken?: string): Promise<ListDocumentsResult>;
66
+ /**
67
+ * Delete an uploaded file
68
+ */
69
+ deleteFile(fileName: string): Promise<void>;
70
+ /**
71
+ * Query an uploaded document
72
+ */
73
+ queryDocument(options: QueryDocumentOptions): Promise<QueryDocumentResult>;
74
+ /**
75
+ * Query multiple document chunks and aggregate results
76
+ * This is useful for querying large documents that were split into chunks
77
+ */
78
+ queryChunkedDocument(fileNames: string[], query: string, options?: {
79
+ model?: string;
80
+ aggregatePrompt?: string;
81
+ }): Promise<QueryDocumentResult>;
82
+ /**
83
+ * Map SDK file response to our interface
84
+ */
85
+ private mapFile;
86
+ /**
87
+ * Detect MIME type from file extension
88
+ */
89
+ private detectMimeType;
90
+ /**
91
+ * Format bytes to human-readable string
92
+ */
93
+ private formatBytes;
94
+ /**
95
+ * Calculate expiration time (48 hours from now)
96
+ */
97
+ private calculateExpiration;
44
98
  }
45
99
  //# sourceMappingURL=gemini-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-client.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAU3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CpE;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwC5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAevE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;OAEG;IACH,OAAO,CAAC,cAAc;CA6CvB"}
1
+ {"version":3,"file":"gemini-client.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAGnB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAU3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CpE;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwC5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAevE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqEnF;;OAEG;YACW,gBAAgB;IA2E9B;;OAEG;YACW,qBAAqB;IAsBnC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAepD;;OAEG;IACG,SAAS,CAAC,QAAQ,SAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyBjF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6EhF;;;OAGG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,mBAAmB,CAAC;IA2E/B;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Bf;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B"}