Open NotebookLM
Integrates with Google NotebookLM (Gemini Notebook) using the user's own signed-in Google account, letting agents create and manage notebooks, add sources, run Fast/Deep Research, chat with citations, and generate and download artifacts such as Audio/Video Overviews, slide decks, quizzes, mind maps and more.
Enables exporting generated reports (and other outputs) to Google Docs, producing shareable document links.
Allows adding Google Drive files as notebook sources and running Fast/Deep Research over Drive content.
Allows exporting generated data tables to Google Sheets.
Allows adding YouTube videos as sources to a notebook via URL, so their content can be used for grounded chat and artifact generation.
Click on "Deploy 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., "@Open NotebookLMCreate a notebook from ~/Downloads/report.pdf and generate a slide deck"
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.
Open NotebookLM
Use your own signed-in Google NotebookLM account (now called Gemini Notebook, notebook.google.com) from AI agents, scripts and the terminal, with no GUI. It works as an MCP server, a CLI, a local REST API and an OpenAI-compatible API.
You sign in once in a normal Chrome window. After that, Open NotebookLM keeps a hidden Chrome tab and calls the same internal endpoints the NotebookLM web app calls, from inside that tab. Your agent can do everything a person does in the UI: create notebooks, add sources, chat with citations, run Deep Research, and make Audio/Video Overviews, slide decks, quizzes, flashcards, mind maps, infographics, reports and data tables, then download them. It never asks for your password, and no cookies leave your browser.
your agent ──MCP / CLI / REST / OpenAI──▶ open-notebooklm (127.0.0.1:2791) ──▶ hidden Chrome tab on notebook.google.comAI agents: read
skills/open-notebooklm/SKILL.md. It covers setup, every tool, recipes and limits. Give your agent this repo's link and it can set itself up.
What it can do
Everything below was tested end to end against a live Google AI Pro account in October 2026. The two exceptions are sharing with another person (not tested, to avoid emailing anyone) and retrying a failed output (no output failed during testing).
CLI | MCP tool ( | |
List / create / rename / copy / delete notebooks |
|
|
Notebook summary + suggested questions |
|
|
Add web pages, YouTube, files (PDF, DOCX, PPTX, MD, TXT, CSV, EPUB, images, audio, video), pasted text, Google Drive |
|
|
Read a source's full text, its AI guide, search passages |
|
|
Rename / remove / re-sync sources |
|
|
Fast & Deep Research (web or Drive), import results + report |
|
|
Chat grounded in sources, numbered citations, follow-ups, multi-turn |
|
|
Chat history, clear history, custom persona / length |
|
|
Audio Overview (Deep Dive, Brief, Critique, Debate; short/default/long) → |
|
|
Video Overview (Explainer, Brief, Short, Cinematic*; 9 visual styles) → |
|
|
Slide deck (detailed / presenter) → |
|
|
Infographic (3 orientations, 3 detail levels, 11 styles) → |
|
|
Report (Briefing Doc, Study Guide, Blog Post, custom, suggested) → |
|
|
Quiz / Flashcards (quantity, difficulty) → |
|
|
Mind map → JSON tree |
|
|
Data table → |
|
|
List / read / wait / download / rename / delete / retry outputs |
|
|
Export reports to Google Docs, tables to Sheets |
|
|
Notes: list, add, edit, delete |
|
|
Sharing: people, public link, chat-only view |
|
|
AI source labels |
|
|
Plan, limits, live usage meter, output language |
|
|
* Cinematic video needs Google AI Ultra. What each plan allows: docs/plans-and-limits.md. How it was reverse-engineered: docs/how-it-works.md.
Related MCP server: gemini-notebook-mcp
Before you use it
This is unofficial and not affiliated with Google. It automates notebook.google.com with your own login. Use it on your own account for personal use. Google can change its internal API at any time.
It uses your account's real quotas (for example, about 3 Audio Overviews a day on the free plan).
Files you pass are local paths on the machine running Open NotebookLM. It only listens on 127.0.0.1.
Setup
Needs Node.js 20+ and Google Chrome (or Chromium). Set CHROME_PATH if Chrome isn't in the usual place.
git clone https://github.com/mkshaonexe/open-notebooklm.git
cd open-notebooklm
npm install
npm link # optional: puts `open-notebooklm` (alias `notebooklm`) on your PATH1. Sign in once. A Chrome window opens on NotebookLM; sign in to Google the normal way:
open-notebooklm loginThe session is kept in ~/.open-notebooklm/chrome-profile, a separate Chrome profile only Open NotebookLM uses.
2. Use it. Every command works on its own (it starts a hidden Chrome when needed), or start the server once and keep it running:
open-notebooklm serve # hidden Chrome; --show to see the windowIt prints the URL and your local API key (open-notebooklm key prints the key again).
CLI
<nb> is a notebook id or part of its title.
open-notebooklm notebooks
open-notebooklm create "Solar research"
open-notebooklm add "Solar" https://en.wikipedia.org/wiki/Solar_power https://youtu.be/xKxrkht7CpY ./notes.pdf \
--text "Bangladesh has 6M+ solar home systems." --title "My note"
open-notebooklm research "Solar" "solar panel recycling methods" --deep # finds + imports sources and a report
open-notebooklm ask "Solar" "What are the main challenges?" # answer + [1] [2] citations
open-notebooklm summary "Solar"
open-notebooklm generate "Solar" audio --format debate --length short -o podcast.m4a # waits, then downloads
open-notebooklm generate "Solar" video --format explainer --style whiteboard -o video.mp4
open-notebooklm generate "Solar" slide_deck --format presenter_slides -o deck.pdf
open-notebooklm generate "Solar" infographic --orientation portrait --style kawaii -o info.png
open-notebooklm generate "Solar" report --format study_guide -o guide.md
open-notebooklm generate "Solar" quiz --quantity more --difficulty hard -o quiz.json
open-notebooklm generate "Solar" flashcards --wait
open-notebooklm generate "Solar" mind_map -o map.json
open-notebooklm generate "Solar" data_table -i "compare each technology by efficiency and cost" -o table.csv
open-notebooklm artifacts "Solar" # every output and its status
open-notebooklm download "Solar" <artifact_id> -o deck.pptx --format pptx
open-notebooklm export "Solar" <report_id> # → Google Docs link (--sheets for data tables)
open-notebooklm revise-slide "Solar" <deck_id> 2 "Make this a 3-bullet summary"
open-notebooklm sources "Solar" ; source "Solar" <source_id> ; search "Solar" "perovskite"
open-notebooklm notes "Solar" ; add-note "Solar" "Idea" "Check IDCOL data"
open-notebooklm share "Solar" --public # --private, --add a@b.com --role viewer, --chat-only
open-notebooklm usage # live 5-hour / weekly meter
open-notebooklm account # plan, limits, output languageLong commands print progress on stderr (… generating audio (in_progress) (40s); --quiet hides it).
--json prints the full result. Without -o/--wait, generate returns at once with the artifact id.
MCP
stdio (simplest: it starts the hidden Chrome itself, or forwards to a running serve):
claude mcp add notebooklm -- node /path/to/open-notebooklm/bin/cli.js mcp{ "mcpServers": { "notebooklm": { "command": "node", "args": ["/path/to/open-notebooklm/bin/cli.js", "mcp"] } } }(after npm link: "command": "open-notebooklm", "args": ["mcp"])
Streamable HTTP (with serve running):
claude mcp add --transport http notebooklm http://127.0.0.1:2791/mcp \
--header "Authorization: Bearer $(open-notebooklm key)"51 tools, all prefixed notebooklm_. The full list with arguments is in
SKILL.md. Long tools (ask, add_sources, research, generate,
wait_for_artifact, download_artifact) send MCP progress notifications when the client passes a
progressToken. Failures come back as error results that name the step and the reason, for example
Failed while generating audio: NotebookLM usage limit reached for this account (5-hour window resets …).
Agent skill
skills/open-notebooklm/SKILL.md is a standard agent skill. Copy the
skills/open-notebooklm folder into your agent's skills directory (for Claude Code: ~/.claude/skills/),
or just point your agent at this repository: AGENTS.md tells it where to start.
REST
Every route except /health needs Authorization: Bearer <key>. The API is one route per method:
POST /api/<method> with the method's options as a JSON body (camelCase). The CLI and the MCP server
use the same methods.
KEY=$(open-notebooklm key)
curl -s localhost:2791/api/listNotebooks -H "authorization: Bearer $KEY" -d '{}'
curl -s localhost:2791/api/ask -H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"notebookId":"<id>","question":"Summarise the sources in 3 bullets"}'
curl -s localhost:2791/api/generate -H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"notebookId":"<id>","type":"audio","format":"brief","wait":true}'Group | Methods |
Account |
|
Notebooks |
|
Sources |
|
Research |
|
Chat |
|
Studio |
|
Notes |
|
Sharing |
|
Labels |
|
All notebook-scoped methods take notebookId.
OpenAI-compatible API
Each notebook is a "model". Answers are grounded in that notebook's sources, and the citations are listed at the end of the reply.
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:2791/v1", api_key="<open-notebooklm key>")
print([m.id for m in client.models.list()]) # notebook:<id> for every notebook
r = client.chat.completions.create(model="notebook:<notebook_id>",
messages=[{"role": "user", "content": "What do my sources say about X?"}])
print(r.choices[0].message.content)Only the newest user message is sent; the notebook keeps its own chat history.
Files and settings
Everything lives in ~/.open-notebooklm/ (override with OPEN_NOTEBOOKLM_HOME):
Path | |
| the signed-in Chrome profile |
| API key and settings (below) |
| outputs downloaded without |
| Default | |
|
| API port (env |
|
| Chrome debugging port, bound to 127.0.0.1 |
| per OS | env |
|
| env |
| account setting | default output language for generated outputs |
|
| how long |
If Google renames an internal RPC id, you can patch it without a new release:
OPEN_NOTEBOOKLM_RPC_OVERRIDES='{"LIST_NOTEBOOKS":"newId"}' (names are in src/rpc.js).
Credits
Built with the capture-the-traffic approach of reverse-api-engineer. The RPC map was cross-checked against the excellent reverse-engineering notes of notebooklm-py (MIT), and every call was verified against the live site. Same pattern as open-chatgpt.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that provides ~39 tools to interact with Google NotebookLM's internal API, enabling notebook management, source addition, chat queries, and Studio artifact generation through stdio, HTTP, and SSE transports.39MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for Google NotebookLM that lets AI agents chat with notebooks, add sources, generate audio overviews, and extract citations via a real Chrome browser.MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Google NotebookLM through a unified CLI and MCP server, featuring automatic multi-browser authentication and support for notebook queries, source management, notes, and audio generation.MIT
- AlicenseNot gradedqualityAmaintenanceEnables citation-backed Q&A with Google NotebookLM and programmatic generation of audio, video, infographics, reports, presentations, data tables, flashcards, quizzes, and mind maps, with multi-account rotation and auto-reauth for high-volume batch runs. It exposes the same engine over MCP for Claude Code, Cursor, and Codex, and as a 33-endpoint local HTTP REST API for n8n, Zapier, Make, and curl.1,206 npmMIT