Skip to content

Releases: jacob-bd/notebooklm-mcp-cli

v0.5.19

09 Apr 20:42

Choose a tag to compare

v0.5.18

09 Apr 16:33

Choose a tag to compare

What's Changed

Added

  • WSL2 Authentication Support (PR #138)nlm login --wsl launches Windows Chrome from WSL2 for seamless auth. Thanks to @kylebrodeur!
  • WSL2 Diagnosticsnlm doctor now detects WSL2 environments.

Fixed

  • Thread-Safety for Concurrent MCP Tool Calls (PR #135) — Added threading.Lock to BaseClient protecting mutable state from race conditions. Thanks to @xiangyuwang1998!
  • Restored CDP WebSocket Timeout — Re-applied 30-second timeout removed during WSL2 merge.
  • Restored Port Map File Permissions — Re-applied chmod 0o600 removed during WSL2 merge.

Full Changelog: v0.5.17...v0.5.18

v0.5.17

07 Apr 15:53

Choose a tag to compare

Security

  • CDP origin restriction — Chrome debug port now only accepts connections from localhost / 127.0.0.1 (was *)
  • Base URL allowlistNOTEBOOKLM_BASE_URL validated against Google domains only (HTTPS required)
  • Download path traversal protection — blocks writes to .ssh, .aws, .gnupg, and other sensitive directories
  • File permission hardening — auth files and storage dir use 0o600 / 0o700
  • CDP WebSocket timeout — 30s timeout prevents infinite hangs on stale connections

Thanks to @wccheung11011001 for the security audit (PR #133)!

New Features

  • Custom video style prompts (PR #131)--style custom --style-prompt "your description" for CLI, video_style_prompt for MCP. Style prompt is also returned in studio status. Thanks to @agarwalvipin!
  • Audio source support (PR #134)nlm source add --file now handles audio uploads (m4a, wav, mp3). Adds SOURCE_TYPE_AUDIO = 10, fixes transient status 3 handling for audio, and adds --wait-timeout flag (default 600s) for long recordings. Thanks to @stanleykao72!
  • CONTRIBUTING.md — Contributor guide with architecture rules, API capture workflow, testing requirements, and security guidelines

Bug Fixes

  • build_label data lossProfile.to_dict() was silently dropping the build_label field on save
  • Ruff lint/format fixes — B904 exception chaining, format violations across 4 files

Upgrade

uv tool install notebooklm-mcp-cli --upgrade
# or: pip install --upgrade notebooklm-mcp-cli

Then restart your MCP client to pick up the changes.

Full changelog: https://github.com/jacob-bd/notebooklm-mcp-cli/blob/main/CHANGELOG.md

v0.5.16

04 Apr 23:50

Choose a tag to compare

Full Changelog: v0.5.15...v0.5.16

v0.5.15

02 Apr 21:57

Choose a tag to compare

Full Changelog: v0.5.14...v0.5.15

v0.5.14

01 Apr 18:45

Choose a tag to compare

Full Changelog: v0.5.13...v0.5.14

v0.5.13

01 Apr 02:50

Choose a tag to compare

Fixed

  • Python 3.13 Crash in nlm skill (Issue #122) — Fixed a crash when running nlm skill install on Python 3.13, which was caused by using @click.option(type=Literal["user", "project"]). Replaced with standard string validation. Thanks to @zhaoguoqiao for reporting!
  • CDP Proxy Bypass (Issue #119) — The httpx HTTP2 client was honoring system proxy settings even for the internal 127.0.0.1 CDP WebSocket acquisition call (http://127.0.0.1:9222/json). This caused connections to fail on machines running proxies. Restored the proxy=None argument to explicitly bypass proxies for local loopback connections. Thanks to @sjs33 for discovering and reporting this!
  • research_status Polling Loop (PR #120) — Restored the internal polling loop for research_status when max_wait is set. Previously, the parameters were ignored after a refactor, and it always returned after a single check. The tool now correctly blocks and polls until the research is completed or times out. Thanks to @byingyang for the excellent bug report, full implementation, and test suite!

v0.5.12

30 Mar 15:26

Choose a tag to compare

Full Changelog: v0.5.11...v0.5.12

v0.5.11

27 Mar 20:50

Choose a tag to compare

Added

  • Enterprise / Google Workspace support (PR #114) — Configurable base URL via NOTEBOOKLM_BASE_URL environment variable. Set to https://notebooklm.cloud.google.com (or your organization's URL) to use NotebookLM with managed Workspace accounts. All API calls, authentication, file uploads, and URL detection are updated to use the configured base URL. Default remains https://notebooklm.google.com for personal accounts (fully backward compatible). Thanks to @Robiton for this contribution!

Documentation

  • Added "Enterprise / Google Workspace" section to docs/AUTHENTICATION.md
  • Added NOTEBOOKLM_BASE_URL to environment variables table in docs/MCP_GUIDE.md

v0.5.10

26 Mar 23:07

Choose a tag to compare

Bug Fixes

  • Quiz/Flashcard focus_prompt ignored (#113) — Fixed off-by-one error in RPC payload: focus_prompt was at index [1] instead of [2]. Both create_quiz and create_flashcards now use the correct layout. Thanks to @ojsed!
  • source_ids parameter fails with string input (#111) — MCP clients (Claude Desktop, Cursor, etc.) serialize list params as JSON strings or comma-separated values. Added coerce_list() helper to normalize all input forms. Applied to 6 list parameters across 4 MCP tool files. Thanks to @Carlos-OL!
  • Non-ASCII characters in JSON output (#112) — Added ensure_ascii=False to json.dumps() across core and CLI layers. Thanks to @rujinlong!

Added

  • 13 new unit tests for coerce_list helper (total: 660 tests)