NotebookLM MCP
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 uv path:
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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