@roomi-fields/notebooklm-mcp 1.5.7 → 1.5.9
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.
- package/LICENSE +22 -22
- package/README.md +219 -219
- package/deployment/INDEX.md +0 -0
- package/deployment/PACKAGE-FILES.txt +180 -180
- package/deployment/QUICK-START.md +0 -0
- package/deployment/docs/01-INSTALL.md +21 -1
- package/deployment/docs/02-CONFIGURATION.md +0 -0
- package/deployment/docs/03-API.md +16 -10
- package/deployment/docs/04-N8N-INTEGRATION.md +0 -0
- package/deployment/docs/05-TROUBLESHOOTING.md +19 -1
- package/deployment/docs/06-NOTEBOOK-LIBRARY.md +9 -9
- package/deployment/docs/07-AUTO-DISCOVERY.md +6 -15
- package/deployment/docs/08-DOCKER.md +0 -0
- package/deployment/docs/08-WSL-USAGE.md +7 -7
- package/deployment/docs/09-MULTI-INTERFACE.md +6 -6
- package/deployment/docs/10-CONTENT-MANAGEMENT.md +15 -19
- package/deployment/docs/11-MULTI-ACCOUNT.md +1 -1
- package/deployment/docs/README.md +4 -50
- package/deployment/scripts/README.md +0 -0
- package/deployment/scripts/install.ps1 +114 -114
- package/deployment/scripts/setup-auth.ps1 +217 -217
- package/deployment/scripts/start-server.ps1 +72 -72
- package/deployment/scripts/stop-server.ps1 +51 -51
- package/deployment/scripts/test-api.ps1 +651 -651
- package/deployment/scripts/test-auth.ps1 +0 -0
- package/deployment/scripts/test-auto-discovery.ps1 +295 -295
- package/deployment/scripts/test-cors.ps1 +398 -398
- package/deployment/scripts/test-errors.ps1 +581 -581
- package/deployment/scripts/test-server.ps1 +140 -140
- package/deployment/scripts/test-sessions.ps1 +426 -426
- package/deployment/scripts/test-validation.ps1 +299 -299
- package/dist/accounts/account-manager.d.ts +0 -0
- package/dist/accounts/account-manager.d.ts.map +0 -0
- package/dist/accounts/account-manager.js +0 -0
- package/dist/accounts/account-manager.js.map +0 -0
- package/dist/accounts/auto-login-manager.d.ts +0 -0
- package/dist/accounts/auto-login-manager.d.ts.map +0 -0
- package/dist/accounts/auto-login-manager.js +0 -0
- package/dist/accounts/auto-login-manager.js.map +0 -0
- package/dist/accounts/crypto.d.ts +0 -0
- package/dist/accounts/crypto.d.ts.map +0 -0
- package/dist/accounts/crypto.js +0 -0
- package/dist/accounts/crypto.js.map +0 -0
- package/dist/accounts/index.d.ts +0 -0
- package/dist/accounts/index.d.ts.map +0 -0
- package/dist/accounts/index.js +0 -0
- package/dist/accounts/index.js.map +0 -0
- package/dist/accounts/types.d.ts +0 -0
- package/dist/accounts/types.d.ts.map +0 -0
- package/dist/accounts/types.js +0 -0
- package/dist/accounts/types.js.map +0 -0
- package/dist/auth/auth-manager.d.ts +0 -0
- package/dist/auth/auth-manager.d.ts.map +0 -0
- package/dist/auth/auth-manager.js +0 -0
- package/dist/auth/auth-manager.js.map +0 -0
- package/dist/auto-discovery/auto-discovery.d.ts +0 -0
- package/dist/auto-discovery/auto-discovery.d.ts.map +0 -0
- package/dist/auto-discovery/auto-discovery.js +0 -0
- package/dist/auto-discovery/auto-discovery.js.map +0 -0
- package/dist/cli/accounts.d.ts +0 -0
- package/dist/cli/accounts.d.ts.map +0 -0
- package/dist/cli/accounts.js +0 -0
- package/dist/cli/accounts.js.map +0 -0
- package/dist/cli/de-auth.d.ts +0 -0
- package/dist/cli/de-auth.d.ts.map +0 -0
- package/dist/cli/de-auth.js +0 -0
- package/dist/cli/de-auth.js.map +0 -0
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.d.ts.map +0 -0
- package/dist/cli/help.js +5 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/setup-auth.d.ts +0 -0
- package/dist/cli/setup-auth.d.ts.map +0 -0
- package/dist/cli/setup-auth.js +0 -0
- package/dist/cli/setup-auth.js.map +0 -0
- package/dist/config.d.ts +0 -0
- package/dist/config.d.ts.map +0 -0
- package/dist/config.js +0 -0
- package/dist/config.js.map +0 -0
- package/dist/content/content-generator.d.ts +0 -0
- package/dist/content/content-generator.d.ts.map +0 -0
- package/dist/content/content-generator.js +0 -0
- package/dist/content/content-generator.js.map +0 -0
- package/dist/content/content-manager.d.ts +8 -0
- package/dist/content/content-manager.d.ts.map +1 -1
- package/dist/content/content-manager.js +411 -67
- package/dist/content/content-manager.js.map +1 -1
- package/dist/content/content-templates.d.ts +0 -0
- package/dist/content/content-templates.d.ts.map +0 -0
- package/dist/content/content-templates.js +0 -0
- package/dist/content/content-templates.js.map +0 -0
- package/dist/content/index.d.ts +0 -0
- package/dist/content/index.d.ts.map +0 -0
- package/dist/content/index.js +0 -0
- package/dist/content/index.js.map +0 -0
- package/dist/content/types.d.ts +0 -0
- package/dist/content/types.d.ts.map +0 -0
- package/dist/content/types.js +0 -0
- package/dist/content/types.js.map +0 -0
- package/dist/errors.d.ts +0 -0
- package/dist/errors.d.ts.map +0 -0
- package/dist/errors.js +0 -0
- package/dist/errors.js.map +0 -0
- package/dist/http-wrapper.d.ts +0 -0
- package/dist/http-wrapper.d.ts.map +0 -0
- package/dist/http-wrapper.js +0 -0
- package/dist/http-wrapper.js.map +0 -0
- package/dist/i18n/en.json +0 -0
- package/dist/i18n/fr.json +0 -0
- package/dist/i18n/index.d.ts +0 -0
- package/dist/i18n/index.d.ts.map +0 -0
- package/dist/i18n/index.js +0 -0
- package/dist/i18n/index.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/library/notebook-library.d.ts +0 -0
- package/dist/library/notebook-library.d.ts.map +0 -0
- package/dist/library/notebook-library.js +0 -0
- package/dist/library/notebook-library.js.map +0 -0
- package/dist/library/types.d.ts +0 -0
- package/dist/library/types.d.ts.map +0 -0
- package/dist/library/types.js +0 -0
- package/dist/library/types.js.map +0 -0
- package/dist/session/browser-session.d.ts +12 -0
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +156 -32
- package/dist/session/browser-session.js.map +1 -1
- package/dist/session/session-manager.d.ts +0 -0
- package/dist/session/session-manager.d.ts.map +0 -0
- package/dist/session/session-manager.js +0 -0
- package/dist/session/session-manager.js.map +0 -0
- package/dist/session/shared-context-manager.d.ts +0 -0
- package/dist/session/shared-context-manager.d.ts.map +0 -0
- package/dist/session/shared-context-manager.js +0 -0
- package/dist/session/shared-context-manager.js.map +0 -0
- package/dist/startup/startup-manager.d.ts +0 -0
- package/dist/startup/startup-manager.d.ts.map +0 -0
- package/dist/startup/startup-manager.js +0 -0
- package/dist/startup/startup-manager.js.map +0 -0
- package/dist/stdio-http-proxy.d.ts +0 -0
- package/dist/stdio-http-proxy.d.ts.map +0 -0
- package/dist/stdio-http-proxy.js +7 -2
- package/dist/stdio-http-proxy.js.map +1 -1
- package/dist/tools/index.d.ts +0 -0
- package/dist/tools/index.d.ts.map +0 -0
- package/dist/tools/index.js +0 -0
- package/dist/tools/index.js.map +0 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.d.ts.map +0 -0
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/dist/utils/citation-extractor.d.ts +0 -0
- package/dist/utils/citation-extractor.d.ts.map +0 -0
- package/dist/utils/citation-extractor.js +67 -67
- package/dist/utils/citation-extractor.js.map +0 -0
- package/dist/utils/cleanup-manager.d.ts +0 -0
- package/dist/utils/cleanup-manager.d.ts.map +0 -0
- package/dist/utils/cleanup-manager.js +0 -0
- package/dist/utils/cleanup-manager.js.map +0 -0
- package/dist/utils/logger.d.ts +0 -0
- package/dist/utils/logger.d.ts.map +0 -0
- package/dist/utils/logger.js +0 -0
- package/dist/utils/logger.js.map +0 -0
- package/dist/utils/page-utils.d.ts +5 -0
- package/dist/utils/page-utils.d.ts.map +1 -1
- package/dist/utils/page-utils.js +73 -15
- package/dist/utils/page-utils.js.map +1 -1
- package/dist/utils/stealth-utils.d.ts +0 -0
- package/dist/utils/stealth-utils.d.ts.map +0 -0
- package/dist/utils/stealth-utils.js +0 -0
- package/dist/utils/stealth-utils.js.map +0 -0
- package/docs/ADDING_A_LANGUAGE.md +0 -0
- package/docs/ARCHITECTURE_MIGRATION_STUDY.md +0 -0
- package/docs/CHROME_PROFILE_LIMITATION.md +0 -0
- package/docs/MULTI_ACCOUNT_SYSTEM.md +0 -0
- package/package.json +5 -2
- package/scripts/archive/add-and-activate-notebook.ps1 +4 -4
- package/scripts/archive/add-new-notebook.ps1 +4 -4
- package/scripts/archive/add-rom1pey.ps1 +2 -2
- package/scripts/archive/add-rpmonster.ps1 +2 -2
- package/scripts/archive/add-source-debug.ps1 +1 -1
- package/scripts/archive/add-source-e2e.ps1 +1 -1
- package/scripts/archive/add-source-visible.ps1 +1 -1
- package/scripts/archive/add-test-notebook.ps1 +1 -1
- package/scripts/archive/add-test-source.ps1 +1 -1
- package/scripts/archive/capture-screen.ps1 +1 -1
- package/scripts/archive/change-language.mjs +4 -3
- package/scripts/archive/change-language.ts +5 -3
- package/scripts/archive/check-account.ps1 +0 -0
- package/scripts/archive/check-notebook-2.ps1 +0 -0
- package/scripts/archive/check-test-notebook.ps1 +0 -0
- package/scripts/archive/create-notebook-auto.ps1 +0 -0
- package/scripts/archive/create-notebook.ps1 +2 -2
- package/scripts/archive/create-rom1pey-notebook.ps1 +2 -2
- package/scripts/archive/create-rom1pey.ps1 +2 -2
- package/scripts/archive/create-test-notebook-fresh.ps1 +0 -0
- package/scripts/archive/create-test-notebook.ps1 +0 -0
- package/scripts/archive/debug-add-source-auto.ps1 +0 -0
- package/scripts/archive/debug-add-source.ps1 +0 -0
- package/scripts/archive/debug-add-text-source.ps1 +4 -4
- package/scripts/archive/debug-home.ps1 +0 -0
- package/scripts/archive/debug-selectors.ps1 +1 -1
- package/scripts/archive/debug-sources-panel.ps1 +0 -0
- package/scripts/archive/debug-ui.ps1 +0 -0
- package/scripts/archive/discover-home.ps1 +2 -2
- package/scripts/archive/kill-automation-chrome.ps1 +0 -0
- package/scripts/archive/list-my-notebooks.ps1 +0 -0
- package/scripts/archive/navigate-home-visible.ps1 +1 -1
- package/scripts/archive/navigate-home.ps1 +1 -1
- package/scripts/archive/run-e2e-english.ps1 +3 -3
- package/scripts/archive/run-e2e-rom1pey-v2.ps1 +4 -4
- package/scripts/archive/run-e2e-rom1pey.ps1 +4 -4
- package/scripts/archive/setup-english-test.ps1 +6 -6
- package/scripts/archive/setup-test-notebook.ps1 +1 -1
- package/scripts/archive/simple-add-source.ps1 +1 -1
- package/scripts/archive/t10.ps1 +1 -1
- package/scripts/archive/t20.ps1 +1 -1
- package/scripts/archive/t30.ps1 +1 -1
- package/scripts/archive/t31.ps1 +1 -1
- package/scripts/archive/t32.ps1 +1 -1
- package/scripts/archive/t39.ps1 +0 -0
- package/scripts/archive/t40.ps1 +0 -0
- package/scripts/archive/t53.ps1 +1 -1
- package/scripts/archive/t54.ps1 +0 -0
- package/scripts/archive/t55.ps1 +0 -0
- package/scripts/archive/t9.ps1 +0 -0
- package/scripts/archive/test-access.ps1 +1 -1
- package/scripts/archive/test-add-delete-source.ps1 +4 -4
- package/scripts/archive/test-add-source-visible.ps1 +1 -1
- package/scripts/archive/test-add-source.ps1 +1 -1
- package/scripts/archive/test-add-text-debug.ps1 +2 -2
- package/scripts/archive/test-add-text-source.ps1 +0 -0
- package/scripts/archive/test-add-url-source.ps1 +0 -0
- package/scripts/archive/test-ask-ascii.ps1 +0 -0
- package/scripts/archive/test-ask-cnv.ps1 +0 -0
- package/scripts/archive/test-ask-headed.ps1 +1 -1
- package/scripts/archive/test-ask-ifs.ps1 +0 -0
- package/scripts/archive/test-ask-now.ps1 +0 -0
- package/scripts/archive/test-ask-real.ps1 +0 -0
- package/scripts/archive/test-ask-visible.ps1 +0 -0
- package/scripts/archive/test-create-notebook.ps1 +0 -0
- package/scripts/archive/test-create-then-add.ps1 +0 -0
- package/scripts/archive/test-delete-source.ps1 +4 -4
- package/scripts/archive/test-e2e-notebook.ps1 +2 -2
- package/scripts/archive/test-english-notebook.ps1 +4 -4
- package/scripts/archive/test-english.ps1 +1 -1
- package/scripts/archive/test-full-custom-instructions.ps1 +1 -1
- package/scripts/archive/test-full-infographic.ps1 +1 -1
- package/scripts/archive/test-full-language.ps1 +1 -1
- package/scripts/archive/test-full-presentation.ps1 +1 -1
- package/scripts/archive/test-full-report.ps1 +1 -1
- package/scripts/archive/test-full-source-selection.ps1 +1 -1
- package/scripts/archive/test-full-video-brief.ps1 +1 -1
- package/scripts/archive/test-full-video-explainer.ps1 +1 -1
- package/scripts/archive/test-full-video-styles.ps1 +1 -1
- package/scripts/archive/test-generate-report.ps1 +0 -0
- package/scripts/archive/test-generate-study-guide.ps1 +0 -0
- package/scripts/archive/test-headed-ask.ps1 +1 -1
- package/scripts/archive/test-headed-now.ps1 +2 -2
- package/scripts/archive/test-headed.ps1 +2 -2
- package/scripts/archive/test-hello.ps1 +1 -1
- package/scripts/archive/test-i18n-studio.ps1 +0 -0
- package/scripts/archive/test-i18n.ps1 +0 -0
- package/scripts/archive/test-manual-headed.ps1 +1 -1
- package/scripts/archive/test-mathieu-quota.ps1 +1 -1
- package/scripts/archive/test-notebook-1.ps1 +0 -0
- package/scripts/archive/test-notebook-2-sources.ps1 +0 -0
- package/scripts/archive/test-notebook1.ps1 +0 -0
- package/scripts/archive/test-personal-notebook.ps1 +1 -1
- package/scripts/archive/test-rate-limit.ps1 +1 -1
- package/scripts/archive/test-real-ask.ps1 +1 -1
- package/scripts/archive/test-real-ask2.ps1 +1 -1
- package/scripts/archive/test-rom1pey.ps1 +1 -1
- package/scripts/archive/test-rotation-complete.ps1 +1 -1
- package/scripts/archive/test-rotation.ps1 +2 -2
- package/scripts/archive/test-show-browser.ps1 +1 -1
- package/scripts/archive/test-update-notebook.ps1 +1 -1
- package/scripts/archive/verify-language-slow.ps1 +1 -1
- package/scripts/archive/verify-language.ps1 +1 -1
- package/scripts/check-server.ps1 +0 -0
- package/scripts/docker-entrypoint.sh +25 -25
- package/scripts/doctor.mjs +257 -0
- package/scripts/mcp-proxy-hidden.ps1 +0 -0
- package/scripts/mcp-wsl-helper.sh +146 -146
- package/scripts/start-server-hidden.vbs +13 -10
- package/scripts/start-server.ps1 +1 -1
- package/scripts/start-vnc.sh +0 -0
- package/scripts/stop-server.bat +0 -0
- package/scripts/stop-server.ps1 +0 -0
- package/scripts/switch-account-language.sh +87 -128
- package/scripts/test-account.ps1 +0 -0
- package/docs/archive/auto-discovery-complet.md +0 -906
- package/scripts/add-totp.ts +0 -110
|
@@ -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:/
|
|
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:/path/to/notebooklm-mcp"
|
|
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,13 +1,16 @@
|
|
|
1
|
-
' NotebookLM MCP Server -
|
|
2
|
-
'
|
|
3
|
-
' Pour démarrage automatique : ajouter au dossier Démarrage Windows
|
|
1
|
+
' NotebookLM MCP Server - hidden startup helper
|
|
2
|
+
' Starts the HTTP server without opening a visible console window.
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
Dim fso
|
|
5
|
+
Dim shell
|
|
6
|
+
Dim scriptDir
|
|
7
|
+
Dim projectDir
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
Set
|
|
10
|
-
WshEnv("DATA_DIR") = "C:\Users\romai\AppData\Local\notebooklm-mcp\Data"
|
|
9
|
+
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
10
|
+
Set shell = CreateObject("WScript.Shell")
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
scriptDir = fso.GetParentFolderName(WScript.ScriptFullName)
|
|
13
|
+
projectDir = fso.GetParentFolderName(scriptDir)
|
|
14
|
+
|
|
15
|
+
shell.CurrentDirectory = projectDir
|
|
16
|
+
shell.Run "node dist/http-wrapper.js", 0, False
|
package/scripts/start-server.ps1
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
.EXAMPLE
|
|
13
13
|
# Run in background (hidden window)
|
|
14
|
-
Start-Process powershell -ArgumentList "-ExecutionPolicy Bypass -File D:\
|
|
14
|
+
Start-Process powershell -ArgumentList "-ExecutionPolicy Bypass -File D:\path\to\notebooklm-mcp\scripts\start-server.ps1" -WindowStyle Hidden
|
|
15
15
|
#>
|
|
16
16
|
|
|
17
17
|
param(
|
package/scripts/start-vnc.sh
CHANGED
|
File without changes
|
package/scripts/stop-server.bat
CHANGED
|
File without changes
|
package/scripts/stop-server.ps1
CHANGED
|
File without changes
|
|
@@ -1,191 +1,150 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Switch Account Language Script
|
|
3
3
|
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# PREREQUISITE: You must first change the language in Google Account settings:
|
|
9
|
-
# https://myaccount.google.com/language
|
|
10
|
-
#
|
|
11
|
-
# Usage:
|
|
12
|
-
# ./switch-account-language.sh --account=rom1pey --lang=en
|
|
13
|
-
# ./switch-account-language.sh --account=mathieu --lang=fr
|
|
14
|
-
# ./switch-account-language.sh --account=rpmonster --lang=en --show
|
|
4
|
+
# Refreshes one account profile after the user changes the Google Account
|
|
5
|
+
# language. This script is intentionally generic: you provide the account ID,
|
|
6
|
+
# repo root, and optionally the NotebookLM data directory.
|
|
15
7
|
|
|
16
|
-
set -
|
|
8
|
+
set -euo pipefail
|
|
17
9
|
|
|
18
|
-
|
|
19
|
-
ACCOUNT=""
|
|
10
|
+
ACCOUNT_ID=""
|
|
20
11
|
LANG=""
|
|
21
12
|
SHOW_BROWSER=""
|
|
13
|
+
REPO_ROOT=""
|
|
14
|
+
DATA_PATH="${NOTEBOOKLM_DATA_PATH:-}"
|
|
15
|
+
|
|
16
|
+
usage() {
|
|
17
|
+
echo "Switch Account Language Script"
|
|
18
|
+
echo ""
|
|
19
|
+
echo "Prerequisite:"
|
|
20
|
+
echo " Change the Google Account language first:"
|
|
21
|
+
echo " https://myaccount.google.com/language"
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Usage:"
|
|
24
|
+
echo " ./scripts/switch-account-language.sh --account-id=account-0000000000001 --lang=en --repo-root=/absolute/path/to/notebooklm-mcp"
|
|
25
|
+
echo ""
|
|
26
|
+
echo "Options:"
|
|
27
|
+
echo " --account-id=ID Account directory ID under Data/accounts/ (required)"
|
|
28
|
+
echo " --lang=LANG Target UI locale: en|fr (required)"
|
|
29
|
+
echo " --repo-root=PATH Repo root containing package.json (required unless run there)"
|
|
30
|
+
echo " --data-path=PATH NotebookLM data directory override"
|
|
31
|
+
echo " --show Show browser during re-authentication"
|
|
32
|
+
echo " --help Show this help"
|
|
33
|
+
}
|
|
22
34
|
|
|
23
|
-
# Account configurations
|
|
24
|
-
declare -A ACCOUNT_IDS=(
|
|
25
|
-
["mathieu"]="account-1766565732376"
|
|
26
|
-
["rpmonster"]="account-1767078713573"
|
|
27
|
-
["rom1pey"]="account-1767079146601"
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
declare -A ACCOUNT_EMAILS=(
|
|
31
|
-
["mathieu"]="mathieudumont31@gmail.com"
|
|
32
|
-
["rpmonster"]="rpmonster@gmail.com"
|
|
33
|
-
["rom1pey"]="rom1pey@gmail.com"
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
# Data path
|
|
37
|
-
DATA_PATH="/mnt/c/Users/romai/AppData/Local/notebooklm-mcp/Data"
|
|
38
|
-
|
|
39
|
-
# Parse arguments
|
|
40
35
|
for arg in "$@"; do
|
|
41
36
|
case $arg in
|
|
42
|
-
--account=*)
|
|
43
|
-
|
|
37
|
+
--account-id=*)
|
|
38
|
+
ACCOUNT_ID="${arg#*=}"
|
|
44
39
|
;;
|
|
45
40
|
--lang=*)
|
|
46
41
|
LANG="${arg#*=}"
|
|
47
42
|
;;
|
|
43
|
+
--repo-root=*)
|
|
44
|
+
REPO_ROOT="${arg#*=}"
|
|
45
|
+
;;
|
|
46
|
+
--data-path=*)
|
|
47
|
+
DATA_PATH="${arg#*=}"
|
|
48
|
+
;;
|
|
48
49
|
--show)
|
|
49
50
|
SHOW_BROWSER="--show"
|
|
50
51
|
;;
|
|
51
52
|
--help)
|
|
52
|
-
|
|
53
|
-
echo ""
|
|
54
|
-
echo "PREREQUISITE: Change language in Google Account first:"
|
|
55
|
-
echo " https://myaccount.google.com/language"
|
|
56
|
-
echo ""
|
|
57
|
-
echo "Usage: ./switch-account-language.sh [options]"
|
|
58
|
-
echo ""
|
|
59
|
-
echo "Options:"
|
|
60
|
-
echo " --account=NAME Account: mathieu|rpmonster|rom1pey (required)"
|
|
61
|
-
echo " --lang=LANG Target language: en|fr (required)"
|
|
62
|
-
echo " --show Show browser during re-authentication"
|
|
63
|
-
echo " --help Show this help"
|
|
64
|
-
echo ""
|
|
65
|
-
echo "Examples:"
|
|
66
|
-
echo " ./switch-account-language.sh --account=rom1pey --lang=en"
|
|
67
|
-
echo " ./switch-account-language.sh --account=mathieu --lang=fr --show"
|
|
53
|
+
usage
|
|
68
54
|
exit 0
|
|
69
55
|
;;
|
|
56
|
+
*)
|
|
57
|
+
echo "ERROR: Unknown argument: $arg"
|
|
58
|
+
usage
|
|
59
|
+
exit 1
|
|
60
|
+
;;
|
|
70
61
|
esac
|
|
71
62
|
done
|
|
72
63
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
echo "Use --help for usage information"
|
|
64
|
+
if [ -z "$ACCOUNT_ID" ]; then
|
|
65
|
+
echo "ERROR: --account-id is required"
|
|
66
|
+
usage
|
|
77
67
|
exit 1
|
|
78
68
|
fi
|
|
79
69
|
|
|
80
70
|
if [ -z "$LANG" ]; then
|
|
81
71
|
echo "ERROR: --lang is required"
|
|
82
|
-
|
|
72
|
+
usage
|
|
83
73
|
exit 1
|
|
84
74
|
fi
|
|
85
75
|
|
|
86
|
-
if [
|
|
87
|
-
echo "ERROR:
|
|
88
|
-
echo "Valid accounts: mathieu, rpmonster, rom1pey"
|
|
76
|
+
if [ "$LANG" != "en" ] && [ "$LANG" != "fr" ]; then
|
|
77
|
+
echo "ERROR: --lang must be en or fr"
|
|
89
78
|
exit 1
|
|
90
79
|
fi
|
|
91
80
|
|
|
92
|
-
if [
|
|
93
|
-
|
|
94
|
-
|
|
81
|
+
if [ -z "$REPO_ROOT" ]; then
|
|
82
|
+
if [ -f "./package.json" ]; then
|
|
83
|
+
REPO_ROOT="$(pwd)"
|
|
84
|
+
else
|
|
85
|
+
echo "ERROR: --repo-root is required unless you run the script from the repo root"
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
if [ ! -f "$REPO_ROOT/package.json" ]; then
|
|
91
|
+
echo "ERROR: package.json not found in repo root: $REPO_ROOT"
|
|
95
92
|
exit 1
|
|
96
93
|
fi
|
|
97
94
|
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
if [ -z "$DATA_PATH" ]; then
|
|
96
|
+
if [ -n "${LOCALAPPDATA:-}" ]; then
|
|
97
|
+
DATA_PATH="${LOCALAPPDATA}/notebooklm-mcp/Data"
|
|
98
|
+
else
|
|
99
|
+
echo "ERROR: data path not set. Use --data-path or NOTEBOOKLM_DATA_PATH."
|
|
100
|
+
exit 1
|
|
101
|
+
fi
|
|
102
|
+
fi
|
|
100
103
|
|
|
101
|
-
echo "
|
|
102
|
-
echo "
|
|
103
|
-
echo "
|
|
104
|
-
echo "
|
|
105
|
-
echo "
|
|
106
|
-
echo "╚════════════════════════════════════════════════════════════╝"
|
|
104
|
+
echo "Switching account language"
|
|
105
|
+
echo " account-id: $ACCOUNT_ID"
|
|
106
|
+
echo " locale: $LANG"
|
|
107
|
+
echo " repo-root: $REPO_ROOT"
|
|
108
|
+
echo " data-path: $DATA_PATH"
|
|
107
109
|
echo ""
|
|
108
110
|
|
|
109
|
-
|
|
110
|
-
echo "Step 1/5: Stopping server and Chrome..."
|
|
111
|
+
echo "Step 1/5: Stopping repo-related Node processes..."
|
|
111
112
|
cmd.exe /c "taskkill /F /IM node.exe" 2>/dev/null || true
|
|
112
113
|
sleep 1
|
|
113
|
-
# Only kill Chrome if profile is locked (don't kill user's personal browser)
|
|
114
|
-
if [ -f "$DATA_PATH/chrome_profile/lockfile" ] 2>/dev/null; then
|
|
115
|
-
echo " Chrome profile locked, killing Chrome..."
|
|
116
|
-
cmd.exe /c "taskkill /F /IM chrome.exe" 2>/dev/null || true
|
|
117
|
-
sleep 2
|
|
118
|
-
fi
|
|
119
|
-
echo " Done."
|
|
120
114
|
|
|
121
|
-
|
|
122
|
-
echo ""
|
|
123
|
-
echo "Step 2/5: Deleting Chrome profile cache for $ACCOUNT..."
|
|
115
|
+
echo "Step 2/5: Removing cached profile for the selected account..."
|
|
124
116
|
ACCOUNT_PROFILE="$DATA_PATH/accounts/$ACCOUNT_ID/profile"
|
|
125
117
|
if [ -d "$ACCOUNT_PROFILE" ]; then
|
|
126
118
|
rm -rf "$ACCOUNT_PROFILE"
|
|
127
|
-
echo "
|
|
119
|
+
echo " Removed $ACCOUNT_PROFILE"
|
|
128
120
|
else
|
|
129
|
-
echo "
|
|
121
|
+
echo " No account profile found to remove"
|
|
130
122
|
fi
|
|
131
|
-
echo " Done."
|
|
132
|
-
|
|
133
|
-
# Step 3: Re-authenticate to create fresh profile
|
|
134
|
-
echo ""
|
|
135
|
-
echo "Step 3/5: Re-authenticating $ACCOUNT..."
|
|
136
|
-
echo " This will open a browser to log in with the new language settings."
|
|
137
|
-
echo ""
|
|
138
123
|
|
|
139
|
-
|
|
140
|
-
cmd.exe /c "cd /d
|
|
141
|
-
|
|
142
|
-
echo " Done."
|
|
143
|
-
|
|
144
|
-
# Step 4: Sync new profile to main
|
|
145
|
-
echo ""
|
|
146
|
-
echo "Step 4/5: Syncing new profile to main..."
|
|
124
|
+
echo "Step 3/5: Re-authenticating the selected account..."
|
|
125
|
+
cmd.exe /c "cd /d $REPO_ROOT && npm run accounts test $ACCOUNT_ID -- $SHOW_BROWSER"
|
|
147
126
|
|
|
148
|
-
|
|
127
|
+
echo "Step 4/5: Syncing the refreshed profile into the active data path..."
|
|
149
128
|
if [ -f "$DATA_PATH/accounts/$ACCOUNT_ID/browser_state/state.json" ]; then
|
|
150
|
-
|
|
151
|
-
|
|
129
|
+
mkdir -p "$DATA_PATH/browser_state"
|
|
130
|
+
cp "$DATA_PATH/accounts/$ACCOUNT_ID/browser_state/state.json" "$DATA_PATH/browser_state/state.json"
|
|
131
|
+
echo " Synced browser_state/state.json"
|
|
152
132
|
else
|
|
153
|
-
echo " WARNING: state.json not found"
|
|
133
|
+
echo " WARNING: browser_state/state.json not found for $ACCOUNT_ID"
|
|
154
134
|
fi
|
|
155
135
|
|
|
156
|
-
# Sync Chrome profile
|
|
157
136
|
rm -rf "$DATA_PATH/chrome_profile" 2>/dev/null || true
|
|
158
137
|
if [ -d "$DATA_PATH/accounts/$ACCOUNT_ID/profile" ]; then
|
|
159
138
|
cp -r "$DATA_PATH/accounts/$ACCOUNT_ID/profile" "$DATA_PATH/chrome_profile"
|
|
160
|
-
echo " Synced
|
|
139
|
+
echo " Synced chrome_profile/"
|
|
161
140
|
else
|
|
162
|
-
echo " WARNING:
|
|
141
|
+
echo " WARNING: refreshed profile not found for $ACCOUNT_ID"
|
|
163
142
|
fi
|
|
164
|
-
echo " Done."
|
|
165
143
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
echo "Step 5/5: Starting server with UI locale '$LANG'..."
|
|
169
|
-
|
|
170
|
-
# Convert lang to uppercase for display
|
|
171
|
-
LANG_UPPER=$(echo "$LANG" | tr '[:lower:]' '[:upper:]')
|
|
172
|
-
|
|
173
|
-
cmd.exe /c "cd /d D:\\Claude\\notebooklm-mcp-http && set NOTEBOOKLM_UI_LOCALE=$LANG&& start /B node dist/http-wrapper.js" &
|
|
144
|
+
echo "Step 5/5: Restarting the HTTP server with the requested locale..."
|
|
145
|
+
cmd.exe /c "cd /d $REPO_ROOT && set NOTEBOOKLM_UI_LOCALE=$LANG&& start /B node dist/http-wrapper.js" >/dev/null
|
|
174
146
|
sleep 4
|
|
175
147
|
|
|
176
|
-
# Verify
|
|
177
|
-
echo ""
|
|
178
|
-
echo "Verifying server..."
|
|
179
|
-
HEALTH=$(cmd.exe /c "curl -s http://localhost:3000/health" 2>/dev/null || echo '{"error":"failed"}')
|
|
180
|
-
echo "$HEALTH" | head -c 200
|
|
181
|
-
|
|
182
|
-
echo ""
|
|
183
148
|
echo ""
|
|
184
|
-
echo "
|
|
185
|
-
|
|
186
|
-
echo "╠════════════════════════════════════════════════════════════╣"
|
|
187
|
-
echo "║ Account '$ACCOUNT' is now configured for '$LANG_UPPER'."
|
|
188
|
-
echo "║ ║"
|
|
189
|
-
echo "║ IMPORTANT: Verify visually that NotebookLM UI is in $LANG_UPPER ║"
|
|
190
|
-
echo "║ by running a test with show_browser:true ║"
|
|
191
|
-
echo "╚════════════════════════════════════════════════════════════╝"
|
|
149
|
+
echo "Health check:"
|
|
150
|
+
cmd.exe /c "curl -s http://127.0.0.1:3000/health" || true
|
package/scripts/test-account.ps1
CHANGED
|
File without changes
|