notebooklm-mcp
# notebooklm-mcp
An MCP (Model Context Protocol) server that lets Claude interact with [Google NotebookLM](https://notebooklm.google.com) via browser automation.
## Usage
```bash
npx notebooklm-mcp@latest
```
## Setup
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"notebooklm": {
"command": "npx",
"args": ["-y", "notebooklm-mcp@latest"]
}
}
}
```
### VS Code / Cursor / Cline
```json
{
"mcp": {
"servers": {
"notebooklm": {
"command": "npx",
"args": ["-y", "notebooklm-mcp@latest"]
}
}
}
}
```
## Authentication
On first run, a Chrome browser window opens automatically. Log in to your Google account and navigate to NotebookLM. The session is saved to `~/.notebooklm-mcp/session` so you only need to log in once.
## Environment Variables
| Variable | Default | Description |
|---|---|---|
| `NOTEBOOKLM_HEADLESS` | `false` | Set to `true` to run browser headless (requires existing session) |
| `NOTEBOOKLM_USER_DATA_DIR` | `~/.notebooklm-mcp/session` | Path to Chrome profile for persistent sessions |
## Available Tools
| Tool | Description |
|---|---|
| `list_notebooks` | List all notebooks in your account |
| `create_notebook` | Create a new notebook |
| `open_notebook` | Open a notebook by title or ID |
| `add_source` | Add a URL or text source to the open notebook |
| `query_notebook` | Ask a question and get an AI response |
| `get_notebook_info` | Get title and sources of the open notebook |
| `delete_notebook` | Delete a notebook |
## Example Prompts
- "List my NotebookLM notebooks"
- "Create a notebook called 'Research Notes'"
- "Open the 'Research Notes' notebook and add this URL as a source: https://example.com/paper"
- "Ask the notebook: What are the key findings?"
## Requirements
- Node.js 18+
- A Google account with access to NotebookLM
## License
MIT
TDQS
Scored across 7 tools
Each tool targets a distinct action: creating, deleting, opening, listing notebooks; adding sources; querying; getting info. No overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_notebook, add_source, query_notebook), making the interface predictable.
With 7 tools, the set covers the core operations for NotebookLM management without being overly large or too sparse, perfectly scoped for the domain.
The tools cover CRUD-like operations for notebooks and basic source management and querying. Minor gaps like the inability to remove a source or rename a notebook exist but do not severely hinder the main workflow.