NotebookLM MCP MCP Server

$uv run python server.py
README.md

Brings Google NotebookLM into Claude Desktop and Claude Code.

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)

macOS / Linux
# Using curl
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or with Homebrew (macOS)
brew install uv

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

Windows
# 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 uv path:

macOS / Linux
which uv

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

Windows
where uv

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

Find your project path:

macOS / Linux
cd notebooklm-mcp && pwd

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

Windows
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:

macOS path

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

Windows path

%APPDATA%\Claude\claude_desktop_config.json

3.3 Add the MCP Server Configuration

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

macOS / Linux Configuration
{
  "mcpServers": {
    "notebooklm": {
      "command": "<UV_PATH>",
      "args": [
        "--directory",
        "",
        "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"
      ]
    }
  }
}
Windows Configuration
{
  "mcpServers": {
    "notebo

Configuration

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

Try it

List all my NotebookLM notebooks.
Create a new notebook named 'Project Research'.
Add this URL as a source to my latest notebook: https://example.com/article.
Generate a podcast from the sources in my 'AI Trends' notebook.
Chat with the sources in my notebook about key findings.

Frequently Asked Questions

How do I install NotebookLM MCP?

Install NotebookLM MCP by running: uv run python server.py

What MCP clients work with NotebookLM MCP?

NotebookLM MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use NotebookLM MCP with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free