Because the NotebookLM CLI and MCP server rely on undocumented internal APIs and browser-extracted cookies, a handful of failure modes come up regularly. Most are quick to resolve once you know the cause. This guide covers every common issue, organized by category, with the exact steps to fix each one. When in doubt, start withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jacob-bd/notebooklm-mcp-cli/llms.txt
Use this file to discover all available pages before exploring further.
nlm doctor — it checks authentication, installation, browser availability, and AI tool configuration in one pass.
Authentication Issues
Browser is running but without remote debugging enabled
Browser is running but without remote debugging enabled
nlm login hangs or reports that no debug port is available, even though a Chrome window is open.Cause: You already have a Chrome session running that was not launched with the --remote-debugging-port flag. nlm login needs to start a fresh Chrome instance with that flag enabled.Fix: Close Chrome completely — including any windows minimized to the system tray or taskbar. On macOS/Linux you can force-quit with:nlm login.401 Unauthorized or 403 Forbidden
401 Unauthorized or 403 Forbidden
Authentication loop — re-login does not help
Authentication loop — re-login does not help
nlm login completes successfully, but commands continue to fail with authentication errors or immediately prompt you to log in again.Cause: A NOTEBOOKLM_COOKIES environment variable is set in your shell or in the MCP server’s environment configuration. This variable overrides everything — including freshly extracted cookies stored on disk.Check for the variable in your shell:NOTEBOOKLM_COOKIES entry from the env block. For example, in a JSON-based MCP config:Cookie file shows missing required cookies
Cookie file shows missing required cookies
auth_status: stale vs auth_status: unverified
auth_status: stale vs auth_status: unverified
nlm login --check or nlm doctor reports auth_status: stale or auth_status: unverified.Difference:unverified— Cookies exist on disk but have not been validated against the NotebookLM API yet in this session. This often resolves itself on the next API call.stale— Cookies were tested against the API and rejected. The session has expired.
unverified: Run any nlm command that makes an API call (e.g., nlm notebook list). If it succeeds, authentication is fine.Action for stale: Re-authenticate:Installation Issues
uv tool upgrade is not installing the latest version
uv tool upgrade is not installing the latest version
uv tool upgrade notebooklm-mcp-cli installs an older version instead of the latest release from PyPI.Cause: uv tool upgrade respects version constraints from your original installation. If you initially installed with a version pin or an older constraint, upgrade stays within those bounds by design.Fix — force a clean reinstall:Broken symlinks after uninstalling legacy packages
Broken symlinks after uninstalling legacy packages
notebooklm-cli or notebooklm-mcp-server (the old separate packages), the nlm or notebooklm-mcp commands produce errors or point to the wrong binaries.Cause: When multiple packages previously provided the same executable, uv can leave broken symlinks after one is removed.Fix:API and Rate Limits
Rate limit errors mid-session
Rate limit errors mid-session
- Space out operations: add
sleep 2between source additions,sleep 5between generation commands. - Use batch import commands (
nlm research import,nlm source sync) instead of adding sources one by one. - Wait until the daily limit resets (typically midnight Pacific time) before retrying.
API instability — unexpected errors or None results
API instability — unexpected errors or None results
None results, or unexpected response shapes.Cause: The CLI uses undocumented internal Google APIs. Google can and does change RPC IDs, request structures, and response formats without notice.What typically breaks:- RPC method IDs (e.g.,
wXbhsffor list notebooks) may be renamed. - Request or response field names may change.
- New required parameters may be added silently.
- Check the GitHub Issues page — someone else may have already reported and fixed it.
- If the issue is widespread, wait for a patch release.
- If you can identify the new API shape via Chrome DevTools, submit a PR or open an issue with your findings.
- Include the current date in any bug report — this helps correlate the breakage with Google deployment timelines.
Build label (bl) parameter errors
Build label (bl) parameter errors
bl, build label, or boq_labs-tailwind-frontend_... in the request or response.Cause: The bl (build label) parameter is a frontend version identifier required by NotebookLM’s batchexecute API.Current status (v0.3.11+): This is resolved. The bl value is now auto-extracted from the NotebookLM page during nlm login and refreshed automatically. No manual intervention is needed under normal conditions.Manual override (if auto-extraction fails):NOTEBOOKLM_BL environment variable → auto-extracted → hardcoded fallback.CSRF token extraction failure
CSRF token extraction failure
ValueError: Could not extract CSRF token from page. A file named debug_page.html appears in ~/.notebooklm-mcp-cli/.Cause: The CSRF token (SNlM0e) and session ID (FdrFJe) are auto-extracted from the NotebookLM homepage on first use. If the homepage structure changes, or if the page is not fully loaded (network issues, redirects), extraction fails.Debug steps:- Open
~/.notebooklm-mcp-cli/debug_page.htmlin a browser to see what the server actually returned. - Check if you are being redirected to a Google login page — if so, your cookies have expired.
- Open Chrome DevTools on
notebooklm.google.com. - Go to the Network tab and find any POST request to
batchexecute. - Copy the
SNlM0eandFdrFJeparameter values from the request payload. - Pass them via the MCP
save_auth_tokenstool or set them in your environment.
Known Limitations
Free tier query limit
Free tier query limit
Cookie expiration
Cookie expiration
API may change without notice
API may change without notice
notebooklm-mcp-cli are typically released within a few days of a widespread breakage being reported.NotebookLM Enterprise accounts
NotebookLM Enterprise accounts
NOTEBOOKLM_BASE_URL environment variable set to your enterprise endpoint:Getting Help
Run diagnostics with nlm doctor
Run diagnostics with nlm doctor
doctor command runs a comprehensive suite of checks and prints a summary of what is working and what needs attention:| Category | What it checks |
|---|---|
| Installation | Package version, nlm and notebooklm-mcp binary paths |
| Authentication | Profile status, cookies present, CSRF token, account email |
| Browser | Chromium-based browser installed and usable |
| AI Tools | MCP configuration status for each supported client |
What to include in a bug report
What to include in a bug report
- The exact operation that failed — the full
nlmcommand you ran. - The full error message — redact any cookie values or personal information.
- Whether the operation worked before — if so, when did it last work?
- The current date — Google deploys changes frequently; the date helps correlate your report with a specific deployment.
- Output of
nlm doctor --verbose— this captures version, auth status, and environment in one block.