@roomi-fields/notebooklm-mcp 1.5.0 → 1.5.1

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.
Files changed (161) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +2 -0
  3. package/deployment/INDEX.md +292 -0
  4. package/deployment/PACKAGE-FILES.txt +180 -0
  5. package/deployment/QUICK-START.md +100 -0
  6. package/deployment/docs/01-INSTALL.md +611 -0
  7. package/deployment/docs/02-CONFIGURATION.md +404 -0
  8. package/deployment/docs/03-API.md +1691 -0
  9. package/deployment/docs/04-N8N-INTEGRATION.md +373 -0
  10. package/deployment/docs/05-TROUBLESHOOTING.md +429 -0
  11. package/deployment/docs/06-NOTEBOOK-LIBRARY.md +692 -0
  12. package/deployment/docs/07-AUTO-DISCOVERY.md +236 -0
  13. package/deployment/docs/08-WSL-USAGE.md +363 -0
  14. package/deployment/docs/09-MULTI-INTERFACE.md +293 -0
  15. package/deployment/docs/10-CONTENT-MANAGEMENT.md +421 -0
  16. package/deployment/docs/11-MULTI-ACCOUNT.md +295 -0
  17. package/deployment/docs/README.md +207 -0
  18. package/deployment/scripts/README.md +564 -0
  19. package/deployment/scripts/install.ps1 +114 -0
  20. package/deployment/scripts/setup-auth.ps1 +217 -0
  21. package/deployment/scripts/start-server.ps1 +72 -0
  22. package/deployment/scripts/stop-server.ps1 +51 -0
  23. package/deployment/scripts/test-api.ps1 +651 -0
  24. package/deployment/scripts/test-auth.ps1 +323 -0
  25. package/deployment/scripts/test-auto-discovery.ps1 +295 -0
  26. package/deployment/scripts/test-cors.ps1 +398 -0
  27. package/deployment/scripts/test-errors.ps1 +581 -0
  28. package/deployment/scripts/test-server.ps1 +140 -0
  29. package/deployment/scripts/test-sessions.ps1 +426 -0
  30. package/deployment/scripts/test-validation.ps1 +299 -0
  31. package/dist/cli/accounts.js.map +1 -1
  32. package/dist/config.d.ts +1 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +15 -0
  35. package/dist/config.js.map +1 -1
  36. package/dist/content/content-manager.d.ts.map +1 -1
  37. package/dist/content/content-manager.js +113 -118
  38. package/dist/content/content-manager.js.map +1 -1
  39. package/dist/i18n/en.json +120 -0
  40. package/dist/i18n/fr.json +120 -0
  41. package/dist/i18n/index.d.ts +168 -0
  42. package/dist/i18n/index.d.ts.map +1 -0
  43. package/dist/i18n/index.js +213 -0
  44. package/dist/i18n/index.js.map +1 -0
  45. package/dist/session/browser-session.d.ts.map +1 -1
  46. package/dist/session/browser-session.js +1 -0
  47. package/dist/session/browser-session.js.map +1 -1
  48. package/dist/session/shared-context-manager.d.ts.map +1 -1
  49. package/dist/session/shared-context-manager.js +2 -0
  50. package/dist/session/shared-context-manager.js.map +1 -1
  51. package/docs/ADDING_A_LANGUAGE.md +209 -0
  52. package/package.json +6 -3
  53. package/scripts/archive/add-and-activate-notebook.ps1 +31 -0
  54. package/scripts/archive/add-new-notebook.ps1 +25 -0
  55. package/scripts/archive/add-rom1pey.ps1 +2 -0
  56. package/scripts/archive/add-rpmonster.ps1 +2 -0
  57. package/scripts/archive/add-source-debug.ps1 +11 -0
  58. package/scripts/archive/add-source-e2e.ps1 +28 -0
  59. package/scripts/archive/add-source-visible.ps1 +11 -0
  60. package/scripts/archive/add-test-notebook.ps1 +13 -0
  61. package/scripts/archive/add-test-source.ps1 +50 -0
  62. package/scripts/archive/capture-screen.ps1 +11 -0
  63. package/scripts/archive/change-language.mjs +45 -0
  64. package/scripts/archive/change-language.ts +44 -0
  65. package/scripts/archive/check-account.ps1 +19 -0
  66. package/scripts/archive/check-notebook-2.ps1 +8 -0
  67. package/scripts/archive/check-test-notebook.ps1 +11 -0
  68. package/scripts/archive/create-notebook-auto.ps1 +31 -0
  69. package/scripts/archive/create-notebook.ps1 +8 -0
  70. package/scripts/archive/create-rom1pey-notebook.ps1 +19 -0
  71. package/scripts/archive/create-rom1pey.ps1 +8 -0
  72. package/scripts/archive/create-test-notebook-fresh.ps1 +21 -0
  73. package/scripts/archive/create-test-notebook.ps1 +16 -0
  74. package/scripts/archive/debug-add-source-auto.ps1 +29 -0
  75. package/scripts/archive/debug-add-source.ps1 +19 -0
  76. package/scripts/archive/debug-add-text-source.ps1 +47 -0
  77. package/scripts/archive/debug-home.ps1 +10 -0
  78. package/scripts/archive/debug-selectors.ps1 +55 -0
  79. package/scripts/archive/debug-sources-panel.ps1 +22 -0
  80. package/scripts/archive/debug-ui.ps1 +17 -0
  81. package/scripts/archive/discover-home.ps1 +26 -0
  82. package/scripts/archive/kill-automation-chrome.ps1 +37 -0
  83. package/scripts/archive/list-my-notebooks.ps1 +27 -0
  84. package/scripts/archive/navigate-home-visible.ps1 +23 -0
  85. package/scripts/archive/navigate-home.ps1 +15 -0
  86. package/scripts/archive/run-e2e-english.ps1 +111 -0
  87. package/scripts/archive/run-e2e-rom1pey-v2.ps1 +122 -0
  88. package/scripts/archive/run-e2e-rom1pey.ps1 +117 -0
  89. package/scripts/archive/setup-english-test.ps1 +36 -0
  90. package/scripts/archive/setup-test-notebook.ps1 +71 -0
  91. package/scripts/archive/simple-add-source.ps1 +14 -0
  92. package/scripts/archive/t10.ps1 +2 -0
  93. package/scripts/archive/t20.ps1 +4 -0
  94. package/scripts/archive/t30.ps1 +9 -0
  95. package/scripts/archive/t31.ps1 +11 -0
  96. package/scripts/archive/t32.ps1 +6 -0
  97. package/scripts/archive/t39.ps1 +5 -0
  98. package/scripts/archive/t40.ps1 +5 -0
  99. package/scripts/archive/t53.ps1 +12 -0
  100. package/scripts/archive/t54.ps1 +12 -0
  101. package/scripts/archive/t55.ps1 +11 -0
  102. package/scripts/archive/t9.ps1 +1 -0
  103. package/scripts/archive/test-access.ps1 +28 -0
  104. package/scripts/archive/test-add-delete-source.ps1 +64 -0
  105. package/scripts/archive/test-add-source-visible.ps1 +16 -0
  106. package/scripts/archive/test-add-source.ps1 +19 -0
  107. package/scripts/archive/test-add-text-debug.ps1 +28 -0
  108. package/scripts/archive/test-add-text-source.ps1 +8 -0
  109. package/scripts/archive/test-add-url-source.ps1 +7 -0
  110. package/scripts/archive/test-ask-ascii.ps1 +20 -0
  111. package/scripts/archive/test-ask-cnv.ps1 +20 -0
  112. package/scripts/archive/test-ask-headed.ps1 +51 -0
  113. package/scripts/archive/test-ask-ifs.ps1 +16 -0
  114. package/scripts/archive/test-ask-now.ps1 +24 -0
  115. package/scripts/archive/test-ask-real.ps1 +19 -0
  116. package/scripts/archive/test-ask-visible.ps1 +20 -0
  117. package/scripts/archive/test-create-notebook.ps1 +8 -0
  118. package/scripts/archive/test-create-then-add.ps1 +17 -0
  119. package/scripts/archive/test-delete-source.ps1 +41 -0
  120. package/scripts/archive/test-e2e-notebook.ps1 +21 -0
  121. package/scripts/archive/test-english-notebook.ps1 +20 -0
  122. package/scripts/archive/test-english.ps1 +7 -0
  123. package/scripts/archive/test-full-custom-instructions.ps1 +40 -0
  124. package/scripts/archive/test-full-infographic.ps1 +34 -0
  125. package/scripts/archive/test-full-language.ps1 +21 -0
  126. package/scripts/archive/test-full-presentation.ps1 +85 -0
  127. package/scripts/archive/test-full-report.ps1 +34 -0
  128. package/scripts/archive/test-full-source-selection.ps1 +35 -0
  129. package/scripts/archive/test-full-video-brief.ps1 +22 -0
  130. package/scripts/archive/test-full-video-explainer.ps1 +22 -0
  131. package/scripts/archive/test-full-video-styles.ps1 +37 -0
  132. package/scripts/archive/test-generate-report.ps1 +15 -0
  133. package/scripts/archive/test-generate-study-guide.ps1 +11 -0
  134. package/scripts/archive/test-headed-ask.ps1 +13 -0
  135. package/scripts/archive/test-headed-now.ps1 +9 -0
  136. package/scripts/archive/test-headed.ps1 +9 -0
  137. package/scripts/archive/test-hello.ps1 +7 -0
  138. package/scripts/archive/test-i18n-studio.ps1 +8 -0
  139. package/scripts/archive/test-i18n.ps1 +7 -0
  140. package/scripts/archive/test-manual-headed.ps1 +26 -0
  141. package/scripts/archive/test-mathieu-quota.ps1 +8 -0
  142. package/scripts/archive/test-notebook-1.ps1 +10 -0
  143. package/scripts/archive/test-notebook-2-sources.ps1 +12 -0
  144. package/scripts/archive/test-notebook1.ps1 +14 -0
  145. package/scripts/archive/test-personal-notebook.ps1 +14 -0
  146. package/scripts/archive/test-rate-limit.ps1 +19 -0
  147. package/scripts/archive/test-real-ask.ps1 +50 -0
  148. package/scripts/archive/test-real-ask2.ps1 +30 -0
  149. package/scripts/archive/test-rom1pey.ps1 +7 -0
  150. package/scripts/archive/test-rotation-complete.ps1 +14 -0
  151. package/scripts/archive/test-rotation.ps1 +8 -0
  152. package/scripts/archive/test-show-browser.ps1 +39 -0
  153. package/scripts/archive/test-update-notebook.ps1 +4 -0
  154. package/scripts/archive/verify-language-slow.ps1 +21 -0
  155. package/scripts/archive/verify-language.ps1 +15 -0
  156. package/scripts/check-server.ps1 +46 -0
  157. package/scripts/mcp-wsl-helper.sh +146 -0
  158. package/scripts/start-server.ps1 +94 -0
  159. package/scripts/stop-server.ps1 +30 -0
  160. package/scripts/switch-account-language.sh +191 -0
  161. package/scripts/test-account.ps1 +58 -0
@@ -285,6 +285,7 @@ export class SharedContextManager {
285
285
  if (CONFIG.cloneProfileOnIsolated && fs.existsSync(baseProfile)) {
286
286
  log.info(' 🧬 Cloning base Chrome profile into isolated instance (may take time)...');
287
287
  // Best-effort clone without locks
288
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- fs.promises.cp typing incomplete in older @types/node
288
289
  await fs.promises.cp(baseProfile, dir, {
289
290
  recursive: true,
290
291
  errorOnExist: false,
@@ -377,6 +378,7 @@ export class SharedContextManager {
377
378
  catch {
378
379
  // If rm is not available in older node, fallback to rmdir
379
380
  try {
381
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- deprecated rmdir with recursive option
380
382
  await fs.promises.rmdir(dir, { recursive: true });
381
383
  }
382
384
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"shared-context-manager.js","sourceRoot":"","sources":["../../src/session/shared-context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-context-manager.js","sourceRoot":"","sources":["../../src/session/shared-context-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ # Adding a New Language
2
+
3
+ This guide explains how to add support for a new UI language in NotebookLM MCP.
4
+
5
+ ## Overview
6
+
7
+ NotebookLM MCP uses an i18n (internationalization) system to support multiple UI languages. The system works by:
8
+
9
+ 1. Detecting UI elements based on localized text selectors
10
+ 2. Allowing users to switch between supported languages
11
+ 3. Building bilingual/multilingual selectors for elements that might appear in different languages
12
+
13
+ ## Current Supported Languages
14
+
15
+ | Language | Code | File |
16
+ | -------- | ---- | ------------------ |
17
+ | French | `fr` | `src/i18n/fr.json` |
18
+ | English | `en` | `src/i18n/en.json` |
19
+
20
+ ## Adding a New Language
21
+
22
+ ### Step 1: Create the Locale File
23
+
24
+ Create a new JSON file in `src/i18n/` with the language code (e.g., `de.json` for German):
25
+
26
+ ```bash
27
+ cp src/i18n/en.json src/i18n/de.json
28
+ ```
29
+
30
+ ### Step 2: Translate All Strings
31
+
32
+ Edit the new file and translate all strings. The structure must match exactly:
33
+
34
+ ```json
35
+ {
36
+ "locale": "de",
37
+ "name": "Deutsch",
38
+ "description": "German UI selectors for NotebookLM",
39
+
40
+ "tabs": {
41
+ "sources": "Quellen",
42
+ "discussion": "Diskussion",
43
+ "studio": "Studio"
44
+ },
45
+
46
+ "buttons": {
47
+ "addSource": "Quelle hinzufügen",
48
+ "addNote": "Notiz hinzufügen"
49
+ // ... all other buttons
50
+ }
51
+
52
+ // ... translate all sections
53
+ }
54
+ ```
55
+
56
+ **Important sections to translate:**
57
+
58
+ - `tabs` - Main navigation tabs
59
+ - `buttons` - All button labels
60
+ - `sourceTypes` - Source type menu items
61
+ - `placeholders` - Input placeholders
62
+ - `contentTypes` - Content generation types (Audio, Video, etc.)
63
+ - `contentOptions` - Video styles, presentation lengths, etc.
64
+ - `dialogs` - Dialog labels
65
+ - `actions` - Action menu items
66
+ - `status` - Status messages
67
+ - `errors` - Error messages
68
+
69
+ ### Step 3: Update the Type Definition
70
+
71
+ Edit `src/i18n/index.ts` to add the new locale to the supported types:
72
+
73
+ ```typescript
74
+ // Line ~106
75
+ export type SupportedLocale = 'fr' | 'en' | 'de'; // Add new code
76
+
77
+ // Line ~203-205
78
+ export function getSupportedLocales(): SupportedLocale[] {
79
+ return ['fr', 'en', 'de']; // Add new code
80
+ }
81
+ ```
82
+
83
+ ### Step 4: Configure Build to Copy Locale Files
84
+
85
+ Ensure the build process copies JSON files to `dist/i18n/`. Check `tsconfig.json`:
86
+
87
+ ```json
88
+ {
89
+ "compilerOptions": {
90
+ // ...
91
+ },
92
+ "include": ["src/**/*"],
93
+ "exclude": ["node_modules"]
94
+ }
95
+ ```
96
+
97
+ The locale files are copied via a post-build script. Verify in `package.json`:
98
+
99
+ ```json
100
+ {
101
+ "scripts": {
102
+ "build": "tsc && npm run copy-i18n",
103
+ "copy-i18n": "cp src/i18n/*.json dist/i18n/"
104
+ }
105
+ }
106
+ ```
107
+
108
+ ### Step 5: Test the New Language
109
+
110
+ 1. **Set up a test account** with the Google Account language set to the new language
111
+ 2. **Run the switch script**:
112
+ ```bash
113
+ ./scripts/switch-account-language.sh --account=your-account --lang=de --show
114
+ ```
115
+ 3. **Verify visually** that NotebookLM UI appears in the new language
116
+ 4. **Run E2E tests**:
117
+ ```bash
118
+ ./tests/e2e/run-e2e.sh --lang=de --account=your-account
119
+ ```
120
+
121
+ ### Step 6: Update Documentation
122
+
123
+ 1. Update `README.md` to list the new supported language
124
+ 2. Update this file to include the new language in the table
125
+ 3. Update `tests/e2e/config.ts` to add the new language type
126
+
127
+ ## Finding NotebookLM UI Strings
128
+
129
+ To find the correct translations for NotebookLM UI elements:
130
+
131
+ 1. **Set your Google Account** to the target language
132
+ 2. **Open NotebookLM** in a browser
133
+ 3. **Inspect elements** to find exact text strings used
134
+ 4. **Take screenshots** for reference
135
+
136
+ Common places to check:
137
+
138
+ - Tab names (Sources, Chat/Discussion, Studio)
139
+ - "Add source" button and menu
140
+ - Content generation buttons in Studio
141
+ - Dialog buttons (Cancel, Confirm, etc.)
142
+ - Error messages
143
+
144
+ ## Environment Variable
145
+
146
+ The UI locale is set via environment variable:
147
+
148
+ ```bash
149
+ # Set locale when starting the server
150
+ NOTEBOOKLM_UI_LOCALE=de node dist/http-wrapper.js
151
+
152
+ # Or in the start command
153
+ cmd.exe /c "cd /d D:\\path\\to\\project && set NOTEBOOKLM_UI_LOCALE=de&& node dist/http-wrapper.js"
154
+ ```
155
+
156
+ ## Bilingual Selector System
157
+
158
+ The i18n system includes a `SelectorBuilder` class that generates selectors for all supported languages:
159
+
160
+ ```typescript
161
+ import { selectors, tAll } from './i18n/index.js';
162
+
163
+ // Build a selector that matches button text in all languages
164
+ const addSourceSelectors = selectors().buttonWithText('addSource').build();
165
+ // Returns: ['button:has-text("Ajouter une source")', 'button:has-text("Add source")', ...]
166
+
167
+ // Get translated text in all languages
168
+ const texts = tAll('buttons', 'addSource');
169
+ // Returns: ['Ajouter une source', 'Add source', ...]
170
+ ```
171
+
172
+ This ensures the automation works regardless of the user's NotebookLM language setting.
173
+
174
+ ## Troubleshooting
175
+
176
+ ### Selectors not matching
177
+
178
+ 1. Check that the translated strings match **exactly** what NotebookLM displays
179
+ 2. NotebookLM may use different strings in different contexts
180
+ 3. Some UI elements use aria-labels instead of visible text
181
+
182
+ ### Language not changing
183
+
184
+ 1. The Google Account language must be changed first
185
+ 2. The Chrome profile must be regenerated (delete and re-authenticate)
186
+ 3. Check server logs for `🌐 Locale set to: XX`
187
+
188
+ ### Build errors
189
+
190
+ 1. Ensure JSON file is valid (no trailing commas, proper quotes)
191
+ 2. Ensure all required keys are present
192
+ 3. Run `npm run build` and check for TypeScript errors
193
+
194
+ ## File Structure
195
+
196
+ ```
197
+ src/i18n/
198
+ ├── index.ts # i18n system code
199
+ ├── fr.json # French translations
200
+ ├── en.json # English translations
201
+ └── de.json # German translations (new)
202
+
203
+ scripts/
204
+ └── switch-account-language.sh # Language switching script
205
+
206
+ tests/e2e/
207
+ ├── config.ts # Test configuration (includes TestLang type)
208
+ └── run-e2e.sh # Test runner with --lang option
209
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomi-fields/notebooklm-mcp",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "MCP server for NotebookLM API with HTTP REST API - Zero hallucinations from your notebooks",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,7 +16,8 @@
16
16
  "start:proxy": "node dist/stdio-http-proxy.js",
17
17
  "dev:http": "tsx watch src/http-wrapper.ts",
18
18
  "dev:proxy": "tsx watch src/stdio-http-proxy.ts",
19
- "build": "tsc",
19
+ "build": "tsc && npm run build:i18n",
20
+ "build:i18n": "node -e \"require('fs').cpSync('src/i18n', 'dist/i18n', {recursive: true, filter: (s) => s.endsWith('.json') || require('fs').statSync(s).isDirectory()})\"",
20
21
  "watch": "tsc --watch",
21
22
  "dev": "tsx watch src/index.ts",
22
23
  "prepare": "husky",
@@ -59,7 +60,9 @@
59
60
  "README.md",
60
61
  "NOTEBOOKLM_USAGE.md",
61
62
  "LICENSE",
62
- "docs"
63
+ "docs",
64
+ "scripts",
65
+ "deployment"
63
66
  ],
64
67
  "dependencies": {
65
68
  "@modelcontextprotocol/sdk": "^1.0.0",
@@ -0,0 +1,31 @@
1
+ # Add the newly created notebook to library and activate it
2
+ Write-Host "=== Adding and activating new notebook ===" -ForegroundColor Cyan
3
+
4
+ # Add the notebook
5
+ $addBody = @{
6
+ name = "e2e-rom1pey-test"
7
+ url = "https://notebooklm.google.com/notebook/725d28e1-4284-4f36-99a2-b6693c2ebf13"
8
+ description = "E2E test notebook owned by rom1pey"
9
+ } | ConvertTo-Json
10
+
11
+ Write-Host "Adding notebook to library..."
12
+ try {
13
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method POST -ContentType "application/json" -Body $addBody -TimeoutSec 60
14
+ Write-Host "Added: $($response.success)" -ForegroundColor Green
15
+ } catch {
16
+ Write-Host "Already exists or error: $($_.Exception.Message)" -ForegroundColor Yellow
17
+ }
18
+
19
+ # Activate it
20
+ Write-Host "`nActivating notebook..."
21
+ try {
22
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/notebooks/e2e-rom1pey-test/activate" -Method PUT -TimeoutSec 30
23
+ Write-Host "Activated: $($response.success)" -ForegroundColor Green
24
+ } catch {
25
+ Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
26
+ }
27
+
28
+ # Verify
29
+ Write-Host "`nVerifying active notebook..."
30
+ $notebooks = Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method GET
31
+ Write-Host "Active: $($notebooks.data.active_notebook_id)" -ForegroundColor Cyan
@@ -0,0 +1,25 @@
1
+ # Add the newly created notebook to library with all required fields
2
+ Write-Host "=== Adding notebook to library ===" -ForegroundColor Cyan
3
+
4
+ $body = @{
5
+ name = "e2e-rom1pey-test"
6
+ url = "https://notebooklm.google.com/notebook/725d28e1-4284-4f36-99a2-b6693c2ebf13"
7
+ description = "E2E test notebook owned by rom1pey"
8
+ topics = @("test", "e2e", "rom1pey")
9
+ } | ConvertTo-Json
10
+
11
+ Write-Host "Body: $body"
12
+ Write-Host "`nSending request..."
13
+
14
+ try {
15
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
16
+ Write-Host "Success: $($response.success)" -ForegroundColor Green
17
+ Write-Host "Notebook ID: $($response.data.notebook.id)"
18
+ } catch {
19
+ Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
20
+
21
+ # Get response body
22
+ $streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
23
+ $responseBody = $streamReader.ReadToEnd()
24
+ Write-Host "Response: $responseBody" -ForegroundColor Yellow
25
+ }
@@ -0,0 +1,2 @@
1
+ cd D:\Claude\notebooklm-mcp-http
2
+ npm run accounts add "rom1pey@gmail.com" "qZa!8A!Dm7S@vsnU" "ozzt dbdy d4po icw7 msk3 dc3s 33xc 3v36"
@@ -0,0 +1,2 @@
1
+ cd D:\Claude\notebooklm-mcp-http
2
+ npm run accounts add "rpmonster@gmail.com" 'w^mXCKl$o7aaJpp!' "e6ty a6dz jckj 5ogf m4yi vabs 4ttg x3tl"
@@ -0,0 +1,11 @@
1
+ $body = @{
2
+ source_type = "text"
3
+ title = "Test Source"
4
+ text = "Test document for E2E."
5
+ notebook_url = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
6
+ show_browser = $true
7
+ } | ConvertTo-Json
8
+
9
+ Write-Host "Adding source (visible browser)..."
10
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 180
11
+ $response | ConvertTo-Json -Depth 5
@@ -0,0 +1,28 @@
1
+ # Add source to test notebook with proper cleanup
2
+ $testNotebookUrl = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
3
+
4
+ Write-Host "Adding text source to test notebook..." -ForegroundColor Cyan
5
+
6
+ $sourceBody = @{
7
+ source_type = "text"
8
+ title = "E2E Test Document"
9
+ text = "# E2E Test Document`n`nThis is a test document for E2E testing.`n`n## Features`n- HTTP REST API`n- Browser automation`n- Multi-account support`n`n## Technical`n1. Express.js wrapper`n2. Playwright sessions`n3. Content manager"
10
+ notebook_url = $testNotebookUrl
11
+ } | ConvertTo-Json
12
+
13
+ try {
14
+ $result = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $sourceBody -TimeoutSec 90
15
+ Write-Host "Result:" -ForegroundColor Yellow
16
+ $result | ConvertTo-Json -Depth 5
17
+ } catch {
18
+ Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
19
+ }
20
+
21
+ # Close all sessions after operation
22
+ Write-Host "`nCleaning up sessions..." -ForegroundColor Cyan
23
+ $sessions = Invoke-RestMethod -Uri "http://localhost:3000/sessions" -Method GET
24
+ foreach ($session in $sessions.data.sessions) {
25
+ Write-Host " Closing session $($session.id)..."
26
+ Invoke-RestMethod -Uri "http://localhost:3000/sessions/$($session.id)" -Method DELETE -ErrorAction SilentlyContinue | Out-Null
27
+ }
28
+ Write-Host "Done." -ForegroundColor Green
@@ -0,0 +1,11 @@
1
+ $body = @{
2
+ source_type = "text"
3
+ title = "E2E Test Source"
4
+ text = "# E2E Test`n`nTest document for E2E testing. Contains info about NotebookLM MCP Server.`n`n## Features`n- REST API`n- Browser automation`n- Multi-account"
5
+ notebook_url = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
6
+ show_browser = $true
7
+ } | ConvertTo-Json
8
+
9
+ Write-Host "Adding source (visible browser)..."
10
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
11
+ $response | ConvertTo-Json -Depth 5
@@ -0,0 +1,13 @@
1
+ # Add test notebook to library (no browser needed)
2
+ $testNotebookUrl = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
3
+
4
+ $addBody = @{
5
+ url = $testNotebookUrl
6
+ name = "E2E-Test-Notebook"
7
+ description = "Notebook for E2E testing - can be modified/deleted"
8
+ topics = @("test", "e2e", "automation")
9
+ } | ConvertTo-Json
10
+
11
+ Write-Host "Adding test notebook to library..."
12
+ $result = Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method POST -ContentType "application/json" -Body $addBody -TimeoutSec 10
13
+ $result | ConvertTo-Json -Depth 3
@@ -0,0 +1,50 @@
1
+ # Add source to test notebook with proper cleanup
2
+ $testNotebookUrl = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
3
+
4
+ Write-Host "Adding text source to test notebook..." -ForegroundColor Cyan
5
+
6
+ $sourceBody = @{
7
+ source_type = "text"
8
+ title = "E2E Test Document"
9
+ text = @"
10
+ # E2E Test Document
11
+
12
+ This is a test document for End-to-End testing of the NotebookLM MCP HTTP Server.
13
+
14
+ ## Section 1: Introduction
15
+ The NotebookLM MCP HTTP Server provides a REST API for interacting with Google NotebookLM.
16
+
17
+ ## Section 2: Features
18
+ - Asking questions about notebook content
19
+ - Adding and managing sources
20
+ - Generating audio overviews, presentations, and reports
21
+ - Creating and managing notes
22
+
23
+ ## Section 3: Technical Details
24
+ The architecture consists of:
25
+ 1. HTTP wrapper (Express.js)
26
+ 2. Session manager (Playwright browser sessions)
27
+ 3. Content manager (source and content operations)
28
+
29
+ This document should provide enough content for testing.
30
+ "@
31
+ notebook_url = $testNotebookUrl
32
+ } | ConvertTo-Json
33
+
34
+ try {
35
+ $result = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $sourceBody -TimeoutSec 90
36
+ Write-Host "Result:" -ForegroundColor Yellow
37
+ $result | ConvertTo-Json -Depth 5
38
+ } catch {
39
+ Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
40
+ }
41
+
42
+ # Close all sessions after operation
43
+ Write-Host ""
44
+ Write-Host "Cleaning up sessions..." -ForegroundColor Cyan
45
+ $sessions = Invoke-RestMethod -Uri "http://localhost:3000/sessions" -Method GET
46
+ foreach ($session in $sessions.data.sessions) {
47
+ Write-Host " Closing session $($session.id)..."
48
+ Invoke-RestMethod -Uri "http://localhost:3000/sessions/$($session.id)" -Method DELETE -ErrorAction SilentlyContinue | Out-Null
49
+ }
50
+ Write-Host "Done." -ForegroundColor Green
@@ -0,0 +1,11 @@
1
+ # Just activate notebook and get content to take screenshot
2
+ Write-Host "Activating notebook-1..."
3
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/notebooks/notebook-1/activate" -Method PUT
4
+ Write-Host "Activated"
5
+
6
+ # The server should have taken debug screenshots - check the data folder
7
+ Write-Host "`nChecking for debug screenshots..."
8
+ $debugPath = "C:\Users\romai\AppData\Local\notebooklm-mcp\Data"
9
+ Get-ChildItem $debugPath -Filter "*.png" | Sort-Object LastWriteTime -Descending | Select-Object -First 5 | ForEach-Object {
10
+ Write-Host " $($_.Name) - $($_.LastWriteTime)"
11
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Change Google account language to English
3
+ */
4
+ import { chromium } from 'patchright';
5
+ import path from 'path';
6
+ import readline from 'readline';
7
+
8
+ const ACCOUNT_ID = 'account-1767079146601'; // rom1pey@gmail.com
9
+ const DATA_DIR = 'C:\\Users\\romai\\AppData\\Local\\notebooklm-mcp\\Data';
10
+ const PROFILE_DIR = path.join(DATA_DIR, 'accounts', ACCOUNT_ID, 'profile');
11
+
12
+ async function changeLanguage() {
13
+ console.log('🌐 Opening browser with rom1pey profile...');
14
+ console.log(`📁 Profile: ${PROFILE_DIR}`);
15
+
16
+ const browser = await chromium.launchPersistentContext(PROFILE_DIR, {
17
+ headless: false,
18
+ channel: 'chrome',
19
+ viewport: { width: 1280, height: 800 },
20
+ });
21
+
22
+ const page = await browser.newPage();
23
+
24
+ console.log('🔗 Navigating to Google language settings...');
25
+ await page.goto('https://myaccount.google.com/language', { waitUntil: 'networkidle' });
26
+
27
+ // Wait for user to manually change language
28
+ console.log('\n' + '='.repeat(60));
29
+ console.log('👆 MANUAL STEP REQUIRED:');
30
+ console.log('1. Click the pencil icon next to your language');
31
+ console.log('2. Select "English (United States)" as primary language');
32
+ console.log('3. Press ENTER here when done');
33
+ console.log('='.repeat(60) + '\n');
34
+
35
+ // Wait for user input
36
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
37
+ await new Promise((resolve) => rl.question('Press ENTER when done... ', resolve));
38
+ rl.close();
39
+
40
+ console.log('✅ Saving and closing browser...');
41
+ await browser.close();
42
+ console.log('🎉 Done! Language should now be English.');
43
+ }
44
+
45
+ changeLanguage().catch(console.error);
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Change Google account language to English
3
+ */
4
+ import { chromium } from 'patchright';
5
+ import path from 'path';
6
+
7
+ const ACCOUNT_ID = 'account-1767079146601'; // rom1pey@gmail.com
8
+ const DATA_DIR = 'C:\\Users\\romai\\AppData\\Local\\notebooklm-mcp\\Data';
9
+ const PROFILE_DIR = path.join(DATA_DIR, 'accounts', ACCOUNT_ID, 'profile');
10
+
11
+ async function changeLanguage() {
12
+ console.log('🌐 Opening browser with rom1pey profile...');
13
+ console.log(`📁 Profile: ${PROFILE_DIR}`);
14
+
15
+ const browser = await chromium.launchPersistentContext(PROFILE_DIR, {
16
+ headless: false,
17
+ channel: 'chrome',
18
+ viewport: { width: 1280, height: 800 },
19
+ });
20
+
21
+ const page = await browser.newPage();
22
+
23
+ console.log('🔗 Navigating to Google language settings...');
24
+ await page.goto('https://myaccount.google.com/language', { waitUntil: 'networkidle' });
25
+
26
+ // Wait for user to manually change language
27
+ console.log('\n' + '='.repeat(60));
28
+ console.log('👆 MANUAL STEP REQUIRED:');
29
+ console.log('1. Click "English" or "Add language" in the browser');
30
+ console.log('2. Select "English (United States)" as primary language');
31
+ console.log('3. Press ENTER here when done');
32
+ console.log('='.repeat(60) + '\n');
33
+
34
+ // Wait for user input
35
+ await new Promise<void>((resolve) => {
36
+ process.stdin.once('data', () => resolve());
37
+ });
38
+
39
+ console.log('✅ Saving and closing browser...');
40
+ await browser.close();
41
+ console.log('🎉 Done! Language should now be English.');
42
+ }
43
+
44
+ changeLanguage().catch(console.error);
@@ -0,0 +1,19 @@
1
+ # Check which account is currently logged in by navigating to NotebookLM home
2
+ Write-Host "=== Checking current account ===" -ForegroundColor Cyan
3
+
4
+ # Use /ask with show_browser to see the current state
5
+ $body = @{
6
+ question = "Hello"
7
+ show_browser = $true
8
+ } | ConvertTo-Json
9
+
10
+ Write-Host "Opening browser to check account..."
11
+ Write-Host "(Look at the browser window to see which Google account is logged in)"
12
+ Write-Host ""
13
+
14
+ try {
15
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
16
+ Write-Host "Response: $($response | ConvertTo-Json -Depth 3)"
17
+ } catch {
18
+ Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
19
+ }
@@ -0,0 +1,8 @@
1
+ # Activate notebook-2 and check its content
2
+ $activateResponse = Invoke-RestMethod -Uri "http://localhost:3000/notebooks/notebook-2/activate" -Method PUT
3
+ Write-Host "Activated: $($activateResponse | ConvertTo-Json -Depth 5)"
4
+
5
+ Start-Sleep -Seconds 2
6
+
7
+ $contentResponse = Invoke-RestMethod -Uri "http://localhost:3000/content" -Method GET
8
+ Write-Host "Content: $($contentResponse | ConvertTo-Json -Depth 5)"
@@ -0,0 +1,11 @@
1
+ # Check if notebook-2 is usable as test notebook
2
+ $body = @{ notebook_id = "notebook-2" } | ConvertTo-Json
3
+ $response = Invoke-RestMethod -Uri "http://localhost:3000/notebooks/notebook-2/activate" -Method PUT
4
+ Write-Host "Activate response:"
5
+ $response | ConvertTo-Json -Depth 5
6
+
7
+ Start-Sleep -Seconds 3
8
+
9
+ $content = Invoke-RestMethod -Uri "http://localhost:3000/content" -Method GET
10
+ Write-Host "`nContent response:"
11
+ $content | ConvertTo-Json -Depth 5