@roomi-fields/notebooklm-mcp 1.1.4 → 1.2.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
@@ -144,9 +144,18 @@ npm run build
144
144
  npm run setup-auth
145
145
  # Chrome opens → log in with Google → close Chrome
146
146
 
147
- # 3. Add your first notebook
147
+ # 3. Start the server
148
+
149
+ # Option A: Foreground mode (terminal stays open)
148
150
  npm run start:http
149
- # In another terminal:
151
+
152
+ # Option B: Background daemon mode (recommended for production)
153
+ npm run daemon:start # Start in background
154
+ npm run daemon:logs # View logs
155
+ npm run daemon:status # Check status
156
+ npm run daemon:stop # Stop server
157
+
158
+ # 4. Add your first notebook (in another terminal if using Option A)
150
159
  curl -X POST http://localhost:3000/notebooks \
151
160
  -H "Content-Type: application/json" \
152
161
  -d '{
@@ -156,12 +165,12 @@ curl -X POST http://localhost:3000/notebooks \
156
165
  "topics": ["docs", "api"]
157
166
  }'
158
167
 
159
- # 4. Query NotebookLM
168
+ # 5. Query NotebookLM
160
169
  curl -X POST http://localhost:3000/ask \
161
170
  -H "Content-Type: application/json" \
162
171
  -d '{"question": "Explain X"}'
163
172
 
164
- # 5. Validate installation (optional)
173
+ # 6. Validate installation (optional)
165
174
  .\deployment\scripts\test-server.ps1
166
175
  ```
167
176
 
@@ -208,6 +217,39 @@ Perfect for n8n workflows:
208
217
 
209
218
  **👉 n8n guide:** [deployment/docs/04-N8N-INTEGRATION.md](./deployment/docs/04-N8N-INTEGRATION.md)
210
219
 
220
+ ### Background Daemon Mode
221
+
222
+ Run the HTTP server as a background process without keeping a terminal window open:
223
+
224
+ ```bash
225
+ # Start server in background
226
+ npm run daemon:start
227
+
228
+ # View real-time logs
229
+ npm run daemon:logs
230
+
231
+ # Check server status
232
+ npm run daemon:status
233
+
234
+ # Restart server
235
+ npm run daemon:restart
236
+
237
+ # Stop server
238
+ npm run daemon:stop
239
+
240
+ # Remove from PM2 process list
241
+ npm run daemon:delete
242
+ ```
243
+
244
+ **Features:**
245
+ - ✅ Runs in background without terminal window
246
+ - ✅ Auto-restart on crash
247
+ - ✅ Centralized log management (logs/pm2-*.log)
248
+ - ✅ Memory limit protection (1GB max)
249
+ - ✅ Production-ready process management
250
+
251
+ **Configuration:** Edit `ecosystem.config.cjs` to customize PM2 behavior (env vars, restart policy, etc.)
252
+
211
253
  ### Installation & Documentation
212
254
 
213
255
  - 📖 [**Installation Guide**](./deployment/docs/01-INSTALL.md) — Step-by-step setup
@@ -325,18 +367,39 @@ Share: **⚙️ Share → Anyone with link → Copy**
325
367
 
326
368
  ---
327
369
 
328
- ## Alternative: Claude Code Skill
370
+ ## Related Project: Claude Code Skill (by original author)
371
+
372
+ The original author [PleasePrompto](https://github.com/PleasePrompto) also created a **Python-based Claude Code Skill** as an alternative approach:
373
+
374
+ 🔗 **[NotebookLM Claude Code Skill](https://github.com/PleasePrompto/notebooklm-skill)** - Python skill for Claude Code
375
+
376
+ ### When to use which approach?
377
+
378
+ | Feature | This Project (MCP + HTTP) | Original Skill (Python) |
379
+ |---------|---------------------------|-------------------------|
380
+ | **Protocol** | MCP (Model Context Protocol) | Claude Skills |
381
+ | **Installation** | `claude mcp add notebooklm npx @roomi-fields/notebooklm-mcp` | Clone to `~/.claude/skills/` |
382
+ | **Sessions** | ✅ Persistent browser sessions | Fresh browser per query |
383
+ | **Compatibility** | ✅ Claude Code, Cursor, Codex, any MCP client | Claude Code only |
384
+ | **HTTP API** | ✅ Works with n8n, Zapier, Make.com | ❌ Not available |
385
+ | **Language** | TypeScript | Python |
386
+ | **Use case** | Long conversations, automation workflows | Quick one-off queries |
329
387
 
330
- **Prefer Claude Code Skills over MCP?** This server is now also available as a native Claude Code Skill with a simpler setup:
388
+ ### Which one should you choose?
331
389
 
332
- **NotebookLM Claude Code Skill** - Available separately for advanced Claude Code workflows
390
+ - **Use this MCP project** if you want:
391
+ - Persistent sessions (faster repeated queries)
392
+ - Compatibility with multiple tools (Cursor, Codex, etc.)
393
+ - HTTP REST API for n8n/Zapier automation
394
+ - TypeScript-based development
333
395
 
334
- **Key differences:**
335
- - **MCP Server** (this repo): Persistent sessions, works with Claude Code, Codex, Cursor, and other MCP clients
336
- - **HTTP REST API** (this repo): Works with n8n, Zapier, Make.com, any HTTP client
337
- - **Claude Code Skill**: Simpler setup, Python-based, stateless queries, works only with local Claude Code
396
+ - **Use the original Skill** if you prefer:
397
+ - Python-based workflow
398
+ - Simpler clone-and-use installation
399
+ - Stateless queries (no session management)
400
+ - Only using Claude Code locally
338
401
 
339
- All use the same browser automation technology and provide zero-hallucination answers from your NotebookLM notebooks.
402
+ Both use the same Patchright browser automation technology and provide zero-hallucination answers from NotebookLM.
340
403
 
341
404
  ---
342
405
 
@@ -182,7 +182,7 @@ app.delete('/sessions/:id', async (req, res) => {
182
182
  const PORT = Number(process.env.HTTP_PORT) || 3000;
183
183
  const HOST = process.env.HTTP_HOST || '0.0.0.0';
184
184
  app.listen(PORT, HOST, () => {
185
- log.success(`🌐 NotebookLM MCP HTTP Server v1.1.4`);
185
+ log.success(`🌐 NotebookLM MCP HTTP Server v1.2.0`);
186
186
  log.success(` Listening on ${HOST}:${PORT}`);
187
187
  log.info('');
188
188
  log.info('📊 Quick Links:');
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ class NotebookLMMCPServer {
51
51
  // Initialize MCP Server
52
52
  this.server = new Server({
53
53
  name: "notebooklm-mcp",
54
- version: "1.1.4",
54
+ version: "1.2.0",
55
55
  }, {
56
56
  capabilities: {
57
57
  tools: {},
@@ -70,7 +70,7 @@ class NotebookLMMCPServer {
70
70
  this.setupHandlers();
71
71
  this.setupShutdownHandlers();
72
72
  log.info("🚀 NotebookLM MCP Server initialized");
73
- log.info(` Version: 1.1.4`);
73
+ log.info(` Version: 1.2.0`);
74
74
  log.info(` Node: ${process.version}`);
75
75
  log.info(` Platform: ${process.platform}`);
76
76
  }
@@ -476,7 +476,7 @@ async function main() {
476
476
  // Print banner
477
477
  console.error("╔══════════════════════════════════════════════════════════╗");
478
478
  console.error("║ ║");
479
- console.error("║ NotebookLM MCP Server v1.1.4 ║");
479
+ console.error("║ NotebookLM MCP Server v1.2.0 ║");
480
480
  console.error("║ ║");
481
481
  console.error("║ Chat with Gemini 2.5 through NotebookLM via MCP ║");
482
482
  console.error("║ ║");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomi-fields/notebooklm-mcp",
3
- "version": "1.1.4",
3
+ "version": "1.2.0",
4
4
  "description": "MCP server for NotebookLM API with HTTP REST API - Zero hallucinations from your notebooks",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,6 +12,12 @@
12
12
  "dev": "tsx watch src/index.ts",
13
13
  "dev:http": "tsx watch src/http-wrapper.ts",
14
14
  "start:http": "node dist/http-wrapper.js",
15
+ "daemon:start": "pm2 start ecosystem.config.cjs",
16
+ "daemon:stop": "pm2 stop notebooklm-http",
17
+ "daemon:restart": "pm2 restart notebooklm-http",
18
+ "daemon:logs": "pm2 logs notebooklm-http",
19
+ "daemon:status": "pm2 status",
20
+ "daemon:delete": "pm2 delete notebooklm-http",
15
21
  "setup-auth": "node dist/index.js",
16
22
  "prepare": "npm run build",
17
23
  "test": "tsx src/index.ts"
@@ -62,6 +68,7 @@
62
68
  "@types/cors": "^2.8.17",
63
69
  "@types/express": "^4.17.21",
64
70
  "@types/node": "^20.11.0",
71
+ "pm2": "^5.4.2",
65
72
  "tsx": "^4.7.0",
66
73
  "typescript": "^5.3.3"
67
74
  },