NotebookLM MCP
Integrates Google NotebookLM into Claude to allow users to manage notebooks, add sources, and generate diverse content like podcasts, slides, and reports. It enables natural language interaction with notebook sources across Claude Desktop and Claude Code.
README
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)
<details> <summary><strong>macOS / Linux</strong></summary>
# Using curl
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with Homebrew (macOS)
brew install uv
Default install location: ~/.local/bin/uv
</details>
<details> <summary><strong>Windows</strong></summary>
# 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
</details>
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
.venvvirtual 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:
- 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.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:
<details> <summary><strong>macOS / Linux</strong></summary>
which uv
Example output: /Users/yourname/.local/bin/uv
</details>
<details> <summary><strong>Windows</strong></summary>
where uv
Example output: C:\Users\yourname\.local\bin\uv.exe
</details>
Find your project path:
<details> <summary><strong>macOS / Linux</strong></summary>
cd notebooklm-mcp && pwd
Example output: /Users/yourname/projects/notebooklm-mcp
</details>
<details> <summary><strong>Windows</strong></summary>
cd notebooklm-mcp; (Get-Location).Path
Example output: C:\Users\yourname\projects\notebooklm-mcp
</details>
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:
<details> <summary>macOS path</summary>
~/Library/Application Support/Claude/claude_desktop_config.json
</details>
<details> <summary>Windows path</summary>
%APPDATA%\Claude\claude_desktop_config.json
</details>
3.3 Add the MCP Server Configuration
Important: Replace
<UV_PATH>and<PROJECT_PATH>with your actual paths from Step 3.1
<details> <summary><strong>macOS / Linux Configuration</strong></summary>
{
"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"
]
}
}
}
</details>
<details> <summary><strong>Windows Configuration</strong></summary>
{
"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.
</details>
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 syncand authenticate withuv run notebooklm login).
4.1 Add the MCP Server
Replace <PROJECT_PATH> with your actual project path:
<details> <summary><strong>macOS / Linux</strong></summary>
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
</details>
<details> <summary><strong>Windows</strong></summary>
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
</details>
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"
<details> <summary><strong>macOS / Linux</strong></summary>
Add to your shell profile (~/.zshrc or ~/.bashrc):
export PATH="$HOME/.local/bin:$PATH"
Then reload:
source ~/.zshrc # or source ~/.bashrc
</details>
<details> <summary><strong>Windows</strong></summary>
Add to your PATH:
- Open System Properties → Environment Variables
- Under "User variables", edit
Path - Add:
%USERPROFILE%\.local\bin - Restart your terminal
</details>
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 loginfirst - Restart Claude Desktop or re-add the MCP server in Claude Code
Check Claude Desktop Logs
<details> <summary><strong>macOS</strong></summary>
# View recent logs
tail -100 ~/Library/Logs/Claude/mcp*.log
# Or open in Finder
open ~/Library/Logs/Claude/
</details>
<details> <summary><strong>Windows</strong></summary>
# View logs folder
explorer "$env:APPDATA\Claude\logs"
</details>
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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。