Skip to main content
Glama
harriedgemusic

NotebookLM MCP Server

README.md
# NotebookLM MCP Server

This is an unofficial Model Context Protocol (MCP) server for [Google NotebookLM](https://notebooklm.google.com), allowing AI agents and assistants (like Google Antigravity, Claude Code, Cursor, etc.) to query your Notebooks and retrieve citation-backed answers.

## Prerequisites

- Python 3.10+
- A Google NotebookLM session cookie.

## Installation

1. Clone this repository.
2. Initialize and activate a virtual environment:
   ```bash
   python3 -m venv .venv
   source .venv/bin/activate
   ```
3. Install dependencies:
   ```bash
   pip install .
   ```

## Configuration

You need to authenticate the unofficial API so it can access your Notebooks.

1. **Authenticate via Playwright**:
   Run the interactive login command provided by `notebooklm-py`:
   ```bash
   uv run notebooklm login
   # or if using a standard python venv:
   notebooklm login
   ```
   This will open a Chromium browser window where you can log in to your Google Account. Once logged in and on the NotebookLM page, close the browser. The session will be saved locally.


## Usage

Start the MCP server over `stdio` using the command-line entry point:

```bash
uv run python -m mcp_notebooklm
# or if using standard python venv:
python -m mcp_notebooklm
```

### Server Tools

This server exposes the following MCP tools:

- `list_notebooks`: Lists all your Notebooks (returns their IDs and Titles).
- `get_notebook_sources`: Retrieves the data sources for a specific notebook.
- `ask_notebook`: Passes a natural language query to a specific notebook and returns the AI-generated answer.
- `select_notebook`: Selects a notebook by ID and creates a local directory for it.
- `create_note`: Creates a new text note in the specified notebook.
- `download_notes`: Downloads all notes from a specific notebook into a local subfolder.
- `generate_audio`: Generates an Audio Overview (podcast) for a notebook.
- `generate_video`: Generates a Video Overview for a notebook.
- `generate_slides`: Generates a Slide Deck for a notebook.
- `generate_infographic`: Generates an Infographic for a notebook.
- `generate_report`: Generates a Report (Briefing Doc, Study Guide, Blog Post, Custom) for a notebook.

## Using with Claude Desktop or Antigravity

Add this to your MCP settings configuration (`mcp.json` or equivalent):

```json
{
  "mcpServers": {
    "notebooklm": {
      "command": "/path/to/your/virtualenv/bin/python",
      "args": [
        "-m",
        "mcp_notebooklm"
      ],
      "cwd": "/path/to/this/repo"
    }
  }
}
```

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: ask_notebook queries content, create_note adds notes, download_notes exports files, generate_* tools create different output formats, get_notebook_sources retrieves sources, list_notebooks enumerates notebooks, and select_notebook sets up local directories. The tools target different actions on notebooks without overlap.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout: ask_notebook, create_note, download_notes, generate_audio, generate_infographic, generate_report, generate_slides, generate_video, get_notebook_sources, list_notebooks, select_notebook. All use snake_case with clear verbs aligned to their functions.

Tool Count5/5

With 11 tools, this is well-scoped for a NotebookLM server, covering core operations like querying, note management, content generation in multiple formats, source retrieval, and notebook selection. Each tool earns its place without bloat, fitting typical MCP server ranges.

Completeness4/5

The toolset provides comprehensive coverage for NotebookLM workflows, including CRUD-like operations (create_note, list_notebooks), content generation in various formats, and utility functions. Minor gaps exist, such as no update/delete for notes or notebooks, but agents can work around these with the available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues