@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,140 +1,140 @@
1
- #!/usr/bin/env pwsh
2
- #Requires -Version 5.1
3
-
4
- <#
5
- .SYNOPSIS
6
- Quick test script - NotebookLM MCP HTTP Server
7
-
8
- .DESCRIPTION
9
- Basic validation tests to verify that the server is working
10
-
11
- .PARAMETER BaseUrl
12
- Server base URL (default: http://localhost:3000)
13
-
14
- .EXAMPLE
15
- .\test-server.ps1
16
- Run tests on http://localhost:3000
17
-
18
- .EXAMPLE
19
- .\test-server.ps1 -BaseUrl "http://localhost:8080"
20
- Run tests on a different port
21
-
22
- .NOTES
23
- Version: 1.3.0
24
- Prerequisites: The server must be started
25
- #>
26
-
27
- param(
28
- [string]$BaseUrl = "http://localhost:3000"
29
- )
30
-
31
- Write-Host "╔══════════════════════════════════════════════════════════╗" -ForegroundColor Cyan
32
- Write-Host "║ NotebookLM MCP - Quick Validation Tests ║" -ForegroundColor Cyan
33
- Write-Host "╚══════════════════════════════════════════════════════════╝" -ForegroundColor Cyan
34
- Write-Host ""
35
- Write-Host "Server being tested: $BaseUrl" -ForegroundColor Gray
36
- Write-Host ""
37
-
38
- $allPassed = $true
39
-
40
- # Test 1: Health Check
41
- Write-Host "Test 1: Health Check" -ForegroundColor Yellow
42
- Write-Host " GET $BaseUrl/health" -ForegroundColor Gray
43
-
44
- try {
45
- $response = Invoke-RestMethod -Uri "$BaseUrl/health" -Method Get -TimeoutSec 5
46
- if ($response.success -eq $true) {
47
- Write-Host " ✅ PASS - Server operational" -ForegroundColor Green
48
- Write-Host " Authenticated: $($response.data.authenticated)" -ForegroundColor Gray
49
- Write-Host " Sessions: $($response.data.sessions)" -ForegroundColor Gray
50
- Write-Host " Notebooks: $($response.data.library_notebooks)" -ForegroundColor Gray
51
- } else {
52
- Write-Host " ❌ FAIL - success=false" -ForegroundColor Red
53
- $allPassed = $false
54
- }
55
- } catch {
56
- Write-Host " ❌ FAIL - $($_.Exception.Message)" -ForegroundColor Red
57
- $allPassed = $false
58
- }
59
-
60
- Write-Host ""
61
-
62
- # Test 2: List Notebooks
63
- Write-Host "Test 2: List Notebooks" -ForegroundColor Yellow
64
- Write-Host " GET $BaseUrl/notebooks" -ForegroundColor Gray
65
-
66
- try {
67
- $response = Invoke-RestMethod -Uri "$BaseUrl/notebooks" -Method Get -TimeoutSec 5
68
- if ($response.success -eq $true) {
69
- Write-Host " ✅ PASS - Endpoint working" -ForegroundColor Green
70
- $count = $response.data.notebooks.Count
71
- Write-Host " Notebooks found: $count" -ForegroundColor Gray
72
- } else {
73
- Write-Host " ❌ FAIL - success=false" -ForegroundColor Red
74
- $allPassed = $false
75
- }
76
- } catch {
77
- Write-Host " ❌ FAIL - $($_.Exception.Message)" -ForegroundColor Red
78
- $allPassed = $false
79
- }
80
-
81
- Write-Host ""
82
-
83
- # Test 3: Ask Question (optional - requires authentication and notebook)
84
- Write-Host "Test 3: Ask Question (authentication + notebook required)" -ForegroundColor Yellow
85
- Write-Host " POST $BaseUrl/ask" -ForegroundColor Gray
86
-
87
- # Get notebooks to use the first available one
88
- try {
89
- $notebooks = Invoke-RestMethod -Uri "$BaseUrl/notebooks" -Method Get -TimeoutSec 5
90
- $firstNotebookId = if ($notebooks.data.notebooks.Count -gt 0) { $notebooks.data.notebooks[0].id } else { $null }
91
- } catch {
92
- $firstNotebookId = $null
93
- }
94
-
95
- if ($firstNotebookId) {
96
- $body = @{
97
- question = "Connection test: just answer OK"
98
- notebook_id = $firstNotebookId
99
- } | ConvertTo-Json
100
-
101
- Write-Host " Using notebook: $firstNotebookId" -ForegroundColor Gray
102
-
103
- try {
104
- $response = Invoke-RestMethod -Uri "$BaseUrl/ask" -Method Post -Body $body -ContentType "application/json" -TimeoutSec 60
105
- if ($response.success -eq $true) {
106
- Write-Host " ✅ PASS - Question processed" -ForegroundColor Green
107
- Write-Host " Answer length: $($response.data.answer.Length) chars" -ForegroundColor Gray
108
- Write-Host " Session ID: $($response.data.session_id)" -ForegroundColor Gray
109
- } else {
110
- Write-Host " ⚠️ WARN - $($response.error)" -ForegroundColor Yellow
111
- Write-Host " (Normal if not authenticated)" -ForegroundColor Gray
112
- }
113
- } catch {
114
- Write-Host " ⚠️ WARN - $($_.Exception.Message)" -ForegroundColor Yellow
115
- Write-Host " (Normal if authentication not configured)" -ForegroundColor Gray
116
- }
117
- } else {
118
- Write-Host " ⚠️ SKIP - No notebook configured" -ForegroundColor Yellow
119
- Write-Host " To test: add a notebook with POST /notebooks" -ForegroundColor Gray
120
- }
121
-
122
- Write-Host ""
123
- Write-Host "════════════════════════════════════════════════════════════" -ForegroundColor Gray
124
- Write-Host ""
125
-
126
- if ($allPassed) {
127
- Write-Host "✅ ALL TESTS PASSED!" -ForegroundColor Green
128
- Write-Host ""
129
- Write-Host "📖 Next steps:" -ForegroundColor Cyan
130
- Write-Host " - Check the API documentation: .\deployment\docs\03-API.md" -ForegroundColor White
131
- Write-Host " - Integrate with n8n: .\deployment\docs\04-N8N-INTEGRATION.md" -ForegroundColor White
132
- Write-Host ""
133
- } else {
134
- Write-Host "❌ SOME TESTS FAILED" -ForegroundColor Red
135
- Write-Host ""
136
- Write-Host "📖 Check the troubleshooting guide:" -ForegroundColor Yellow
137
- Write-Host " .\deployment\docs\05-TROUBLESHOOTING.md" -ForegroundColor White
138
- Write-Host ""
139
- exit 1
140
- }
1
+ #!/usr/bin/env pwsh
2
+ #Requires -Version 5.1
3
+
4
+ <#
5
+ .SYNOPSIS
6
+ Quick test script - NotebookLM MCP HTTP Server
7
+
8
+ .DESCRIPTION
9
+ Basic validation tests to verify that the server is working
10
+
11
+ .PARAMETER BaseUrl
12
+ Server base URL (default: http://localhost:3000)
13
+
14
+ .EXAMPLE
15
+ .\test-server.ps1
16
+ Run tests on http://localhost:3000
17
+
18
+ .EXAMPLE
19
+ .\test-server.ps1 -BaseUrl "http://localhost:8080"
20
+ Run tests on a different port
21
+
22
+ .NOTES
23
+ Version: 1.3.0
24
+ Prerequisites: The server must be started
25
+ #>
26
+
27
+ param(
28
+ [string]$BaseUrl = "http://localhost:3000"
29
+ )
30
+
31
+ Write-Host "╔══════════════════════════════════════════════════════════╗" -ForegroundColor Cyan
32
+ Write-Host "║ NotebookLM MCP - Quick Validation Tests ║" -ForegroundColor Cyan
33
+ Write-Host "╚══════════════════════════════════════════════════════════╝" -ForegroundColor Cyan
34
+ Write-Host ""
35
+ Write-Host "Server being tested: $BaseUrl" -ForegroundColor Gray
36
+ Write-Host ""
37
+
38
+ $allPassed = $true
39
+
40
+ # Test 1: Health Check
41
+ Write-Host "Test 1: Health Check" -ForegroundColor Yellow
42
+ Write-Host " GET $BaseUrl/health" -ForegroundColor Gray
43
+
44
+ try {
45
+ $response = Invoke-RestMethod -Uri "$BaseUrl/health" -Method Get -TimeoutSec 5
46
+ if ($response.success -eq $true) {
47
+ Write-Host " ✅ PASS - Server operational" -ForegroundColor Green
48
+ Write-Host " Authenticated: $($response.data.authenticated)" -ForegroundColor Gray
49
+ Write-Host " Sessions: $($response.data.sessions)" -ForegroundColor Gray
50
+ Write-Host " Notebooks: $($response.data.library_notebooks)" -ForegroundColor Gray
51
+ } else {
52
+ Write-Host " ❌ FAIL - success=false" -ForegroundColor Red
53
+ $allPassed = $false
54
+ }
55
+ } catch {
56
+ Write-Host " ❌ FAIL - $($_.Exception.Message)" -ForegroundColor Red
57
+ $allPassed = $false
58
+ }
59
+
60
+ Write-Host ""
61
+
62
+ # Test 2: List Notebooks
63
+ Write-Host "Test 2: List Notebooks" -ForegroundColor Yellow
64
+ Write-Host " GET $BaseUrl/notebooks" -ForegroundColor Gray
65
+
66
+ try {
67
+ $response = Invoke-RestMethod -Uri "$BaseUrl/notebooks" -Method Get -TimeoutSec 5
68
+ if ($response.success -eq $true) {
69
+ Write-Host " ✅ PASS - Endpoint working" -ForegroundColor Green
70
+ $count = $response.data.notebooks.Count
71
+ Write-Host " Notebooks found: $count" -ForegroundColor Gray
72
+ } else {
73
+ Write-Host " ❌ FAIL - success=false" -ForegroundColor Red
74
+ $allPassed = $false
75
+ }
76
+ } catch {
77
+ Write-Host " ❌ FAIL - $($_.Exception.Message)" -ForegroundColor Red
78
+ $allPassed = $false
79
+ }
80
+
81
+ Write-Host ""
82
+
83
+ # Test 3: Ask Question (optional - requires authentication and notebook)
84
+ Write-Host "Test 3: Ask Question (authentication + notebook required)" -ForegroundColor Yellow
85
+ Write-Host " POST $BaseUrl/ask" -ForegroundColor Gray
86
+
87
+ # Get notebooks to use the first available one
88
+ try {
89
+ $notebooks = Invoke-RestMethod -Uri "$BaseUrl/notebooks" -Method Get -TimeoutSec 5
90
+ $firstNotebookId = if ($notebooks.data.notebooks.Count -gt 0) { $notebooks.data.notebooks[0].id } else { $null }
91
+ } catch {
92
+ $firstNotebookId = $null
93
+ }
94
+
95
+ if ($firstNotebookId) {
96
+ $body = @{
97
+ question = "Connection test: just answer OK"
98
+ notebook_id = $firstNotebookId
99
+ } | ConvertTo-Json
100
+
101
+ Write-Host " Using notebook: $firstNotebookId" -ForegroundColor Gray
102
+
103
+ try {
104
+ $response = Invoke-RestMethod -Uri "$BaseUrl/ask" -Method Post -Body $body -ContentType "application/json" -TimeoutSec 60
105
+ if ($response.success -eq $true) {
106
+ Write-Host " ✅ PASS - Question processed" -ForegroundColor Green
107
+ Write-Host " Answer length: $($response.data.answer.Length) chars" -ForegroundColor Gray
108
+ Write-Host " Session ID: $($response.data.session_id)" -ForegroundColor Gray
109
+ } else {
110
+ Write-Host " ⚠️ WARN - $($response.error)" -ForegroundColor Yellow
111
+ Write-Host " (Normal if not authenticated)" -ForegroundColor Gray
112
+ }
113
+ } catch {
114
+ Write-Host " ⚠️ WARN - $($_.Exception.Message)" -ForegroundColor Yellow
115
+ Write-Host " (Normal if authentication not configured)" -ForegroundColor Gray
116
+ }
117
+ } else {
118
+ Write-Host " ⚠️ SKIP - No notebook configured" -ForegroundColor Yellow
119
+ Write-Host " To test: add a notebook with POST /notebooks" -ForegroundColor Gray
120
+ }
121
+
122
+ Write-Host ""
123
+ Write-Host "════════════════════════════════════════════════════════════" -ForegroundColor Gray
124
+ Write-Host ""
125
+
126
+ if ($allPassed) {
127
+ Write-Host "✅ ALL TESTS PASSED!" -ForegroundColor Green
128
+ Write-Host ""
129
+ Write-Host "📖 Next steps:" -ForegroundColor Cyan
130
+ Write-Host " - Check the API documentation: .\deployment\docs\03-API.md" -ForegroundColor White
131
+ Write-Host " - Integrate with n8n: .\deployment\docs\04-N8N-INTEGRATION.md" -ForegroundColor White
132
+ Write-Host ""
133
+ } else {
134
+ Write-Host "❌ SOME TESTS FAILED" -ForegroundColor Red
135
+ Write-Host ""
136
+ Write-Host "📖 Check the troubleshooting guide:" -ForegroundColor Yellow
137
+ Write-Host " .\deployment\docs\05-TROUBLESHOOTING.md" -ForegroundColor White
138
+ Write-Host ""
139
+ exit 1
140
+ }