NotebookLM MCP Server

Integrates Google NotebookLM into Claude to manage notebooks and sources

README.md

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

Tools 3

list_notebooksList all available notebooks in your NotebookLM account
create_notebookCreate a new notebook
add_sourceAdd a URL, text, or file as a source to a notebook

Try it

List all my current NotebookLM notebooks.
Create a new notebook called 'Project Research' and add this URL as a source.
Generate a podcast summary for the notebook with ID '12345'.
Create a quiz based on the sources in my 'Meeting Notes' notebook.

Frequently Asked Questions

What are the key features of NotebookLM MCP?

List and create notebooks directly from Claude. Add URLs, text, and files as sources to notebooks. Generate diverse content including podcasts, slides, and reports. Natural language interaction with notebook sources.

What can I use NotebookLM MCP for?

Automating the ingestion of research papers into NotebookLM. Generating quick summaries and podcasts from meeting transcripts. Creating study materials like quizzes and flashcards from project documentation. Managing multiple research projects across Claude Desktop and CLI.

How do I install NotebookLM MCP?

Install NotebookLM MCP by running: git clone https://github.com/alfredang/notebooklm-mcp.git && cd notebooklm-mcp && uv sync

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.

Turn this server into reusable context

Keep NotebookLM MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare