@roomi-fields/notebooklm-mcp 1.5.4 → 1.5.8

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 (133) hide show
  1. package/README.md +2 -2
  2. package/deployment/docs/01-INSTALL.md +21 -1
  3. package/deployment/docs/03-API.md +16 -10
  4. package/deployment/docs/05-TROUBLESHOOTING.md +19 -1
  5. package/deployment/docs/06-NOTEBOOK-LIBRARY.md +9 -9
  6. package/deployment/docs/07-AUTO-DISCOVERY.md +6 -15
  7. package/deployment/docs/08-WSL-USAGE.md +7 -7
  8. package/deployment/docs/09-MULTI-INTERFACE.md +6 -6
  9. package/deployment/docs/11-MULTI-ACCOUNT.md +1 -1
  10. package/dist/accounts/account-manager.d.ts +15 -0
  11. package/dist/accounts/account-manager.d.ts.map +1 -1
  12. package/dist/accounts/account-manager.js +104 -0
  13. package/dist/accounts/account-manager.js.map +1 -1
  14. package/dist/accounts/auto-login-manager.d.ts.map +1 -1
  15. package/dist/accounts/auto-login-manager.js +29 -25
  16. package/dist/accounts/auto-login-manager.js.map +1 -1
  17. package/dist/auth/auth-manager.d.ts +1 -1
  18. package/dist/auth/auth-manager.d.ts.map +1 -1
  19. package/dist/auth/auth-manager.js +14 -9
  20. package/dist/auth/auth-manager.js.map +1 -1
  21. package/dist/cli/help.js +5 -0
  22. package/dist/cli/help.js.map +1 -1
  23. package/dist/cli/setup-auth.js +18 -10
  24. package/dist/cli/setup-auth.js.map +1 -1
  25. package/dist/content/content-manager.d.ts +8 -0
  26. package/dist/content/content-manager.d.ts.map +1 -1
  27. package/dist/content/content-manager.js +411 -67
  28. package/dist/content/content-manager.js.map +1 -1
  29. package/dist/http-wrapper.d.ts.map +1 -1
  30. package/dist/http-wrapper.js +148 -3
  31. package/dist/http-wrapper.js.map +1 -1
  32. package/dist/session/browser-session.d.ts +12 -0
  33. package/dist/session/browser-session.d.ts.map +1 -1
  34. package/dist/session/browser-session.js +313 -65
  35. package/dist/session/browser-session.js.map +1 -1
  36. package/dist/session/shared-context-manager.d.ts.map +1 -1
  37. package/dist/session/shared-context-manager.js +22 -2
  38. package/dist/session/shared-context-manager.js.map +1 -1
  39. package/dist/startup/startup-manager.d.ts +8 -0
  40. package/dist/startup/startup-manager.d.ts.map +1 -1
  41. package/dist/startup/startup-manager.js +176 -28
  42. package/dist/startup/startup-manager.js.map +1 -1
  43. package/dist/stdio-http-proxy.js +91 -16
  44. package/dist/stdio-http-proxy.js.map +1 -1
  45. package/dist/tools/index.d.ts +1 -0
  46. package/dist/tools/index.d.ts.map +1 -1
  47. package/dist/tools/index.js +52 -32
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/utils/citation-extractor.d.ts +6 -7
  50. package/dist/utils/citation-extractor.d.ts.map +1 -1
  51. package/dist/utils/citation-extractor.js +138 -329
  52. package/dist/utils/citation-extractor.js.map +1 -1
  53. package/dist/utils/page-utils.d.ts +5 -0
  54. package/dist/utils/page-utils.d.ts.map +1 -1
  55. package/dist/utils/page-utils.js +73 -16
  56. package/dist/utils/page-utils.js.map +1 -1
  57. package/package.json +6 -2
  58. package/scripts/archive/add-and-activate-notebook.ps1 +4 -4
  59. package/scripts/archive/add-new-notebook.ps1 +4 -4
  60. package/scripts/archive/add-rom1pey.ps1 +2 -2
  61. package/scripts/archive/add-rpmonster.ps1 +2 -2
  62. package/scripts/archive/add-source-debug.ps1 +1 -1
  63. package/scripts/archive/add-source-e2e.ps1 +1 -1
  64. package/scripts/archive/add-source-visible.ps1 +1 -1
  65. package/scripts/archive/add-test-notebook.ps1 +1 -1
  66. package/scripts/archive/add-test-source.ps1 +1 -1
  67. package/scripts/archive/capture-screen.ps1 +1 -1
  68. package/scripts/archive/change-language.mjs +4 -3
  69. package/scripts/archive/change-language.ts +5 -3
  70. package/scripts/archive/create-notebook.ps1 +2 -2
  71. package/scripts/archive/create-rom1pey-notebook.ps1 +2 -2
  72. package/scripts/archive/create-rom1pey.ps1 +2 -2
  73. package/scripts/archive/debug-add-text-source.ps1 +4 -4
  74. package/scripts/archive/debug-selectors.ps1 +1 -1
  75. package/scripts/archive/discover-home.ps1 +2 -2
  76. package/scripts/archive/navigate-home-visible.ps1 +1 -1
  77. package/scripts/archive/navigate-home.ps1 +1 -1
  78. package/scripts/archive/run-e2e-english.ps1 +3 -3
  79. package/scripts/archive/run-e2e-rom1pey-v2.ps1 +4 -4
  80. package/scripts/archive/run-e2e-rom1pey.ps1 +4 -4
  81. package/scripts/archive/setup-english-test.ps1 +6 -6
  82. package/scripts/archive/setup-test-notebook.ps1 +1 -1
  83. package/scripts/archive/simple-add-source.ps1 +1 -1
  84. package/scripts/archive/t10.ps1 +1 -1
  85. package/scripts/archive/t20.ps1 +1 -1
  86. package/scripts/archive/t30.ps1 +1 -1
  87. package/scripts/archive/t31.ps1 +1 -1
  88. package/scripts/archive/t32.ps1 +1 -1
  89. package/scripts/archive/t53.ps1 +1 -1
  90. package/scripts/archive/test-access.ps1 +1 -1
  91. package/scripts/archive/test-add-delete-source.ps1 +4 -4
  92. package/scripts/archive/test-add-source-visible.ps1 +1 -1
  93. package/scripts/archive/test-add-source.ps1 +1 -1
  94. package/scripts/archive/test-add-text-debug.ps1 +2 -2
  95. package/scripts/archive/test-ask-headed.ps1 +1 -1
  96. package/scripts/archive/test-delete-source.ps1 +4 -4
  97. package/scripts/archive/test-e2e-notebook.ps1 +2 -2
  98. package/scripts/archive/test-english-notebook.ps1 +4 -4
  99. package/scripts/archive/test-english.ps1 +1 -1
  100. package/scripts/archive/test-full-custom-instructions.ps1 +1 -1
  101. package/scripts/archive/test-full-infographic.ps1 +1 -1
  102. package/scripts/archive/test-full-language.ps1 +1 -1
  103. package/scripts/archive/test-full-presentation.ps1 +1 -1
  104. package/scripts/archive/test-full-report.ps1 +1 -1
  105. package/scripts/archive/test-full-source-selection.ps1 +1 -1
  106. package/scripts/archive/test-full-video-brief.ps1 +1 -1
  107. package/scripts/archive/test-full-video-explainer.ps1 +1 -1
  108. package/scripts/archive/test-full-video-styles.ps1 +1 -1
  109. package/scripts/archive/test-headed-ask.ps1 +1 -1
  110. package/scripts/archive/test-headed-now.ps1 +2 -2
  111. package/scripts/archive/test-headed.ps1 +2 -2
  112. package/scripts/archive/test-hello.ps1 +1 -1
  113. package/scripts/archive/test-manual-headed.ps1 +1 -1
  114. package/scripts/archive/test-mathieu-quota.ps1 +1 -1
  115. package/scripts/archive/test-personal-notebook.ps1 +1 -1
  116. package/scripts/archive/test-rate-limit.ps1 +1 -1
  117. package/scripts/archive/test-real-ask.ps1 +1 -1
  118. package/scripts/archive/test-real-ask2.ps1 +1 -1
  119. package/scripts/archive/test-rom1pey.ps1 +1 -1
  120. package/scripts/archive/test-rotation-complete.ps1 +1 -1
  121. package/scripts/archive/test-rotation.ps1 +2 -2
  122. package/scripts/archive/test-show-browser.ps1 +1 -1
  123. package/scripts/archive/test-update-notebook.ps1 +1 -1
  124. package/scripts/archive/verify-language-slow.ps1 +1 -1
  125. package/scripts/archive/verify-language.ps1 +1 -1
  126. package/scripts/docker-entrypoint.sh +3 -7
  127. package/scripts/doctor.mjs +257 -0
  128. package/scripts/mcp-proxy-hidden.ps1 +31 -0
  129. package/scripts/mcp-wsl-helper.sh +1 -1
  130. package/scripts/start-server-hidden.vbs +16 -0
  131. package/scripts/start-server.ps1 +1 -1
  132. package/scripts/stop-server.bat +5 -0
  133. package/scripts/switch-account-language.sh +87 -128
@@ -2,7 +2,7 @@
2
2
  $types = @("faq", "study_guide", "briefing_doc", "timeline", "table_of_contents")
3
3
  $allPass = $true
4
4
  foreach ($t in $types) {
5
- $body = @{ notebook_url = "https://notebooklm.google.com/notebook/725d28e1"; content_type = $t } | ConvertTo-Json
5
+ $body = @{ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"; content_type = $t } | ConvertTo-Json
6
6
  try {
7
7
  Invoke-RestMethod -Uri "http://localhost:3000/content/generate" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 5 | Out-Null
8
8
  $allPass = $false
@@ -1,5 +1,5 @@
1
1
  # Test 32: Reject video_style for non-video
2
- $body = @{ notebook_url = "https://notebooklm.google.com/notebook/725d28e1"; content_type = "report"; video_style = "classroom" } | ConvertTo-Json
2
+ $body = @{ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"; content_type = "report"; video_style = "classroom" } | ConvertTo-Json
3
3
  try {
4
4
  Invoke-RestMethod -Uri "http://localhost:3000/content/generate" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 5 | Out-Null
5
5
  Write-Host "FAIL"
@@ -1,5 +1,5 @@
1
1
  # Test 53: Missing question - should fail
2
- $body = @{ notebook_id = "e2e-rom1pey-test" } | ConvertTo-Json
2
+ $body = @{ notebook_id = "e2e-agent-tertiary-test" } | ConvertTo-Json
3
3
  try {
4
4
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 10
5
5
  Write-Host "FAIL: Should have returned error"
@@ -1,5 +1,5 @@
1
1
  # Test access to e2e-test-notebook (which should have been created by tests)
2
- Write-Host "=== Testing notebook access with rom1pey ===" -ForegroundColor Cyan
2
+ Write-Host "=== Testing notebook access with agent-tertiary ===" -ForegroundColor Cyan
3
3
 
4
4
  # First activate e2e-test-notebook
5
5
  Write-Host "`nActivating e2e-test-notebook..."
@@ -1,12 +1,12 @@
1
1
  # Complete test: Add source, verify, delete, verify
2
2
  Write-Host "=== Complete Add/Delete Source Test ===" -ForegroundColor Cyan
3
- Write-Host "Notebook: 3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f" -ForegroundColor Gray
3
+ Write-Host "Notebook: 00000000-0000-0000-0000-000000000109" -ForegroundColor Gray
4
4
 
5
5
  # Step 1: Add a text source
6
6
  Write-Host "`n--- Step 1: Adding text source ---" -ForegroundColor Yellow
7
7
  $uniqueId = Get-Date -Format "HHmmss"
8
8
  $body = @{
9
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
9
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
10
10
  source_type = "text"
11
11
  text = "Test source for add/delete verification. Unique ID: $uniqueId. This is test content."
12
12
  title = "TEST-DELETE-$uniqueId"
@@ -29,7 +29,7 @@ Write-Host "`nSource added with name: $sourceName" -ForegroundColor Green
29
29
  Write-Host "`n--- Step 2: Waiting 5 seconds and verifying source exists ---" -ForegroundColor Yellow
30
30
  Start-Sleep -Seconds 5
31
31
 
32
- $listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f" -Method GET
32
+ $listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
33
33
  $sourceCount = $listResult.data.sources.Count
34
34
  Write-Host "Total sources in notebook: $sourceCount" -ForegroundColor Gray
35
35
 
@@ -44,7 +44,7 @@ if ($foundSource) {
44
44
 
45
45
  # Step 3: Delete the source
46
46
  Write-Host "`n--- Step 3: Deleting source by name '$sourceName' ---" -ForegroundColor Yellow
47
- $deleteUrl = "http://localhost:3000/content/sources?source_name=$([System.Web.HttpUtility]::UrlEncode($sourceName))&notebook_url=https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f&show_browser=true"
47
+ $deleteUrl = "http://localhost:3000/content/sources?source_name=$([System.Web.HttpUtility]::UrlEncode($sourceName))&notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109&show_browser=true"
48
48
  Write-Host "DELETE URL: $deleteUrl" -ForegroundColor Gray
49
49
 
50
50
  try {
@@ -1,7 +1,7 @@
1
1
  # Test add source with visible browser
2
2
  Write-Host "=== Testing add source with VISIBLE browser ===" -ForegroundColor Cyan
3
3
  $body = @{
4
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
4
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
5
5
  source_type = "text"
6
6
  text = "Test content for debugging the text upload issue."
7
7
  title = "DEBUG-TEST-SOURCE"
@@ -3,7 +3,7 @@ $body = @{
3
3
  source_type = "text"
4
4
  text = "Debug test content - testing selectors"
5
5
  title = "Debug Test"
6
- notebook_url = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
6
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000108"
7
7
  show_browser = $true
8
8
  } | ConvertTo-Json
9
9
 
@@ -1,10 +1,10 @@
1
1
  # Test adding a text source with debug logging
2
2
  $uniqueId = (Get-Date).ToString("HHmmss")
3
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
 
5
5
  Write-Host "`n=== Testing add_source (text) with debug ===" -ForegroundColor Cyan
6
6
  Write-Host "Notebook URL: $notebookUrl"
7
- Write-Host "Expected UUID: 3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f`n"
7
+ Write-Host "Expected UUID: 00000000-0000-0000-0000-000000000109`n"
8
8
 
9
9
  $body = @{
10
10
  notebook_url = $notebookUrl
@@ -14,7 +14,7 @@ Start-Sleep -Seconds 2
14
14
 
15
15
  # Start server in background with headed mode
16
16
  $env:HEADLESS = "false"
17
- Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\Claude\notebooklm-mcp-http && set HEADLESS=false && node dist/http-wrapper.js" -WindowStyle Normal
17
+ Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\path\to\notebooklm-mcp && set HEADLESS=false && node dist/http-wrapper.js" -WindowStyle Normal
18
18
 
19
19
  Write-Host "Waiting for server to start..."
20
20
  Start-Sleep -Seconds 5
@@ -1,7 +1,7 @@
1
1
  # Test 1: Add a text source
2
2
  Write-Host "=== STEP 1: Adding test source ===" -ForegroundColor Cyan
3
3
  $addBody = @{
4
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
4
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
5
5
  source_type = "text"
6
6
  text = "This is a test source for deletion testing. Created at $(Get-Date)"
7
7
  title = "DELETE-ME-TEST-SOURCE"
@@ -17,21 +17,21 @@ Start-Sleep -Seconds 10
17
17
 
18
18
  # List sources to verify it was added
19
19
  Write-Host "`n=== STEP 3: Listing sources to verify ===" -ForegroundColor Cyan
20
- $listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f" -Method GET
20
+ $listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
21
21
  $testSource = $listResult.data.sources | Where-Object { $_.name -like "*DELETE-ME*" }
22
22
  Write-Host "Found test source:" -ForegroundColor Yellow
23
23
  $testSource | ConvertTo-Json -Depth 3
24
24
 
25
25
  # Delete the source
26
26
  Write-Host "`n=== STEP 4: Deleting source by name ===" -ForegroundColor Cyan
27
- $deleteResult = Invoke-RestMethod -Uri "http://localhost:3000/content/sources?source_name=DELETE-ME-TEST-SOURCE&notebook_url=https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f" -Method DELETE
27
+ $deleteResult = Invoke-RestMethod -Uri "http://localhost:3000/content/sources?source_name=DELETE-ME-TEST-SOURCE&notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method DELETE
28
28
  Write-Host "Delete result:" -ForegroundColor Yellow
29
29
  $deleteResult | ConvertTo-Json -Depth 5
30
30
 
31
31
  # Verify deletion
32
32
  Write-Host "`n=== STEP 5: Verifying deletion ===" -ForegroundColor Cyan
33
33
  Start-Sleep -Seconds 3
34
- $verifyResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f" -Method GET
34
+ $verifyResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
35
35
  $stillExists = $verifyResult.data.sources | Where-Object { $_.name -like "*DELETE-ME*" }
36
36
  if ($stillExists) {
37
37
  Write-Host "FAIL: Source still exists!" -ForegroundColor Red
@@ -1,4 +1,4 @@
1
- # Test access to e2e-test-notebook with rom1pey
1
+ # Test access to e2e-test-notebook with agent-tertiary
2
2
  Write-Host "=== Testing e2e-test-notebook with visible browser ===" -ForegroundColor Cyan
3
3
 
4
4
  # Activate it
@@ -17,5 +17,5 @@ try {
17
17
  Write-Host "SUCCESS! Answer: $($response.data.answer.Substring(0, [Math]::Min(200, $response.data.answer.Length)))..." -ForegroundColor Green
18
18
  } catch {
19
19
  Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
20
- Write-Host "This notebook is probably not accessible to rom1pey" -ForegroundColor Yellow
20
+ Write-Host "This notebook is probably not accessible to agent-tertiary" -ForegroundColor Yellow
21
21
  }
@@ -1,4 +1,4 @@
1
- # Test with the newly created notebook (owned by rom1pey)
1
+ # Test with the newly created notebook (owned by agent-tertiary)
2
2
  $body = @{
3
3
  notebook_id = "english-test"
4
4
  source_type = "url"
@@ -9,12 +9,12 @@ $body = @{
9
9
  # First add the notebook
10
10
  $addBody = @{
11
11
  name = "english-test"
12
- url = "https://notebooklm.google.com/notebook/258f62a1-8658-4f96-8333-a9e16224f602"
12
+ url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000110"
13
13
  } | ConvertTo-Json
14
14
 
15
- Write-Host "Adding notebook owned by rom1pey..."
15
+ Write-Host "Adding notebook owned by agent-tertiary..."
16
16
  Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method POST -ContentType "application/json" -Body $addBody -TimeoutSec 60
17
17
 
18
- Write-Host "`nTesting URL source on rom1pey's notebook..."
18
+ Write-Host "`nTesting URL source on agent-tertiary's notebook..."
19
19
  $response = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
20
20
  $response | ConvertTo-Json -Depth 5
@@ -1,6 +1,6 @@
1
1
  $body = @{
2
2
  question = "Hello, what is this notebook about?"
3
- notebook_url = "https://notebooklm.google.com/notebook/3f4e9685-333d-429e-8b82-45cee95c6748"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000111"
4
4
  } | ConvertTo-Json
5
5
 
6
6
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Custom Instructions (4 tests)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
  $passed = 0
4
4
  $failed = 0
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Infographic Formats (2 tests)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
  $formats = @("horizontal", "vertical")
4
4
 
5
5
  $passed = 0
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Language option (1 test)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
 
4
4
  Write-Host "`n=== Testing language = fr ===" -ForegroundColor Cyan
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Presentation Options (5 tests)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
  $passed = 0
4
4
  $failed = 0
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Report Formats (2 tests)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
  $formats = @("summary", "detailed")
4
4
 
5
5
  $passed = 0
@@ -1,6 +1,6 @@
1
1
  # Test FULL: Source Selection (1 test)
2
2
  Add-Type -AssemblyName System.Web
3
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
  $encodedUrl = [System.Uri]::EscapeDataString($notebookUrl)
5
5
 
6
6
  Write-Host "`n=== Testing source selection ===" -ForegroundColor Cyan
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Video format = brief
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
 
4
4
  Write-Host "`n=== FULL TEST: Video Format = brief ===" -ForegroundColor Cyan
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Test FULL: Video format = explainer
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
 
4
4
  Write-Host "`n=== FULL TEST: Video Format = explainer ===" -ForegroundColor Cyan
5
5
 
@@ -1,5 +1,5 @@
1
1
  # Test FULL: All Video Styles (6 tests)
2
- $notebookUrl = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
2
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
3
3
  $styles = @("classroom", "documentary", "animated", "corporate", "cinematic", "minimalist")
4
4
 
5
5
  $passed = 0
@@ -1,7 +1,7 @@
1
1
  # Test /ask avec navigateur visible
2
2
  $body = @{
3
3
  question = "What is IFS therapy?"
4
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
4
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
5
5
  show_browser = $true
6
6
  } | ConvertTo-Json
7
7
 
@@ -1,9 +1,9 @@
1
1
  $body = @{
2
2
  question = "Quel est le theme principal?"
3
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
  show_browser = $true
5
5
  } | ConvertTo-Json
6
6
 
7
- Write-Host "Lancement test HEADED avec mathieudumont31..."
7
+ Write-Host "Lancement test HEADED avec agent-primary..."
8
8
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 300
9
9
  $response | ConvertTo-Json -Depth 3
@@ -1,9 +1,9 @@
1
1
  $body = @{
2
2
  question = "Quel est le theme principal?"
3
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
  headless = $false
5
5
  } | ConvertTo-Json
6
6
 
7
- Write-Host "Testing HEADED with mathieudumont31..."
7
+ Write-Host "Testing HEADED with agent-primary..."
8
8
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 180
9
9
  $response | ConvertTo-Json -Depth 10
@@ -1,6 +1,6 @@
1
1
  $body = @{
2
2
  question = "Hello, what is this notebook about?"
3
- notebook_url = "https://notebooklm.google.com/notebook/74912e55-34a4-4027-bdcc-8e89badd0efd"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000112"
4
4
  } | ConvertTo-Json
5
5
 
6
6
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
@@ -6,7 +6,7 @@ Start-Sleep -Seconds 2
6
6
  # Set headed mode and start server
7
7
  $env:HEADLESS = "false"
8
8
  Write-Host "Starting server in HEADED mode (you'll see the browser)..."
9
- Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\Claude\notebooklm-mcp-http && set HEADLESS=false && node dist/http-wrapper.js" -NoNewWindow
9
+ Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\path\to\notebooklm-mcp && set HEADLESS=false && node dist/http-wrapper.js" -NoNewWindow
10
10
 
11
11
  Write-Host "Waiting for server..."
12
12
  Start-Sleep -Seconds 6
@@ -3,6 +3,6 @@ $body = @{
3
3
  show_browser = $true
4
4
  } | ConvertTo-Json
5
5
 
6
- Write-Host "Testing with mathieudumont (should hit rate limit)..."
6
+ Write-Host "Testing with agent-primary (should hit rate limit)..."
7
7
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
8
8
  $response | ConvertTo-Json -Depth 10
@@ -1,6 +1,6 @@
1
1
  # Test access to personal notebook on port 3001
2
2
  $body = @{
3
- url = "https://notebooklm.google.com/notebook/ce42b898-330e-45cc-96ad-ff748c1576d8"
3
+ url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000113"
4
4
  name = "Mon Notebook Perso"
5
5
  description = "Test notebook personnel"
6
6
  topics = @("test")
@@ -1,6 +1,6 @@
1
1
  $body = @{
2
2
  question = "What is IFS therapy?"
3
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
  show_browser = $true
5
5
  } | ConvertTo-Json
6
6
 
@@ -6,7 +6,7 @@ Write-Host ""
6
6
 
7
7
  # Add a test notebook
8
8
  $notebook = @{
9
- url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
9
+ url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
10
10
  name = "Test E2E"
11
11
  description = "Notebook pour tests E2E"
12
12
  topics = @("test", "e2e")
@@ -4,7 +4,7 @@ Write-Host ""
4
4
 
5
5
  $body = @{
6
6
  question = "What is this notebook about?"
7
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
7
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
8
8
  } | ConvertTo-Json
9
9
 
10
10
  Write-Host "Asking question with direct notebook URL..."
@@ -1,6 +1,6 @@
1
1
  $body = @{
2
2
  question = "Hello"
3
- notebook_url = "https://notebooklm.google.com/notebook/725d28e1-4284-4f36-99a2-b6693c2ebf13"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
4
4
  } | ConvertTo-Json
5
5
 
6
6
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
@@ -4,7 +4,7 @@ $body = @{
4
4
  } | ConvertTo-Json
5
5
 
6
6
  Write-Host "=== TEST ROTATION COMPLETE ===" -ForegroundColor Cyan
7
- Write-Host "1. Demarrage avec mathieudumont (quota 50/50)"
7
+ Write-Host "1. Demarrage avec agent-primary (quota 50/50)"
8
8
  Write-Host "2. Attend erreur 'Le systeme n'a pas pu repondre'"
9
9
  Write-Host "3. Detection rate limit -> switch compte"
10
10
  Write-Host "4. Retry avec nouveau compte"
@@ -1,8 +1,8 @@
1
1
  $body = @{
2
2
  question = "Bonjour, quel est le sujet principal de ce notebook?"
3
- notebook_url = "https://notebooklm.google.com/notebook/3e79b7be-9a72-4ac7-aaf7-ac3f450fa96f"
3
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
4
4
  } | ConvertTo-Json
5
5
 
6
- Write-Host "Testing account rotation with rate-limited mathieudumont31..."
6
+ Write-Host "Testing account rotation with rate-limited agent-primary..."
7
7
  $response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
8
8
  $response | ConvertTo-Json -Depth 10
@@ -2,7 +2,7 @@
2
2
  # This tests whether show_browser=true makes the browser visible
3
3
 
4
4
  $baseUrl = "http://localhost:3000"
5
- $notebookUrl = "https://notebooklm.google.com/notebook/abd21688-02a6-4459-953b-30f0612a984e"
5
+ $notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000108"
6
6
 
7
7
  Write-Host "=== Testing show_browser parameter ===" -ForegroundColor Cyan
8
8
 
@@ -1,4 +1,4 @@
1
1
  $body = @{
2
2
  description = "Updated by E2E test at $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
3
3
  } | ConvertTo-Json
4
- Invoke-RestMethod -Uri "http://localhost:3000/notebooks/e2e-rom1pey-test" -Method PUT -ContentType "application/json" -Body $body
4
+ Invoke-RestMethod -Uri "http://localhost:3000/notebooks/e2e-agent-tertiary-test" -Method PUT -ContentType "application/json" -Body $body
@@ -2,7 +2,7 @@
2
2
  # Opens browser and waits so you can check the UI language
3
3
 
4
4
  $body = @{
5
- notebook_url = "https://notebooklm.google.com/notebook/725d28e1-4284-4f36-99a2-b6693c2ebf13"
5
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
6
6
  question = "Hello, what language is the UI in?"
7
7
  show_browser = $true
8
8
  browser_options = @{
@@ -2,7 +2,7 @@
2
2
  # Opens browser to check if UI is in English
3
3
 
4
4
  $body = @{
5
- notebook_url = "https://notebooklm.google.com/notebook/725d28e1-4284-4f36-99a2-b6693c2ebf13"
5
+ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
6
6
  question = "What is this notebook about?"
7
7
  show_browser = $true
8
8
  } | ConvertTo-Json
@@ -1,17 +1,13 @@
1
1
  #!/bin/bash
2
2
  # Docker entrypoint for NotebookLM MCP Server
3
3
  # Starts VNC services (for visual auth) and Node.js HTTP server
4
-
5
4
  set -e
6
-
7
5
  echo "==========================================="
8
6
  echo " NotebookLM MCP Server - Docker"
9
7
  echo "==========================================="
10
8
  echo ""
11
-
12
9
  # Check if VNC should be started (default: yes in Docker)
13
10
  ENABLE_VNC="${ENABLE_VNC:-true}"
14
-
15
11
  if [ "$ENABLE_VNC" = "true" ]; then
16
12
  echo "[Entrypoint] Starting VNC services..."
17
13
  source /app/scripts/start-vnc.sh
@@ -21,9 +17,9 @@ if [ "$ENABLE_VNC" = "true" ]; then
21
17
  else
22
18
  echo "[Entrypoint] VNC disabled (ENABLE_VNC=false)"
23
19
  fi
24
-
25
- echo "[Entrypoint] Starting Node.js HTTP server on port ${HTTP_PORT:-3000}..."
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}..."
26
23
  echo ""
27
-
28
24
  # Start the Node.js server (foreground)
29
25
  exec node dist/http-wrapper.js