@roomi-fields/notebooklm-mcp 1.5.3 → 1.5.7

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 (294) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +219 -203
  3. package/deployment/INDEX.md +0 -0
  4. package/deployment/PACKAGE-FILES.txt +180 -180
  5. package/deployment/QUICK-START.md +0 -0
  6. package/deployment/docs/01-INSTALL.md +0 -0
  7. package/deployment/docs/02-CONFIGURATION.md +0 -0
  8. package/deployment/docs/03-API.md +99 -13
  9. package/deployment/docs/04-N8N-INTEGRATION.md +0 -0
  10. package/deployment/docs/05-TROUBLESHOOTING.md +0 -0
  11. package/deployment/docs/06-NOTEBOOK-LIBRARY.md +0 -0
  12. package/deployment/docs/07-AUTO-DISCOVERY.md +0 -0
  13. package/deployment/docs/08-DOCKER.md +125 -55
  14. package/deployment/docs/08-WSL-USAGE.md +0 -0
  15. package/deployment/docs/09-MULTI-INTERFACE.md +0 -0
  16. package/deployment/docs/10-CONTENT-MANAGEMENT.md +0 -0
  17. package/deployment/docs/11-MULTI-ACCOUNT.md +0 -0
  18. package/deployment/docs/README.md +9 -2
  19. package/deployment/scripts/README.md +0 -0
  20. package/deployment/scripts/install.ps1 +114 -114
  21. package/deployment/scripts/setup-auth.ps1 +217 -217
  22. package/deployment/scripts/start-server.ps1 +72 -72
  23. package/deployment/scripts/stop-server.ps1 +51 -51
  24. package/deployment/scripts/test-api.ps1 +651 -651
  25. package/deployment/scripts/test-auth.ps1 +0 -0
  26. package/deployment/scripts/test-auto-discovery.ps1 +295 -295
  27. package/deployment/scripts/test-cors.ps1 +398 -398
  28. package/deployment/scripts/test-errors.ps1 +581 -581
  29. package/deployment/scripts/test-server.ps1 +140 -140
  30. package/deployment/scripts/test-sessions.ps1 +426 -426
  31. package/deployment/scripts/test-validation.ps1 +299 -299
  32. package/dist/accounts/account-manager.d.ts +15 -0
  33. package/dist/accounts/account-manager.d.ts.map +1 -1
  34. package/dist/accounts/account-manager.js +104 -0
  35. package/dist/accounts/account-manager.js.map +1 -1
  36. package/dist/accounts/auto-login-manager.d.ts +0 -0
  37. package/dist/accounts/auto-login-manager.d.ts.map +1 -1
  38. package/dist/accounts/auto-login-manager.js +29 -25
  39. package/dist/accounts/auto-login-manager.js.map +1 -1
  40. package/dist/accounts/crypto.d.ts +0 -0
  41. package/dist/accounts/crypto.d.ts.map +0 -0
  42. package/dist/accounts/crypto.js +0 -0
  43. package/dist/accounts/crypto.js.map +0 -0
  44. package/dist/accounts/index.d.ts +0 -0
  45. package/dist/accounts/index.d.ts.map +0 -0
  46. package/dist/accounts/index.js +0 -0
  47. package/dist/accounts/index.js.map +0 -0
  48. package/dist/accounts/types.d.ts +0 -0
  49. package/dist/accounts/types.d.ts.map +0 -0
  50. package/dist/accounts/types.js +0 -0
  51. package/dist/accounts/types.js.map +0 -0
  52. package/dist/auth/auth-manager.d.ts +1 -1
  53. package/dist/auth/auth-manager.d.ts.map +1 -1
  54. package/dist/auth/auth-manager.js +14 -9
  55. package/dist/auth/auth-manager.js.map +1 -1
  56. package/dist/auto-discovery/auto-discovery.d.ts +0 -0
  57. package/dist/auto-discovery/auto-discovery.d.ts.map +0 -0
  58. package/dist/auto-discovery/auto-discovery.js +0 -0
  59. package/dist/auto-discovery/auto-discovery.js.map +0 -0
  60. package/dist/cli/accounts.d.ts +0 -0
  61. package/dist/cli/accounts.d.ts.map +0 -0
  62. package/dist/cli/accounts.js +0 -0
  63. package/dist/cli/accounts.js.map +0 -0
  64. package/dist/cli/de-auth.d.ts +0 -0
  65. package/dist/cli/de-auth.d.ts.map +0 -0
  66. package/dist/cli/de-auth.js +0 -0
  67. package/dist/cli/de-auth.js.map +0 -0
  68. package/dist/cli/help.d.ts +0 -0
  69. package/dist/cli/help.d.ts.map +0 -0
  70. package/dist/cli/help.js +0 -0
  71. package/dist/cli/help.js.map +0 -0
  72. package/dist/cli/setup-auth.d.ts +0 -0
  73. package/dist/cli/setup-auth.d.ts.map +0 -0
  74. package/dist/cli/setup-auth.js +18 -10
  75. package/dist/cli/setup-auth.js.map +1 -1
  76. package/dist/config.d.ts +0 -0
  77. package/dist/config.d.ts.map +0 -0
  78. package/dist/config.js +1 -1
  79. package/dist/config.js.map +1 -1
  80. package/dist/content/content-generator.d.ts +0 -0
  81. package/dist/content/content-generator.d.ts.map +0 -0
  82. package/dist/content/content-generator.js +0 -0
  83. package/dist/content/content-generator.js.map +0 -0
  84. package/dist/content/content-manager.d.ts +0 -0
  85. package/dist/content/content-manager.d.ts.map +0 -0
  86. package/dist/content/content-manager.js +0 -0
  87. package/dist/content/content-manager.js.map +0 -0
  88. package/dist/content/content-templates.d.ts +0 -0
  89. package/dist/content/content-templates.d.ts.map +0 -0
  90. package/dist/content/content-templates.js +0 -0
  91. package/dist/content/content-templates.js.map +0 -0
  92. package/dist/content/index.d.ts +0 -0
  93. package/dist/content/index.d.ts.map +0 -0
  94. package/dist/content/index.js +0 -0
  95. package/dist/content/index.js.map +0 -0
  96. package/dist/content/types.d.ts +0 -0
  97. package/dist/content/types.d.ts.map +0 -0
  98. package/dist/content/types.js +0 -0
  99. package/dist/content/types.js.map +0 -0
  100. package/dist/errors.d.ts +0 -0
  101. package/dist/errors.d.ts.map +0 -0
  102. package/dist/errors.js +0 -0
  103. package/dist/errors.js.map +0 -0
  104. package/dist/http-wrapper.d.ts +0 -0
  105. package/dist/http-wrapper.d.ts.map +1 -1
  106. package/dist/http-wrapper.js +245 -6
  107. package/dist/http-wrapper.js.map +1 -1
  108. package/dist/i18n/en.json +0 -0
  109. package/dist/i18n/fr.json +0 -0
  110. package/dist/i18n/index.d.ts +0 -0
  111. package/dist/i18n/index.d.ts.map +0 -0
  112. package/dist/i18n/index.js +0 -0
  113. package/dist/i18n/index.js.map +0 -0
  114. package/dist/index.d.ts +0 -0
  115. package/dist/index.d.ts.map +0 -0
  116. package/dist/index.js +0 -0
  117. package/dist/index.js.map +0 -0
  118. package/dist/library/notebook-library.d.ts +0 -0
  119. package/dist/library/notebook-library.d.ts.map +0 -0
  120. package/dist/library/notebook-library.js +0 -0
  121. package/dist/library/notebook-library.js.map +0 -0
  122. package/dist/library/types.d.ts +0 -0
  123. package/dist/library/types.d.ts.map +0 -0
  124. package/dist/library/types.js +0 -0
  125. package/dist/library/types.js.map +0 -0
  126. package/dist/session/browser-session.d.ts +0 -0
  127. package/dist/session/browser-session.d.ts.map +1 -1
  128. package/dist/session/browser-session.js +215 -91
  129. package/dist/session/browser-session.js.map +1 -1
  130. package/dist/session/session-manager.d.ts +0 -0
  131. package/dist/session/session-manager.d.ts.map +0 -0
  132. package/dist/session/session-manager.js +0 -0
  133. package/dist/session/session-manager.js.map +0 -0
  134. package/dist/session/shared-context-manager.d.ts +0 -0
  135. package/dist/session/shared-context-manager.d.ts.map +1 -1
  136. package/dist/session/shared-context-manager.js +22 -2
  137. package/dist/session/shared-context-manager.js.map +1 -1
  138. package/dist/startup/startup-manager.d.ts +8 -0
  139. package/dist/startup/startup-manager.d.ts.map +1 -1
  140. package/dist/startup/startup-manager.js +176 -28
  141. package/dist/startup/startup-manager.js.map +1 -1
  142. package/dist/stdio-http-proxy.d.ts +0 -0
  143. package/dist/stdio-http-proxy.d.ts.map +0 -0
  144. package/dist/stdio-http-proxy.js +91 -16
  145. package/dist/stdio-http-proxy.js.map +1 -1
  146. package/dist/tools/index.d.ts +1 -0
  147. package/dist/tools/index.d.ts.map +1 -1
  148. package/dist/tools/index.js +52 -32
  149. package/dist/tools/index.js.map +1 -1
  150. package/dist/types.d.ts +0 -0
  151. package/dist/types.d.ts.map +0 -0
  152. package/dist/types.js +0 -0
  153. package/dist/types.js.map +0 -0
  154. package/dist/utils/citation-extractor.d.ts +6 -7
  155. package/dist/utils/citation-extractor.d.ts.map +1 -1
  156. package/dist/utils/citation-extractor.js +138 -303
  157. package/dist/utils/citation-extractor.js.map +1 -1
  158. package/dist/utils/cleanup-manager.d.ts +0 -0
  159. package/dist/utils/cleanup-manager.d.ts.map +0 -0
  160. package/dist/utils/cleanup-manager.js +0 -0
  161. package/dist/utils/cleanup-manager.js.map +0 -0
  162. package/dist/utils/logger.d.ts +0 -0
  163. package/dist/utils/logger.d.ts.map +0 -0
  164. package/dist/utils/logger.js +0 -0
  165. package/dist/utils/logger.js.map +0 -0
  166. package/dist/utils/page-utils.d.ts +0 -0
  167. package/dist/utils/page-utils.d.ts.map +1 -1
  168. package/dist/utils/page-utils.js +12 -13
  169. package/dist/utils/page-utils.js.map +1 -1
  170. package/dist/utils/stealth-utils.d.ts +0 -0
  171. package/dist/utils/stealth-utils.d.ts.map +0 -0
  172. package/dist/utils/stealth-utils.js +0 -0
  173. package/dist/utils/stealth-utils.js.map +0 -0
  174. package/docs/ADDING_A_LANGUAGE.md +0 -0
  175. package/docs/ARCHITECTURE_MIGRATION_STUDY.md +0 -0
  176. package/docs/CHROME_PROFILE_LIMITATION.md +0 -0
  177. package/docs/MULTI_ACCOUNT_SYSTEM.md +0 -0
  178. package/docs/archive/auto-discovery-complet.md +906 -0
  179. package/package.json +4 -2
  180. package/scripts/add-totp.ts +110 -0
  181. package/scripts/archive/add-and-activate-notebook.ps1 +0 -0
  182. package/scripts/archive/add-new-notebook.ps1 +0 -0
  183. package/scripts/archive/add-rom1pey.ps1 +0 -0
  184. package/scripts/archive/add-rpmonster.ps1 +0 -0
  185. package/scripts/archive/add-source-debug.ps1 +0 -0
  186. package/scripts/archive/add-source-e2e.ps1 +0 -0
  187. package/scripts/archive/add-source-visible.ps1 +0 -0
  188. package/scripts/archive/add-test-notebook.ps1 +0 -0
  189. package/scripts/archive/add-test-source.ps1 +0 -0
  190. package/scripts/archive/capture-screen.ps1 +0 -0
  191. package/scripts/archive/change-language.mjs +0 -0
  192. package/scripts/archive/change-language.ts +0 -0
  193. package/scripts/archive/check-account.ps1 +0 -0
  194. package/scripts/archive/check-notebook-2.ps1 +0 -0
  195. package/scripts/archive/check-test-notebook.ps1 +0 -0
  196. package/scripts/archive/create-notebook-auto.ps1 +0 -0
  197. package/scripts/archive/create-notebook.ps1 +0 -0
  198. package/scripts/archive/create-rom1pey-notebook.ps1 +0 -0
  199. package/scripts/archive/create-rom1pey.ps1 +0 -0
  200. package/scripts/archive/create-test-notebook-fresh.ps1 +0 -0
  201. package/scripts/archive/create-test-notebook.ps1 +0 -0
  202. package/scripts/archive/debug-add-source-auto.ps1 +0 -0
  203. package/scripts/archive/debug-add-source.ps1 +0 -0
  204. package/scripts/archive/debug-add-text-source.ps1 +0 -0
  205. package/scripts/archive/debug-home.ps1 +0 -0
  206. package/scripts/archive/debug-selectors.ps1 +0 -0
  207. package/scripts/archive/debug-sources-panel.ps1 +0 -0
  208. package/scripts/archive/debug-ui.ps1 +0 -0
  209. package/scripts/archive/discover-home.ps1 +0 -0
  210. package/scripts/archive/kill-automation-chrome.ps1 +0 -0
  211. package/scripts/archive/list-my-notebooks.ps1 +0 -0
  212. package/scripts/archive/navigate-home-visible.ps1 +0 -0
  213. package/scripts/archive/navigate-home.ps1 +0 -0
  214. package/scripts/archive/run-e2e-english.ps1 +0 -0
  215. package/scripts/archive/run-e2e-rom1pey-v2.ps1 +0 -0
  216. package/scripts/archive/run-e2e-rom1pey.ps1 +0 -0
  217. package/scripts/archive/setup-english-test.ps1 +0 -0
  218. package/scripts/archive/setup-test-notebook.ps1 +0 -0
  219. package/scripts/archive/simple-add-source.ps1 +0 -0
  220. package/scripts/archive/t10.ps1 +0 -0
  221. package/scripts/archive/t20.ps1 +0 -0
  222. package/scripts/archive/t30.ps1 +0 -0
  223. package/scripts/archive/t31.ps1 +0 -0
  224. package/scripts/archive/t32.ps1 +0 -0
  225. package/scripts/archive/t39.ps1 +0 -0
  226. package/scripts/archive/t40.ps1 +0 -0
  227. package/scripts/archive/t53.ps1 +0 -0
  228. package/scripts/archive/t54.ps1 +0 -0
  229. package/scripts/archive/t55.ps1 +0 -0
  230. package/scripts/archive/t9.ps1 +0 -0
  231. package/scripts/archive/test-access.ps1 +0 -0
  232. package/scripts/archive/test-add-delete-source.ps1 +0 -0
  233. package/scripts/archive/test-add-source-visible.ps1 +0 -0
  234. package/scripts/archive/test-add-source.ps1 +0 -0
  235. package/scripts/archive/test-add-text-debug.ps1 +0 -0
  236. package/scripts/archive/test-add-text-source.ps1 +0 -0
  237. package/scripts/archive/test-add-url-source.ps1 +0 -0
  238. package/scripts/archive/test-ask-ascii.ps1 +0 -0
  239. package/scripts/archive/test-ask-cnv.ps1 +0 -0
  240. package/scripts/archive/test-ask-headed.ps1 +0 -0
  241. package/scripts/archive/test-ask-ifs.ps1 +0 -0
  242. package/scripts/archive/test-ask-now.ps1 +0 -0
  243. package/scripts/archive/test-ask-real.ps1 +0 -0
  244. package/scripts/archive/test-ask-visible.ps1 +0 -0
  245. package/scripts/archive/test-create-notebook.ps1 +0 -0
  246. package/scripts/archive/test-create-then-add.ps1 +0 -0
  247. package/scripts/archive/test-delete-source.ps1 +0 -0
  248. package/scripts/archive/test-e2e-notebook.ps1 +0 -0
  249. package/scripts/archive/test-english-notebook.ps1 +0 -0
  250. package/scripts/archive/test-english.ps1 +0 -0
  251. package/scripts/archive/test-full-custom-instructions.ps1 +0 -0
  252. package/scripts/archive/test-full-infographic.ps1 +0 -0
  253. package/scripts/archive/test-full-language.ps1 +0 -0
  254. package/scripts/archive/test-full-presentation.ps1 +0 -0
  255. package/scripts/archive/test-full-report.ps1 +0 -0
  256. package/scripts/archive/test-full-source-selection.ps1 +0 -0
  257. package/scripts/archive/test-full-video-brief.ps1 +0 -0
  258. package/scripts/archive/test-full-video-explainer.ps1 +0 -0
  259. package/scripts/archive/test-full-video-styles.ps1 +0 -0
  260. package/scripts/archive/test-generate-report.ps1 +0 -0
  261. package/scripts/archive/test-generate-study-guide.ps1 +0 -0
  262. package/scripts/archive/test-headed-ask.ps1 +0 -0
  263. package/scripts/archive/test-headed-now.ps1 +0 -0
  264. package/scripts/archive/test-headed.ps1 +0 -0
  265. package/scripts/archive/test-hello.ps1 +0 -0
  266. package/scripts/archive/test-i18n-studio.ps1 +0 -0
  267. package/scripts/archive/test-i18n.ps1 +0 -0
  268. package/scripts/archive/test-manual-headed.ps1 +0 -0
  269. package/scripts/archive/test-mathieu-quota.ps1 +0 -0
  270. package/scripts/archive/test-notebook-1.ps1 +0 -0
  271. package/scripts/archive/test-notebook-2-sources.ps1 +0 -0
  272. package/scripts/archive/test-notebook1.ps1 +0 -0
  273. package/scripts/archive/test-personal-notebook.ps1 +0 -0
  274. package/scripts/archive/test-rate-limit.ps1 +0 -0
  275. package/scripts/archive/test-real-ask.ps1 +0 -0
  276. package/scripts/archive/test-real-ask2.ps1 +0 -0
  277. package/scripts/archive/test-rom1pey.ps1 +0 -0
  278. package/scripts/archive/test-rotation-complete.ps1 +0 -0
  279. package/scripts/archive/test-rotation.ps1 +0 -0
  280. package/scripts/archive/test-show-browser.ps1 +0 -0
  281. package/scripts/archive/test-update-notebook.ps1 +0 -0
  282. package/scripts/archive/verify-language-slow.ps1 +0 -0
  283. package/scripts/archive/verify-language.ps1 +0 -0
  284. package/scripts/check-server.ps1 +0 -0
  285. package/scripts/docker-entrypoint.sh +25 -29
  286. package/scripts/mcp-proxy-hidden.ps1 +31 -0
  287. package/scripts/mcp-wsl-helper.sh +146 -146
  288. package/scripts/start-server-hidden.vbs +13 -0
  289. package/scripts/start-server.ps1 +0 -0
  290. package/scripts/start-vnc.sh +0 -0
  291. package/scripts/stop-server.bat +5 -0
  292. package/scripts/stop-server.ps1 +0 -0
  293. package/scripts/switch-account-language.sh +0 -0
  294. package/scripts/test-account.ps1 +0 -0
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@roomi-fields/notebooklm-mcp",
3
- "version": "1.5.3",
3
+ "version": "1.5.7",
4
+ "mcpName": "io.github.roomi-fields/notebooklm-mcp",
4
5
  "description": "MCP server for NotebookLM API with HTTP REST API - Zero hallucinations from your notebooks",
5
6
  "type": "module",
6
7
  "bin": {
@@ -44,7 +45,8 @@
44
45
  ],
45
46
  "author": "Romain Peyrichou (https://github.com/roomi-fields)",
46
47
  "contributors": [
47
- "Gérôme Dexheimer <hello@geromedexheimer.de> (https://github.com/PleasePrompto)"
48
+ "Gérôme Dexheimer <hello@geromedexheimer.de> (https://github.com/PleasePrompto)",
49
+ "Julien Cantoni (https://github.com/JulienCANTONI)"
48
50
  ],
49
51
  "license": "MIT",
50
52
  "repository": {
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Add TOTP Secret to Existing Account
4
+ *
5
+ * Usage: npx tsx scripts/add-totp.ts <account-id> <totp-secret>
6
+ *
7
+ * Example: npx tsx scripts/add-totp.ts account-1766565732376 JBSWY3DPEHPK3PXP
8
+ */
9
+
10
+ import fs from 'fs/promises';
11
+ import { existsSync } from 'fs';
12
+ import path from 'path';
13
+ import { CONFIG } from '../src/config.js';
14
+ import { encrypt } from '../src/accounts/crypto.js';
15
+
16
+ interface EncryptedCredentials {
17
+ emailEncrypted: string;
18
+ passwordEncrypted: string;
19
+ totpSecretEncrypted?: string;
20
+ encryptedAt: string;
21
+ }
22
+
23
+ interface AccountConfig {
24
+ id: string;
25
+ email: string;
26
+ enabled: boolean;
27
+ priority: number;
28
+ hasCredentials: boolean;
29
+ hasTotp: boolean;
30
+ createdAt: string;
31
+ notes?: string;
32
+ }
33
+
34
+ interface AccountsConfig {
35
+ accounts: AccountConfig[];
36
+ rotationStrategy: string;
37
+ keepAliveIntervalHours: number;
38
+ autoLoginEnabled: boolean;
39
+ }
40
+
41
+ async function main() {
42
+ const args = process.argv.slice(2);
43
+
44
+ if (args.length < 2) {
45
+ console.log('Usage: npx tsx scripts/add-totp.ts <account-id> <totp-secret>');
46
+ console.log('');
47
+ console.log('Example:');
48
+ console.log(' npx tsx scripts/add-totp.ts account-1766565732376 JBSWY3DPEHPK3PXP');
49
+ process.exit(1);
50
+ }
51
+
52
+ const [accountId, totpSecret] = args;
53
+
54
+ console.log(`\n🔐 Adding TOTP secret to account: ${accountId}\n`);
55
+
56
+ // Validate TOTP secret format (base32)
57
+ const base32Regex = /^[A-Z2-7]+=*$/i;
58
+ const cleanSecret = totpSecret.replace(/\s/g, '').toUpperCase();
59
+
60
+ if (!base32Regex.test(cleanSecret)) {
61
+ console.error('❌ Invalid TOTP secret format. Expected base32 string (A-Z, 2-7)');
62
+ process.exit(1);
63
+ }
64
+
65
+ // Check account exists
66
+ const accountDir = path.join(CONFIG.dataDir, 'accounts', accountId);
67
+ const credentialsPath = path.join(accountDir, 'credentials.enc.json');
68
+ const configPath = path.join(CONFIG.dataDir, 'accounts.json');
69
+
70
+ if (!existsSync(credentialsPath)) {
71
+ console.error(`❌ Account not found: ${accountId}`);
72
+ console.error(` Expected credentials at: ${credentialsPath}`);
73
+ process.exit(1);
74
+ }
75
+
76
+ // Read existing credentials
77
+ const credentialsData = await fs.readFile(credentialsPath, 'utf-8');
78
+ const credentials: EncryptedCredentials = JSON.parse(credentialsData);
79
+
80
+ // Encrypt and add TOTP
81
+ console.log('🔒 Encrypting TOTP secret...');
82
+ credentials.totpSecretEncrypted = await encrypt(cleanSecret);
83
+ credentials.encryptedAt = new Date().toISOString();
84
+
85
+ // Save updated credentials
86
+ await fs.writeFile(credentialsPath, JSON.stringify(credentials, null, 2), { mode: 0o600 });
87
+ console.log('✅ Credentials updated');
88
+
89
+ // Update account config
90
+ if (existsSync(configPath)) {
91
+ const configData = await fs.readFile(configPath, 'utf-8');
92
+ const config: AccountsConfig = JSON.parse(configData);
93
+
94
+ const accountConfig = config.accounts.find(a => a.id === accountId);
95
+ if (accountConfig) {
96
+ accountConfig.hasTotp = true;
97
+ await fs.writeFile(configPath, JSON.stringify(config, null, 2));
98
+ console.log('✅ Account config updated (hasTotp: true)');
99
+ }
100
+ }
101
+
102
+ console.log('\n🎉 TOTP secret added successfully!');
103
+ console.log(' You can now test auto-login with:');
104
+ console.log(` npx tsx src/cli/accounts.ts test ${accountId} --show\n`);
105
+ }
106
+
107
+ main().catch(error => {
108
+ console.error('❌ Error:', error);
109
+ process.exit(1);
110
+ });
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,29 +1,25 @@
1
- #!/bin/bash
2
- # Docker entrypoint for NotebookLM MCP Server
3
- # Starts VNC services (for visual auth) and Node.js HTTP server
4
-
5
- set -e
6
-
7
- echo "==========================================="
8
- echo " NotebookLM MCP Server - Docker"
9
- echo "==========================================="
10
- echo ""
11
-
12
- # Check if VNC should be started (default: yes in Docker)
13
- ENABLE_VNC="${ENABLE_VNC:-true}"
14
-
15
- if [ "$ENABLE_VNC" = "true" ]; then
16
- echo "[Entrypoint] Starting VNC services..."
17
- source /app/scripts/start-vnc.sh
18
- echo ""
19
- echo "[Entrypoint] VNC ready at: http://<host>:${NOVNC_PORT:-6080}/vnc.html"
20
- echo ""
21
- else
22
- echo "[Entrypoint] VNC disabled (ENABLE_VNC=false)"
23
- fi
24
-
25
- echo "[Entrypoint] Starting Node.js HTTP server on port ${HTTP_PORT:-3000}..."
26
- echo ""
27
-
28
- # Start the Node.js server (foreground)
29
- exec node dist/http-wrapper.js
1
+ #!/bin/bash
2
+ # Docker entrypoint for NotebookLM MCP Server
3
+ # Starts VNC services (for visual auth) and Node.js HTTP server
4
+ set -e
5
+ echo "==========================================="
6
+ echo " NotebookLM MCP Server - Docker"
7
+ echo "==========================================="
8
+ echo ""
9
+ # Check if VNC should be started (default: yes in Docker)
10
+ ENABLE_VNC="${ENABLE_VNC:-true}"
11
+ if [ "$ENABLE_VNC" = "true" ]; then
12
+ echo "[Entrypoint] Starting VNC services..."
13
+ source /app/scripts/start-vnc.sh
14
+ echo ""
15
+ echo "[Entrypoint] VNC ready at: http://<host>:${NOVNC_PORT:-6080}/vnc.html"
16
+ echo ""
17
+ else
18
+ echo "[Entrypoint] VNC disabled (ENABLE_VNC=false)"
19
+ fi
20
+ # Render injecte automatiquement PORT, on l'utilise en priorité
21
+ export HTTP_PORT=${PORT:-${HTTP_PORT:-3000}}
22
+ echo "[Entrypoint] Starting Node.js HTTP server on port ${HTTP_PORT}..."
23
+ echo ""
24
+ # Start the Node.js server (foreground)
25
+ exec node dist/http-wrapper.js
@@ -0,0 +1,31 @@
1
+ # MCP Proxy Launcher - Hidden Window
2
+ # Lance le stdio-http-proxy sans fenêtre visible
3
+
4
+ $scriptPath = Split-Path -Parent $PSScriptRoot
5
+ $proxyPath = Join-Path $scriptPath "dist\stdio-http-proxy.js"
6
+
7
+ $env:NBLM_HOST = "localhost"
8
+ $env:NBLM_PORT = "3000"
9
+
10
+ # Lance node avec la fenêtre cachée
11
+ $psi = New-Object System.Diagnostics.ProcessStartInfo
12
+ $psi.FileName = "node"
13
+ $psi.Arguments = $proxyPath
14
+ $psi.WorkingDirectory = $scriptPath
15
+ $psi.UseShellExecute = $false
16
+ $psi.RedirectStandardInput = $true
17
+ $psi.RedirectStandardOutput = $true
18
+ $psi.RedirectStandardError = $true
19
+ $psi.CreateNoWindow = $true
20
+
21
+ $process = [System.Diagnostics.Process]::Start($psi)
22
+
23
+ # Relay stdin/stdout pour le protocole MCP
24
+ $inputTask = [System.Threading.Tasks.Task]::Run({
25
+ param($proc)
26
+ try {
27
+ [Console]::OpenStandardInput().CopyTo($proc.StandardInput.BaseStream)
28
+ } catch {}
29
+ }, $process)
30
+
31
+ $process.StandardOutput.BaseStream.CopyTo([Console]::OpenStandardOutput())