@roomi-fields/notebooklm-mcp 1.5.2 → 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 -201
  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 +303 -0
  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 +45 -28
  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 +33 -13
  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 +1 -0
  77. package/dist/config.d.ts.map +1 -1
  78. package/dist/config.js +15 -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 +275 -7
  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 +38 -5
  137. package/dist/session/shared-context-manager.js.map +1 -1
  138. package/dist/startup/startup-manager.d.ts +60 -0
  139. package/dist/startup/startup-manager.d.ts.map +1 -0
  140. package/dist/startup/startup-manager.js +468 -0
  141. package/dist/startup/startup-manager.js.map +1 -0
  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 +55 -34
  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 -0
  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 +37 -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
@@ -1,146 +1,146 @@
1
- #!/bin/bash
2
- # NotebookLM MCP HTTP Server - WSL Helper Script
3
- # This script helps interact with the Windows-hosted MCP server from WSL
4
- #
5
- # Usage:
6
- # ./mcp-wsl-helper.sh start Start the server (Windows)
7
- # ./mcp-wsl-helper.sh stop Stop the server
8
- # ./mcp-wsl-helper.sh status Check if server is running
9
- # ./mcp-wsl-helper.sh health Get health status
10
- # ./mcp-wsl-helper.sh ask "question" Ask a question to the active notebook
11
- # ./mcp-wsl-helper.sh auth Launch authentication (opens Chrome)
12
-
13
- set -e
14
-
15
- MCP_PORT=3000
16
- MCP_DIR="D:/Claude/notebooklm-mcp-http"
17
-
18
- # Helper function to call the API via PowerShell (bypasses WSL network issues)
19
- call_api() {
20
- local method="$1"
21
- local endpoint="$2"
22
- local body="$3"
23
-
24
- if [ -n "$body" ]; then
25
- powershell.exe -Command "Invoke-RestMethod -Uri 'http://localhost:${MCP_PORT}${endpoint}' -Method ${method} -ContentType 'application/json' -Body '${body}' | ConvertTo-Json -Depth 10" 2>&1
26
- else
27
- powershell.exe -Command "Invoke-RestMethod -Uri 'http://localhost:${MCP_PORT}${endpoint}' -Method ${method} | ConvertTo-Json -Depth 10" 2>&1
28
- fi
29
- }
30
-
31
- # Check if server is running
32
- is_running() {
33
- cmd.exe /c "netstat -ano | findstr :${MCP_PORT} | findstr LISTENING" >/dev/null 2>&1
34
- }
35
-
36
- # Get server PID
37
- get_pid() {
38
- cmd.exe /c "netstat -ano | findstr :${MCP_PORT} | findstr LISTENING" 2>/dev/null | awk '{print $5}' | tr -d '\r'
39
- }
40
-
41
- case "$1" in
42
- start)
43
- if is_running; then
44
- echo "Server already running (PID: $(get_pid))"
45
- exit 0
46
- fi
47
- echo "Starting NotebookLM MCP HTTP Server..."
48
- powershell.exe -Command "Start-Process -NoNewWindow -FilePath 'node' -ArgumentList '${MCP_DIR}/dist/http-wrapper.js' -WorkingDirectory '${MCP_DIR}'" 2>&1
49
- sleep 3
50
- if is_running; then
51
- echo "Server started successfully (PID: $(get_pid))"
52
- echo "Health: http://localhost:${MCP_PORT}/health"
53
- else
54
- echo "Failed to start server"
55
- exit 1
56
- fi
57
- ;;
58
-
59
- stop)
60
- if ! is_running; then
61
- echo "Server not running"
62
- exit 0
63
- fi
64
- PID=$(get_pid)
65
- echo "Stopping server (PID: ${PID})..."
66
- cmd.exe /c "taskkill /PID ${PID} /F" 2>&1
67
- echo "Server stopped"
68
- ;;
69
-
70
- status)
71
- if is_running; then
72
- echo "Server is RUNNING (PID: $(get_pid))"
73
- echo ""
74
- call_api "GET" "/health"
75
- else
76
- echo "Server is STOPPED"
77
- exit 1
78
- fi
79
- ;;
80
-
81
- health)
82
- if ! is_running; then
83
- echo '{"success":false,"error":"Server not running"}'
84
- exit 1
85
- fi
86
- call_api "GET" "/health"
87
- ;;
88
-
89
- auth)
90
- if ! is_running; then
91
- echo "Server not running. Start it first with: $0 start"
92
- exit 1
93
- fi
94
- echo "Launching authentication (Chrome will open)..."
95
- call_api "POST" "/setup-auth" '{"show_browser": true}'
96
- ;;
97
-
98
- ask)
99
- if [ -z "$2" ]; then
100
- echo "Usage: $0 ask \"your question here\" [notebook_id]"
101
- exit 1
102
- fi
103
- if ! is_running; then
104
- echo '{"success":false,"error":"Server not running"}'
105
- exit 1
106
- fi
107
- QUESTION="$2"
108
- NOTEBOOK_ID="${3:-}"
109
-
110
- if [ -n "$NOTEBOOK_ID" ]; then
111
- BODY="{\"question\": \"${QUESTION}\", \"notebook_id\": \"${NOTEBOOK_ID}\"}"
112
- else
113
- BODY="{\"question\": \"${QUESTION}\"}"
114
- fi
115
-
116
- call_api "POST" "/ask" "$BODY"
117
- ;;
118
-
119
- notebooks)
120
- if ! is_running; then
121
- echo '{"success":false,"error":"Server not running"}'
122
- exit 1
123
- fi
124
- call_api "GET" "/notebooks"
125
- ;;
126
-
127
- *)
128
- echo "NotebookLM MCP HTTP Server - WSL Helper"
129
- echo ""
130
- echo "Usage: $0 <command> [args]"
131
- echo ""
132
- echo "Commands:"
133
- echo " start Start the server (Windows background process)"
134
- echo " stop Stop the server"
135
- echo " status Check server status and health"
136
- echo " health Get health status (JSON)"
137
- echo " auth Launch authentication (opens Chrome)"
138
- echo " ask \"question\" Ask a question to the active notebook"
139
- echo " notebooks List available notebooks"
140
- echo ""
141
- echo "Examples:"
142
- echo " $0 start"
143
- echo " $0 ask \"What is the main topic?\" my-notebook"
144
- echo " $0 status"
145
- ;;
146
- esac
1
+ #!/bin/bash
2
+ # NotebookLM MCP HTTP Server - WSL Helper Script
3
+ # This script helps interact with the Windows-hosted MCP server from WSL
4
+ #
5
+ # Usage:
6
+ # ./mcp-wsl-helper.sh start Start the server (Windows)
7
+ # ./mcp-wsl-helper.sh stop Stop the server
8
+ # ./mcp-wsl-helper.sh status Check if server is running
9
+ # ./mcp-wsl-helper.sh health Get health status
10
+ # ./mcp-wsl-helper.sh ask "question" Ask a question to the active notebook
11
+ # ./mcp-wsl-helper.sh auth Launch authentication (opens Chrome)
12
+
13
+ set -e
14
+
15
+ MCP_PORT=3000
16
+ MCP_DIR="D:/Claude/notebooklm-mcp-http"
17
+
18
+ # Helper function to call the API via PowerShell (bypasses WSL network issues)
19
+ call_api() {
20
+ local method="$1"
21
+ local endpoint="$2"
22
+ local body="$3"
23
+
24
+ if [ -n "$body" ]; then
25
+ powershell.exe -Command "Invoke-RestMethod -Uri 'http://localhost:${MCP_PORT}${endpoint}' -Method ${method} -ContentType 'application/json' -Body '${body}' | ConvertTo-Json -Depth 10" 2>&1
26
+ else
27
+ powershell.exe -Command "Invoke-RestMethod -Uri 'http://localhost:${MCP_PORT}${endpoint}' -Method ${method} | ConvertTo-Json -Depth 10" 2>&1
28
+ fi
29
+ }
30
+
31
+ # Check if server is running
32
+ is_running() {
33
+ cmd.exe /c "netstat -ano | findstr :${MCP_PORT} | findstr LISTENING" >/dev/null 2>&1
34
+ }
35
+
36
+ # Get server PID
37
+ get_pid() {
38
+ cmd.exe /c "netstat -ano | findstr :${MCP_PORT} | findstr LISTENING" 2>/dev/null | awk '{print $5}' | tr -d '\r'
39
+ }
40
+
41
+ case "$1" in
42
+ start)
43
+ if is_running; then
44
+ echo "Server already running (PID: $(get_pid))"
45
+ exit 0
46
+ fi
47
+ echo "Starting NotebookLM MCP HTTP Server..."
48
+ powershell.exe -Command "Start-Process -NoNewWindow -FilePath 'node' -ArgumentList '${MCP_DIR}/dist/http-wrapper.js' -WorkingDirectory '${MCP_DIR}'" 2>&1
49
+ sleep 3
50
+ if is_running; then
51
+ echo "Server started successfully (PID: $(get_pid))"
52
+ echo "Health: http://localhost:${MCP_PORT}/health"
53
+ else
54
+ echo "Failed to start server"
55
+ exit 1
56
+ fi
57
+ ;;
58
+
59
+ stop)
60
+ if ! is_running; then
61
+ echo "Server not running"
62
+ exit 0
63
+ fi
64
+ PID=$(get_pid)
65
+ echo "Stopping server (PID: ${PID})..."
66
+ cmd.exe /c "taskkill /PID ${PID} /F" 2>&1
67
+ echo "Server stopped"
68
+ ;;
69
+
70
+ status)
71
+ if is_running; then
72
+ echo "Server is RUNNING (PID: $(get_pid))"
73
+ echo ""
74
+ call_api "GET" "/health"
75
+ else
76
+ echo "Server is STOPPED"
77
+ exit 1
78
+ fi
79
+ ;;
80
+
81
+ health)
82
+ if ! is_running; then
83
+ echo '{"success":false,"error":"Server not running"}'
84
+ exit 1
85
+ fi
86
+ call_api "GET" "/health"
87
+ ;;
88
+
89
+ auth)
90
+ if ! is_running; then
91
+ echo "Server not running. Start it first with: $0 start"
92
+ exit 1
93
+ fi
94
+ echo "Launching authentication (Chrome will open)..."
95
+ call_api "POST" "/setup-auth" '{"show_browser": true}'
96
+ ;;
97
+
98
+ ask)
99
+ if [ -z "$2" ]; then
100
+ echo "Usage: $0 ask \"your question here\" [notebook_id]"
101
+ exit 1
102
+ fi
103
+ if ! is_running; then
104
+ echo '{"success":false,"error":"Server not running"}'
105
+ exit 1
106
+ fi
107
+ QUESTION="$2"
108
+ NOTEBOOK_ID="${3:-}"
109
+
110
+ if [ -n "$NOTEBOOK_ID" ]; then
111
+ BODY="{\"question\": \"${QUESTION}\", \"notebook_id\": \"${NOTEBOOK_ID}\"}"
112
+ else
113
+ BODY="{\"question\": \"${QUESTION}\"}"
114
+ fi
115
+
116
+ call_api "POST" "/ask" "$BODY"
117
+ ;;
118
+
119
+ notebooks)
120
+ if ! is_running; then
121
+ echo '{"success":false,"error":"Server not running"}'
122
+ exit 1
123
+ fi
124
+ call_api "GET" "/notebooks"
125
+ ;;
126
+
127
+ *)
128
+ echo "NotebookLM MCP HTTP Server - WSL Helper"
129
+ echo ""
130
+ echo "Usage: $0 <command> [args]"
131
+ echo ""
132
+ echo "Commands:"
133
+ echo " start Start the server (Windows background process)"
134
+ echo " stop Stop the server"
135
+ echo " status Check server status and health"
136
+ echo " health Get health status (JSON)"
137
+ echo " auth Launch authentication (opens Chrome)"
138
+ echo " ask \"question\" Ask a question to the active notebook"
139
+ echo " notebooks List available notebooks"
140
+ echo ""
141
+ echo "Examples:"
142
+ echo " $0 start"
143
+ echo " $0 ask \"What is the main topic?\" my-notebook"
144
+ echo " $0 status"
145
+ ;;
146
+ esac
@@ -0,0 +1,13 @@
1
+ ' NotebookLM MCP Server - Démarrage silencieux
2
+ ' Lance le serveur HTTP sans fenêtre visible
3
+ ' Pour démarrage automatique : ajouter au dossier Démarrage Windows
4
+
5
+ Set WshShell = CreateObject("WScript.Shell")
6
+ WshShell.CurrentDirectory = "D:\Claude\notebooklm-mcp-http"
7
+
8
+ ' Définir les variables d'environnement
9
+ Set WshEnv = WshShell.Environment("Process")
10
+ WshEnv("DATA_DIR") = "C:\Users\romai\AppData\Local\notebooklm-mcp\Data"
11
+
12
+ ' Lancer le serveur en mode caché (0 = hidden)
13
+ WshShell.Run "node dist/http-wrapper.js", 0, False
File without changes
@@ -0,0 +1,37 @@
1
+ #!/bin/bash
2
+ # Start VNC services for browser visibility in Docker
3
+ # This allows users to see and interact with Chromium via noVNC web interface
4
+
5
+ set -e
6
+
7
+ DISPLAY_NUM="${DISPLAY_NUM:-99}"
8
+ VNC_PORT="${VNC_PORT:-5900}"
9
+ NOVNC_PORT="${NOVNC_PORT:-6080}"
10
+ SCREEN_RESOLUTION="${SCREEN_RESOLUTION:-1280x800x24}"
11
+
12
+ export DISPLAY=":${DISPLAY_NUM}"
13
+
14
+ echo "[VNC] Starting Xvfb on display :${DISPLAY_NUM}..."
15
+ Xvfb :${DISPLAY_NUM} -screen 0 ${SCREEN_RESOLUTION} -ac &
16
+ sleep 1
17
+
18
+ echo "[VNC] Starting fluxbox window manager..."
19
+ fluxbox &
20
+ sleep 1
21
+
22
+ echo "[VNC] Starting x11vnc on port ${VNC_PORT}..."
23
+ x11vnc -display :${DISPLAY_NUM} -forever -shared -rfbport ${VNC_PORT} -nopw -xkb &
24
+ sleep 1
25
+
26
+ echo "[VNC] Starting noVNC websockify on port ${NOVNC_PORT}..."
27
+ # noVNC location on Debian
28
+ NOVNC_DIR="/usr/share/novnc"
29
+ if [ -d "$NOVNC_DIR" ]; then
30
+ websockify --web=${NOVNC_DIR} ${NOVNC_PORT} localhost:${VNC_PORT} &
31
+ else
32
+ echo "[VNC] Warning: noVNC directory not found at ${NOVNC_DIR}"
33
+ websockify ${NOVNC_PORT} localhost:${VNC_PORT} &
34
+ fi
35
+
36
+ echo "[VNC] VNC services started successfully"
37
+ echo "[VNC] Access browser at: http://localhost:${NOVNC_PORT}/vnc.html"
@@ -0,0 +1,5 @@
1
+ @echo off
2
+ REM Arrête le serveur NotebookLM MCP
3
+ taskkill /F /FI "WINDOWTITLE eq node*http-wrapper*" 2>nul
4
+ taskkill /F /FI "IMAGENAME eq node.exe" /FI "MEMUSAGE gt 100000" 2>nul
5
+ echo Serveur arrêté.
File without changes
File without changes
File without changes