Skip to main content
Glama

NotebookLM MCP Server

CHANGELOG.md7.53 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.1.2] - 2025-10-19 ### Changed - **README Documentation** - Added Claude Code Skill reference - New badge linking to [notebooklm-skill](https://github.com/PleasePrompto/notebooklm-skill) repository - Added prominent callout section explaining Claude Code Skill availability - Clarified differences between MCP server and Skill implementations - Added navigation link to Skill repository in top menu - Both implementations use the same browser automation technology ## [1.1.1] - 2025-10-18 ### Fixed - **Binary executable permissions** - Fixed "Permission denied" error when running via npx - Added `postbuild` script that automatically runs `chmod +x dist/index.js` - Ensures binary has executable permissions after compilation - Fixes installation issue where users couldn't run the MCP server ### Repository - **Added package-lock.json** - Committed lockfile to repository for reproducible builds - Ensures consistent dependency versions across all environments - Improves contributor experience with identical development setup - Enables `npm ci` for faster, reliable installations in CI/CD - Follows npm best practices for library development (2025) ## [1.1.0] - 2025-10-18 ### Added - **Deep Cleanup Tool** - Comprehensive system cleanup for fresh NotebookLM MCP installations - Scans entire system for ALL NotebookLM files (installation data, caches, logs, temp files) - Finds hidden files in NPM cache, Claude CLI logs, editor logs, system trash, temp backups - Shows categorized preview before deletion with exact file list and sizes - Safe by design: Always requires explicit confirmation after preview - Cross-platform support: Linux, Windows, macOS - Enhanced legacy path detection for old config.json files - New dependency: globby@^14.0.0 for advanced file pattern matching - CHANGELOG.md for version tracking - Changelog badge and link in README.md ### Changed - **Configuration System Simplified** - No config files needed anymore! - `config.json` completely removed - works out of the box with sensible defaults - Settings passed as tool parameters (`browser_options`) or environment variables - Claude can now control ALL browser settings via tool parameters - `saveUserConfig()` and `loadUserConfig()` functions removed - **Unified Data Paths** - Consolidated from `notebooklm-mcp-nodejs` to `notebooklm-mcp` - Linux: `~/.local/share/notebooklm-mcp/` (was: `notebooklm-mcp-nodejs`) - macOS: `~/Library/Application Support/notebooklm-mcp/` - Windows: `%LOCALAPPDATA%\notebooklm-mcp\` - Old paths automatically detected by cleanup tool - **Advanced Browser Options** - New `browser_options` parameter for browser-based tools - Control visibility, typing speed, stealth mode, timeouts, viewport size - Stealth settings: Random delays, human typing, mouse movements - Typing speed: Configurable WPM range (default: 160-240 WPM) - Delays: Configurable min/max delays (default: 100-400ms) - Viewport: Configurable size (default: 1024x768, changed from 1920x1080) - All settings optional with sensible defaults - **Default Viewport Size** - Changed from 1920x1080 to 1024x768 - More reasonable default for most use cases - Can be overridden via `browser_options.viewport` parameter - Config directory (`~/.config/notebooklm-mcp/`) no longer created (not needed) - Improved logging for sessionStorage (NotebookLM does not use sessionStorage) - README.md updated to reflect config-less architecture ### Fixed - **Critical: envPaths() default suffix bug** - `env-paths` library appends `-nodejs` suffix by default - All paths were incorrectly created with `-nodejs` suffix - Fix: Explicitly pass `{suffix: ""}` to disable default behavior - Affects: `config.ts` and `cleanup-manager.ts` - Result: Correct paths now used (`notebooklm-mcp` instead of `notebooklm-mcp-nodejs`) - Enhanced cleanup tool to detect all legacy paths including manual installations - Added `getManualLegacyPaths()` method for comprehensive legacy file detection - Finds old config.json files across all platforms - Cross-platform legacy path detection (Linux XDG dirs, macOS Library, Windows AppData) - **Library Preservation Option** - cleanup_data can now preserve library.json - New parameter: `preserve_library` (default: false) - When true: Deletes everything (browser data, caches, logs) EXCEPT library.json - Perfect for clean reinstalls without losing notebook configurations - **Improved Auth Troubleshooting** - Better guidance for authentication issues - New `AuthenticationError` class with cleanup suggestions - Tool descriptions updated with troubleshooting workflows - `get_health` now returns `troubleshooting_tip` when not authenticated - Clear workflow: Close Chrome → cleanup_data(preserve_library=true) → setup_auth/re_auth - Critical warnings about closing Chrome instances before cleanup - **Critical: Browser visibility (show_browser) not working** - Fixed headless mode switching - **Root cause**: `overrideHeadless` parameter was not passed from `handleAskQuestion` to `SessionManager` - **Impact**: `show_browser=true` and `browser_options.show=true` were ignored, browser stayed headless - **Solution**: - `handleAskQuestion` now calculates and passes `overrideHeadless` parameter correctly - `SharedContextManager.getOrCreateContext()` checks for headless mode changes before reusing context - `needsHeadlessModeChange()` now checks CONFIG.headless when no override parameter provided - **Session behavior**: When browser mode changes (headless ↔ visible): - Existing session is automatically closed and recreated with same session ID - Browser context is recreated with new visibility mode - Chat history is reset (message_count returns to 0) - This is necessary because NotebookLM chat state is not persistent across browser restarts - **Files changed**: `src/tools/index.ts`, `src/session/shared-context-manager.ts` ### Removed - Empty postinstall scripts (cleaner codebase) - Deleted: `src/postinstall.ts`, `dist/postinstall.js`, type definitions - Removed: `postinstall` npm script from package.json - Follows DRY & KISS principles ## [1.0.5] - 2025-10-17 ### Changed - Documentation improvements - Updated README installation instructions ## [1.0.4] - 2025-10-17 ### Changed - Enhanced usage examples in documentation - Fixed formatting in usage guide ## [1.0.3] - 2025-10-16 ### Changed - Improved troubleshooting guide - Added common issues and solutions ## [1.0.2] - 2025-10-16 ### Fixed - Fixed typos in documentation - Clarified authentication flow ## [1.0.1] - 2025-10-16 ### Changed - Enhanced README with better examples - Added more detailed setup instructions ## [1.0.0] - 2025-10-16 ### Added - Initial release - NotebookLM integration via Model Context Protocol (MCP) - Session-based conversations with Gemini 2.5 - Source-grounded answers from notebook documents - Notebook library management system - Google authentication with persistent browser sessions - 16 MCP tools for comprehensive NotebookLM interaction - Support for Claude Code, Codex, Cursor, and other MCP clients - TypeScript implementation with full type safety - Playwright browser automation with stealth mode

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PleasePrompto/notebooklm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server