Skip to main content
Glama

NotebookLM MCP for Claude (Desktop & CLI)

A powerful MCP (Model Context Protocol) server that brings Google NotebookLM into Claude Desktop and Claude Code.

Features

  • Research: List and create notebooks

  • Content: Add URLs, text, and files as sources

  • Generation: Create Podcasts, Videos, Slides, Mind Maps, Infographics, Quizzes, Flashcards, and Reports

  • Natural Interaction: Chat directly with your sources using Claude's reasoning


Prerequisites

1. Install uv (Python Package Manager)

# Using curl curl -LsSf https://astral.sh/uv/install.sh | sh # Or with Homebrew (macOS) brew install uv

Default install location: ~/.local/bin/uv

# Using PowerShell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Or with Scoop scoop install uv # Or with winget winget install --id=astral-sh.uv -e

Default install location: %USERPROFILE%\.local\bin\uv.exe

Verify installation:

uv --version

2. Clone and Install Dependencies

# Clone the repository git clone https://github.com/alfredang/notebooklm-mcp.git # Navigate to the project folder cd notebooklm-mcp # Install dependencies (includes notebooklm-py and fastmcp) uv sync

This will:

  • Create a .venv virtual environment

  • Install notebooklm-py (Python client for NotebookLM API)

  • Install fastmcp (MCP server framework)

Note: These dependencies are required for both Claude Desktop and Claude Code.


Step 1: Authenticate with NotebookLM

NotebookLM uses browser-based authentication. You must login once to save your session cookies.

cd notebooklm-mcp uv run notebooklm login

What happens:

  1. A browser window will open automatically

  2. Log in to your Google account

  3. Navigate to NotebookLM if not redirected automatically

  4. Wait until the terminal displays "Success"

  5. Close the browser

Verify authentication:

uv run python -c " from notebooklm import NotebookLMClient import asyncio async def test(): client = await NotebookLMClient.from_storage() async with client: notebooks = await client.notebooks.list() print(f'Authenticated! Found {len(notebooks)} notebooks.') asyncio.run(test()) "

You should see: Authenticated! Found X notebooks.


Step 2: Test the MCP Server

Before configuring Claude, verify the server starts correctly:

cd notebooklm-mcp uv run python server.py

Expected output:

Starting NotebookLM MCP server... NotebookLM client initialized successfully Starting MCP server 'NotebookLM' with transport 'stdio'

Press Ctrl+C (or Cmd+C on Mac) to stop the server after confirming it works.


Step 3: Setup for Claude Desktop

3.1 Find Your Paths

You'll need two paths for the configuration:

Find your

which uv

Example output: /Users/yourname/.local/bin/uv

where uv

Example output: C:\Users\yourname\.local\bin\uv.exe

Find your project path:

cd notebooklm-mcp && pwd

Example output: /Users/yourname/projects/notebooklm-mcp

cd notebooklm-mcp; (Get-Location).Path

Example output: C:\Users\yourname\projects\notebooklm-mcp

3.2 Open the Config File

From Claude Desktop (Recommended):

  1. Open Claude Desktop

  2. Go to Settings (gear icon) → DeveloperEdit Config

  3. This opens claude_desktop_config.json in your default editor

Or manually:

~/Library/Application Support/Claude/claude_desktop_config.json

%APPDATA%\Claude\claude_desktop_config.json

3.3 Add the MCP Server Configuration

Important: Replace <UV_PATH> and <PROJECT_PATH> with your actual paths from Step 3.1

{ "mcpServers": { "notebooklm": { "command": "<UV_PATH>", "args": [ "--directory", "<PROJECT_PATH>", "run", "python", "server.py" ] } } }

Example with real paths:

{ "mcpServers": { "notebooklm": { "command": "/Users/yourname/.local/bin/uv", "args": [ "--directory", "/Users/yourname/projects/notebooklm-mcp", "run", "python", "server.py" ] } } }
{ "mcpServers": { "notebooklm": { "command": "<UV_PATH>", "args": [ "--directory", "<PROJECT_PATH>", "run", "python", "server.py" ] } } }

Example with real paths:

{ "mcpServers": { "notebooklm": { "command": "C:\\Users\\yourname\\.local\\bin\\uv.exe", "args": [ "--directory", "C:\\Users\\yourname\\projects\\notebooklm-mcp", "run", "python", "server.py" ] } } }

Note: On Windows, use double backslashes (\\) in JSON paths.

3.4 Restart Claude Desktop

Platform

How to Restart

macOS

Press Cmd+Q to fully quit, then reopen

Windows

Right-click tray icon → Quit, then reopen

Look for the hammer icon in the chat input area - this indicates MCP tools are available.

3.5 Verify Connection

In Claude Desktop, type:

List my NotebookLM notebooks

Claude should use the list_notebooks tool and display your notebooks.


Step 4: Setup for Claude Code (CLI)

Prerequisites: Complete Steps 1-2 first (install dependencies with uv sync and authenticate with uv run notebooklm login).

4.1 Add the MCP Server

Replace <PROJECT_PATH> with your actual project path:

claude mcp add notebooklm -- uv --directory <PROJECT_PATH> run python server.py

Example:

claude mcp add notebooklm -- uv --directory /Users/yourname/projects/notebooklm-mcp run python server.py
claude mcp add notebooklm -- uv --directory <PROJECT_PATH> run python server.py

Example:

claude mcp add notebooklm -- uv --directory C:\Users\yourname\projects\notebooklm-mcp run python server.py

4.2 Verify the Server is Added

claude mcp list

You should see notebooklm in the list.

4.3 Test in Claude Code

Start a new Claude Code session:

claude

Then ask:

List my NotebookLM notebooks

Usage Examples

Once configured, use natural language commands in Claude Desktop or Claude Code:

Task

Example Command

List notebooks

"Show me all my NotebookLM notebooks"

Create notebook

"Create a new notebook called 'Research Project'"

Add URL source

"Add this URL to my notebook: https://example.com/article"

Generate podcast

"Generate a podcast for notebook ID xyz123"

Create slides

"Make a slide deck from my 'Research Project' notebook"

Generate mind map

"Create a mind map for notebook abc456"

Create quiz

"Generate a quiz based on my notebook sources"

Make flashcards

"Create study flashcards from this notebook"


Available Tools

Tool

Description

list_notebooks

List all notebooks in your account

create_notebook

Create a new notebook

add_source_url

Add a website URL as a source

add_source_text

Add raw text as a source

ask_notebook

Ask a question based on notebook sources

get_notebook_summary

Get summary and key insights

generate_audio_overview

Generate a podcast-style audio

generate_video_overview

Generate a video overview

generate_slide_deck

Generate PowerPoint-style slides

generate_mind_map

Generate an interactive mind map

generate_infographic

Generate a visual infographic

generate_quiz

Generate quiz questions

generate_flashcards

Generate study flashcards

generate_summary_report

Generate a briefing document

generate_data_table

Extract data into a table


Troubleshooting

"Server disconnected" or "Failed to spawn process"

Cause: Claude Desktop can't find uv because it doesn't inherit your shell's PATH.

Solution: Use the full absolute path to uv in the config (see Step 3.1).


"Command not found: uv"

Add to your shell profile (~/.zshrc or ~/.bashrc):

export PATH="$HOME/.local/bin:$PATH"

Then reload:

source ~/.zshrc # or source ~/.bashrc

Add to your PATH:

  1. Open System Properties → Environment Variables

  2. Under "User variables", edit Path

  3. Add: %USERPROFILE%\.local\bin

  4. Restart your terminal


MCP Server Not Appearing in Claude Desktop

Cause: Invalid JSON in config file or Claude not restarted properly.

Solution:

  1. Validate your JSON at https://jsonlint.com/

  2. Ensure no trailing commas in the JSON

  3. Fully quit and reopen Claude Desktop


"NotebookLM client not initialized"

Cause: Server started before authentication was complete.

Solution:

  1. Run uv run notebooklm login first

  2. Restart Claude Desktop or re-add the MCP server in Claude Code


Check Claude Desktop Logs

# View recent logs tail -100 ~/Library/Logs/Claude/mcp*.log # Or open in Finder open ~/Library/Logs/Claude/
# View logs folder explorer "$env:APPDATA\Claude\logs"

Remove and Re-add MCP Server (Claude Code)

If issues persist:

claude mcp remove notebooklm claude mcp add notebooklm -- uv --directory <PROJECT_PATH> run python server.py

Updating

To update the NotebookLM library:

cd notebooklm-mcp uv sync --upgrade

Project Structure

notebooklm-mcp/ ├── server.py # MCP server implementation ├── pyproject.toml # Project dependencies ├── README.md # This file ├── SKILL.md # Claude Code skill definition └── .venv/ # Virtual environment (auto-created)

License

MIT License

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/alfredang/notebooklm-mcp'

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