NotebookLM MCP Server

NotebookLM MCP Server

Enables interaction with Google's NotebookLM through natural language, allowing users to create and manage notebooks, add sources from URLs/YouTube/Google Drive, query AI for insights, generate audio podcasts and other studio content, and perform AI-powered research and analysis.

Category
访问服务器

README

NotebookLM MCP Server

NotebookLM MCP Header

An MCP server for NotebookLM (notebooklm.google.com).

Note: Tested with Pro/free tier accounts. May work with NotebookLM Enterprise accounts but has not been tested.

📺 Watch the Demos

General Overview Claude Desktop Perplexity Desktop
General Claude Perplexity

Features

Tool Description
notebook_list List all notebooks
notebook_create Create a new notebook
notebook_get Get notebook details with sources
notebook_describe Get AI-generated summary of notebook content
source_describe Get AI-generated summary and keywords for a source
notebook_rename Rename a notebook
chat_configure Configure chat goal/style and response length
notebook_delete Delete a notebook (requires confirmation)
notebook_add_url Add URL/YouTube as source
notebook_add_text Add pasted text as source
notebook_add_drive Add Google Drive document as source
notebook_query Ask questions and get AI answers
source_list_drive List sources with freshness status
source_sync_drive Sync stale Drive sources (requires confirmation)
source_delete Delete a source from notebook (requires confirmation)
research_start Start Web or Drive research to discover sources
research_status Poll research progress with built-in wait
research_import Import discovered sources into notebook
audio_overview_create Generate audio podcasts (requires confirmation)
video_overview_create Generate video overviews (requires confirmation)
infographic_create Generate infographics (requires confirmation)
slide_deck_create Generate slide decks (requires confirmation)
studio_status Check studio artifact generation status
studio_delete Delete studio artifacts (requires confirmation)
save_auth_tokens Save cookies for authentication

Important Disclaimer

This MCP uses internal APIs that:

  • Are undocumented and may change without notice
  • Require cookie extraction from your browser (I have a tool for that!)

Use at your own risk for personal/experimental purposes.

Installation

Install from PyPI using your preferred Python package manager:

Using uv (Recommended)

uv tool install notebooklm-mcp-server

Using pip

pip install notebooklm-mcp-server

Using pipx

pipx install notebooklm-mcp-server

<details> <summary>Alternative: Install from Source</summary>

# Clone the repository
git clone https://github.com/jacob-bd/notebooklm-mcp.git
cd notebooklm-mcp

# Install with uv
uv tool install .

</details>

Upgrading

# Using uv
uv tool upgrade notebooklm-mcp-server

# Using pip
pip install --upgrade notebooklm-mcp-server

# Using pipx
pipx upgrade notebooklm-mcp-server

After upgrading, restart your AI tool to reconnect to the updated MCP server:

  • Claude Code: Restart the application, or use /mcp to reconnect
  • Cursor: Restart the application
  • Gemini CLI: Restart the CLI session

Uninstalling

To completely remove the MCP:

# Using uv
uv tool uninstall notebooklm-mcp-server

# Using pip
pip uninstall notebooklm-mcp-server

# Using pipx
pipx uninstall notebooklm-mcp-server

# Remove cached auth tokens (optional)
rm -rf ~/.notebooklm-mcp

Also remove from your AI tools:

Tool Command
Claude Code claude mcp remove notebooklm-mcp
Gemini CLI gemini mcp remove notebooklm-mcp
Cursor/VS Code Remove entry from ~/.cursor/mcp.json or ~/.vscode/mcp.json

Authentication

Before using the MCP, you need to authenticate with NotebookLM. Run:

# Recommended: Auto mode (launches Chrome, you log in)
notebooklm-mcp-auth

# Alternative: File mode (manual cookie extraction)
notebooklm-mcp-auth --file

Auto mode launches a dedicated Chrome profile, you log in to Google, and cookies are extracted automatically. Your login persists for future auth refreshes.

File mode shows instructions for manually extracting cookies from Chrome DevTools and saving them to a file.

After successful auth, add the MCP to your AI tool and restart.

For detailed instructions, troubleshooting, and how the authentication system works, see docs/AUTHENTICATION.md.

MCP Configuration

⚠️ Context Window Warning: This MCP provides 31 tools which consume a significant portion of your context window. It's recommended to disable the MCP when not actively using NotebookLM to preserve context for your other work. In Claude Code, use @notebooklm-mcp to toggle it on/off, or use /mcp command.

No environment variables needed - the MCP uses cached tokens from ~/.notebooklm-mcp/auth.json.

Claude Code (Recommended CLI Method)

Use the built-in CLI command to add the MCP server:

Add for all projects (recommended):

claude mcp add --scope user notebooklm-mcp notebooklm-mcp

Or add for current project only:

claude mcp add notebooklm-mcp notebooklm-mcp

That's it! Restart Claude Code to use the MCP tools.

Verify installation:

claude mcp list

<details> <summary>Alternative: Manual JSON Configuration</summary>

If you prefer to edit the config file manually, add to ~/.claude.json:

{
  "mcpServers": {
    "notebooklm-mcp": {
      "command": "notebooklm-mcp"
    }
  }
}

Restart Claude Code after editing. </details>

Cursor, VS Code, Claude Desktop & Other IDEs

For tools that use JSON configuration files:

Tool Config File Location
Cursor ~/.cursor/mcp.json
VS Code ~/.vscode/mcp.json
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

Step 1: Find your installed path:

which notebooklm-mcp

This typically returns /Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp on macOS.

Step 2: Add this configuration (replace the path with your result from Step 1):

{
  "mcpServers": {
    "notebooklm-mcp": {
      "command": "/Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp"
    }
  }
}

Restart the application after adding the configuration.

Other MCP-Compatible Tools

CLI tools with built-in MCP commands (AIDER, Codex, OpenCode, etc.):

<your-tool> mcp add notebooklm-mcp notebooklm-mcp

Tools using JSON config files — use the full path approach shown above.

Gemini CLI (Recommended CLI Method)

Use the built-in CLI command to add the MCP server:

Add for all projects (recommended):

gemini mcp add --scope user notebooklm-mcp notebooklm-mcp

Or add for current project only:

gemini mcp add notebooklm-mcp notebooklm-mcp

That's it! Restart Gemini CLI to use the MCP tools.

Verify installation:

gemini mcp list

<details> <summary>Alternative: Manual JSON Configuration</summary>

Add to ~/.gemini/settings.json under mcpServers (run which notebooklm-mcp to find your path):

"notebooklm-mcp": {
  "command": "/Users/<YOUR_USERNAME>/.local/bin/notebooklm-mcp"
}

Restart Gemini CLI after editing. </details>

Managing Context Window Usage

Since this MCP has 31 tools, it's good practice to disable it when not in use:

Claude Code:

# Toggle on/off by @-mentioning in chat
@notebooklm-mcp

# Or use the /mcp command to enable/disable
/mcp

Cursor/Gemini CLI:

  • Comment out the server in your config file when not needed
  • Or use your tool's MCP management features if available

What You Can Do

Simply chat with your AI tool (Claude Code, Cursor, Gemini CLI) using natural language. Here are some examples:

Research & Discovery

  • "List all my NotebookLM notebooks"
  • "Create a new notebook called 'AI Strategy Research'"
  • "Start web research on 'enterprise AI ROI metrics' and show me what sources it finds"
  • "Do a deep research on 'cloud marketplace trends' and import the top 10 sources"
  • "Search my Google Drive for documents about 'product roadmap' and create a notebook"

Adding Content

  • "Add this URL to my notebook: https://example.com/article"
  • "Add this YouTube video about Kubernetes to the notebook"
  • "Add my meeting notes as a text source to this notebook"
  • "Import this Google Doc into my research notebook"

AI-Powered Analysis

  • "What are the key findings in this notebook?"
  • "Summarize the main arguments across all these sources"
  • "What does this source say about security best practices?"
  • "Get an AI summary of what this notebook is about"
  • "Configure the chat to use a learning guide style with longer responses"

Content Generation

  • "Create an audio podcast overview of this notebook in deep dive format"
  • "Generate a video explainer with classic visual style"
  • "Make a briefing doc from these sources"
  • "Create flashcards for studying, medium difficulty"
  • "Generate an infographic in landscape orientation"
  • "Build a mind map from my research sources"
  • "Create a slide deck presentation from this notebook"

Smart Management

  • "Check which Google Drive sources are out of date and sync them"
  • "Show me all the sources in this notebook with their freshness status"
  • "Delete this source from the notebook"
  • "Check the status of my audio overview generation"

Pro tip: After creating studio content (audio, video, reports, etc.), poll the status to get download URLs when generation completes.

Authentication Lifecycle

Component Duration Refresh
Cookies ~2-4 weeks Re-extract from Chrome when expired
CSRF Token Per MCP session Auto-extracted on MCP start
Session ID Per MCP session Auto-extracted on MCP start

When cookies expire, you'll see an auth error. Just extract fresh cookies and call save_auth_tokens() again.

Troubleshooting

Chrome DevTools MCP Not Working (Cursor/Gemini CLI)

If Chrome DevTools MCP shows "no tools, prompts or resources" or fails to start, it's likely due to a known npx bug with the puppeteer-core module.

Symptoms:

  • Cursor/Gemini CLI shows MCP as connected but with "No tools, prompts, or resources"
  • Process spawn errors in logs: spawn pnpx ENOENT or module not found errors
  • Can't extract cookies for NotebookLM authentication

Fix:

  1. Install pnpm (if not already installed):

    npm install -g pnpm
    
  2. Update Chrome DevTools MCP configuration:

    For Cursor (~/.cursor/mcp.json):

    "chrome-devtools": {
      "command": "pnpm",
      "args": ["dlx", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
    }
    

    For Gemini CLI (~/.gemini/settings.json):

    "chrome-devtools": {
      "command": "pnpm",
      "args": ["dlx", "chrome-devtools-mcp@latest"]
    }
    
  3. Restart your IDE/CLI for changes to take effect.

Why this happens: Chrome DevTools MCP uses puppeteer-core which changed its module path in v23+, but npx caching behavior causes module resolution failures. Using pnpm dlx avoids this issue.

Related Issues:

Limitations

  • Rate limits: Free tier has ~50 queries/day
  • No official support: API may change without notice
  • Cookie expiration: Need to re-extract cookies every few weeks

Contributing

See CLAUDE.md for detailed API documentation and how to add new features.

Vibe Coding Alert

Full transparency: this project was built by a non-developer using AI coding assistants. If you're an experienced Python developer, you might look at this codebase and wince. That's okay.

The goal here was to scratch an itch - programmatic access to NotebookLM - and learn along the way. The code works, but it's likely missing patterns, optimizations, or elegance that only years of experience can provide.

This is where you come in. If you see something that makes you cringe, please consider contributing rather than just closing the tab. This is open source specifically because human expertise is irreplaceable. Whether it's refactoring, better error handling, type hints, or architectural guidance - PRs and issues are welcome.

Think of it as a chance to mentor an AI-assisted developer through code review. We all benefit when experienced developers share their knowledge.

License

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选