notebooklm-mcp-cli

by jacob-bd

Not rated
GitHub

About

Programmatic access to Google NotebookLM — via command-line interface (CLI) or Model Context Protocol (MCP) server.

Details

Author
jacob-bd
Categories
Productivity, Other

Setup

Install notebooklm-mcp-cli in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/jacob-bd/notebooklm-mcp-cli

Follow the installation instructions in the repository README, then restart your MCP client.

Programmatic access to Google NotebookLM — via command-line interface (CLI) or Model Context Protocol (MCP) server.

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Complete reference for the Gemini Notebook (formerly Google NotebookLM) MCP server —43 toolsfor AI assistants.

# Install the package uv tool install notebooklm-mcp-cli # Add to Claude Code claude mcp add --scope user gemini-notebook-mcp notebooklm-mcp # Add to Gemini CLI gemini mcp add --scope user gemini-notebook-mcp notebooklm-mcp

Server naming:Usegemini-notebook-mcpas the server name when registering with your agent. The executable remainsnotebooklm-mcp. If you have a legacy browser-automation Gemini Notebook MCP installed under a different name (e.g.notebooklm), remove that one first — agents like Hermes get confused when two servers expose overlapping tool names (notebook_create,source_add,notebook_query, …).

See theMigrating from another Gemini Notebook MCPsection in the Getting Started guide for the full step-by-step.

source_list_drive( notebook_id="...", skip_freshness=False, # True skips per-source freshness API calls for faster listing )
source_add( notebook_id="...", source_type="url", # url | text | file | drive url="https://...", # for source_type=url text="...", # for source_type=text title="...", # optional title file_path="/path/to.pdf", # for source_type=file document_id="...", # for source_type=drive doc_type="doc", # doc | slides | sheets | pdf wait=True, # wait for processing to complete wait_timeout=120.0 # seconds to wait )

Queries use a 120-second wall-clock budget by default. Source-heavy notebooks can take longer than that; retry withtimeout=180(or another value suited to the notebook). For longer operations, usenotebook_query_startand pollnotebook_query_statusuntil it reportscompletedorerror. A timeout returns a structured error with a retry hint rather than an uninformative transport failure.

- audio- Podcast (formats: deep_dive, brief, critique, debate)
- video- Video overview (formats: explainer, brief, cinematic, short)
- report- Text report (Briefing Doc, Study Guide, Blog Post)
- quiz- Multiple choice quiz
- flashcards- Study flashcards
- mind_map- Visual mind map
- slide_deck- Presentation slides
- infographic- Visual infographic
- data_table- Structured data table

download_artifacttypes:audio,video,report,mind_map,slide_deck,infographic,data_table,quiz,flashcards

note(notebook_id, action="list") # List all notes note(notebook_id, action="create", content="...", title="...") note(notebook_id, action="update", note_id="...", content="...") note(notebook_id, action="delete", note_id="...", confirm=True)
label(notebook_id="abc", action="auto") # AI auto-labels all sources label(notebook_id="abc", action="list") # List current labels label(notebook_id="abc", action="reorganize", unlabeled_only=True) label(notebook_id="abc", action="create", name="Research", emoji="📚") label(notebook_id="abc", action="move_source", label_id="...", source_id="...") label(notebook_id="abc", action="delete", label_id="...", confirm=True)
batch(action="query", query="What are the key findings?", notebook_names="AI Research, Dev Tools") batch(action="add_source", source_url="https://...", tags="ai,research") batch(action="create", titles="Project A, Project B, Project C") batch(action="delete", notebook_names="Old Project", confirm=True) batch(action="studio", artifact_type="audio", tags="research", confirm=True)
cross_notebook_query(query="Compare approaches", notebook_names="Notebook A, Notebook B") cross_notebook_query(query="Summarize", tags="ai,research") cross_notebook_query(query="Everything", all=True)
pipeline(action="list") # List available pipelines pipeline(action="run", notebook_id="...", pipeline_name="ingest-and-podcast", input_url="https://...")

Built-in pipelines:ingest-and-podcast,research-and-report,multi-format

tag(action="add", notebook_id="...", tags="ai,research,llm") tag(action="remove", notebook_id="...", tags="ai") tag(action="list") # List all tagged notebooks tag(action="select", query="ai research") # Find notebooks by tag match
1. research_start(query="AI trends 2026", mode="deep") 2. research_status(notebook_id, auto_import=True) # waits up to 15 min, imports automatically # Or review sources first, then import manually: 2a. research_status(notebook_id) # waits up to 15 min, returns next_action hint 2b. research_import(notebook_id, task_id, cited_only=True, timeout=600) # optional cited subset 4. studio_create(notebook_id, artifact_type="audio", confirm=True) 5. studio_status(notebook_id, artifact_id=created_artifact_id) # poll one artifact 6. download_artifact(notebook_id, artifact_type="audio", output_path="podcast.mp3")

studio_statusreturns lean fields and at most 20 artifacts by default. Poll a new artifact withartifact_id, page large notebooks withlimit/offset, and setinclude_details=Trueonly when prompts, source IDs, report content, or media details are required.

source_add(notebook_id, source_type="url", url="https://...", wait=True) # Returns when source is fully processed and ready for queries
studio_create(notebook_id, artifact_type="quiz", question_count=10, confirm=True) studio_create(notebook_id, artifact_type="flashcards", difficulty="hard", confirm=True) studio_create(notebook_id, artifact_type="report", report_format="Study Guide", confirm=True) studio_create(notebook_id, artifact_type="audio", language="es-419", confirm=True)

For Audio Overviews, Gemini Notebook has been observed using BCP-47 region subtags to select the voice accent.esandes-ESproduce Spain Spanish, whilees-USandes-419produce Latin-American Spanish. The generation prompt does not reliably override the accent. Treat this as observed behavior, not a guaranteed API contract.

# Tag notebooks for organization tag(action="add", notebook_id="abc", tags="ai,research") tag(action="add", notebook_id="def", tags="ai,product") # Find relevant notebooks tag(action="select", query="ai research") # Query across tagged notebooks cross_notebook_query(query="What are the main conclusions?", tags="ai") # Batch generate podcasts for all tagged notebooks batch(action="studio", artifact_type="audio", tags="ai", confirm=True)
# List available pipelines pipeline(action="list") # Run a full ingest-and-podcast workflow pipeline(action="run", notebook_id="abc", pipeline_name="ingest-and-podcast", input_url="https://example.com")

Planning to connect from Claude web/mobile or expose the server over a network? ReadRemote MCP Deploymentfirst. HTTP transport support does not provide HTTPS, caller authentication, per-user Gemini Notebook accounts, or remote file transfer.

This MCP has43 toolswhich consume context. Best practices:

- Disable when not using: In Claude Code, use@gemini-notebook-mcpto toggle
- Hide tools you don't need: See
Selective tool exposurebelow to expose only a subset
- Use unified tools:source_add,studio_create,download_artifact,download_all_artifactshandle multiple operations each
- Poll wisely: Usestudio_statussparingly - artifacts take 1-5 minutes

Gating is opt-in: with no configuration all tools are visible. To reduce context, hide tools by group or by name via environment variables. Tools are hidden rather than removed, so no code changes are needed.

Resolution order (later wins):NOTEBOOKLM_DISABLED_GROUPS, thenNOTEBOOKLM_DISABLED_TOOLS, thenNOTEBOOKLM_ENABLED_TOOLS.

# Query-first setup: hide mutating groups, keep read + chat tools export NOTEBOOKLM_DISABLED_GROUPS="notebooks_manage,sources_manage,studio,research,sharing,notes" # Hide one extra tool, but keep studio_status from an otherwise-hidden group export NOTEBOOKLM_DISABLED_TOOLS="tag" export NOTEBOOKLM_ENABLED_TOOLS="studio_status"

Available groups:notebooks_read,notebooks_manage,sources_read,sources_manage,chat,query_multi,organization,automation,notes,auth,server,sharing,research,studio.

Unknown group names are ignored. Changes take effect on server restart.

The easiest way to configure any tool is withnlm setup:

nlm setup add claude-code # Claude Code nlm setup add gemini # Gemini CLI nlm setup add github-copilot # GitHub Copilot nlm setup add cursor # Cursor nlm setup add windsurf # Windsurf nlm setup add json # Any other tool (interactive JSON generator)
claude mcp add --scope user gemini-notebook-mcp notebooklm-mcp
{ "mcpServers": { "gemini-notebook-mcp": { "command": "/path/to/notebooklm-mcp" } } }
{ "servers": { "gemini-notebook-mcp": { "command": "notebooklm-mcp", "args": [] } } }
gemini mcp add --scope user gemini-notebook-mcp notebooklm-mcp

Search, cite, and read PDFs from your EndNote reference library directly in Claude Desktop

A Model Context Protocol (MCP) server for integrating Google Docs with AI clients.

An MCP server for integrating with and managing Google Docs.

Interact with Google Docs and Google Drive for document creation, editing, and file management, with support for shared drives.

Integrates Google Workspace services like Calendar, Drive, and Gmail with AI assistants.

Manage your job search directly. List jobs, create applications, add events, run company research, generate templates, and more.

An MCP server that uses Google's Gemini 1.5 Pro to generate concise summaries of various content types.

Create, read, update docs, spreadsheets, and presentations via AI. Connect your AI assistant to a full office suite.

This server enables you to search, retrieve, and parse MindMup files stored in your Google Drive directly through the MCP interface.

[Claude Code Plugin] Query Google NotebookLM directly from Claude Code via Chrome browser automation — get source-grounded, citation-backed answers with automatic follow-up analysis, all without leaving your terminal.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.