Provides tools for interacting with Google NotebookLM, enabling users to create and manage notebooks, add URLs or text as sources, and generate AI-driven content such as podcasts, slide decks, mind maps, and research reports.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NotebookLM MCPgenerate a podcast from the sources in my research notebook"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 uvDefault 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 -eDefault install location: %USERPROFILE%\.local\bin\uv.exe
Verify installation:
uv --version2. 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 syncThis will:
Create a
.venvvirtual environmentInstall 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 loginWhat happens:
A browser window will open automatically
Log in to your Google account
Navigate to NotebookLM if not redirected automatically
Wait until the terminal displays "Success"
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.pyExpected 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 uvExample output: /Users/yourname/.local/bin/uv
where uvExample output: C:\Users\yourname\.local\bin\uv.exe
Find your project path:
cd notebooklm-mcp && pwdExample output: /Users/yourname/projects/notebooklm-mcp
cd notebooklm-mcp; (Get-Location).PathExample output: C:\Users\yourname\projects\notebooklm-mcp
3.2 Open the Config File
From Claude Desktop (Recommended):
Open Claude Desktop
Go to Settings (gear icon) → Developer → Edit Config
This opens
claude_desktop_config.jsonin 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 |
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 notebooksClaude 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 syncand authenticate withuv 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.pyExample:
claude mcp add notebooklm -- uv --directory /Users/yourname/projects/notebooklm-mcp run python server.pyclaude mcp add notebooklm -- uv --directory <PROJECT_PATH> run python server.pyExample:
claude mcp add notebooklm -- uv --directory C:\Users\yourname\projects\notebooklm-mcp run python server.py4.2 Verify the Server is Added
claude mcp listYou should see notebooklm in the list.
4.3 Test in Claude Code
Start a new Claude Code session:
claudeThen ask:
List my NotebookLM notebooksUsage 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 all notebooks in your account |
| Create a new notebook |
| Add a website URL as a source |
| Add raw text as a source |
| Ask a question based on notebook sources |
| Get summary and key insights |
| Generate a podcast-style audio |
| Generate a video overview |
| Generate PowerPoint-style slides |
| Generate an interactive mind map |
| Generate a visual infographic |
| Generate quiz questions |
| Generate study flashcards |
| Generate a briefing document |
| 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 ~/.bashrcAdd to your PATH:
Open System Properties → Environment Variables
Under "User variables", edit
PathAdd:
%USERPROFILE%\.local\binRestart your terminal
MCP Server Not Appearing in Claude Desktop
Cause: Invalid JSON in config file or Claude not restarted properly.
Solution:
Validate your JSON at https://jsonlint.com/
Ensure no trailing commas in the JSON
Fully quit and reopen Claude Desktop
"NotebookLM client not initialized"
Cause: Server started before authentication was complete.
Solution:
Run
uv run notebooklm loginfirstRestart 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.pyUpdating
To update the NotebookLM library:
cd notebooklm-mcp
uv sync --upgradeProject 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