Skip to main content
Glama

NotebookLM REST API + MCP server

Automate Google NotebookLM at scale. 33-endpoint HTTP REST API for n8n / Zapier / Make / curl, plus an MCP server for Claude Code / Cursor / Codex. Citation-backed Q&A, full Studio generation (audio · video · infographic · report · presentation · data table), multi-account rotation with auto-reauth across personal and Google Workspace accounts.

v3.1.2 — generated content now comes back in the language you asked for. The interface locale was deciding the language of every audio overview, report and mind map, overriding the language argument — which was itself documented in a form NotebookLM never accepts. Both transports fixed and verified live. Also: reading a source's full indexed text (source_read, paginated), manage_labels working for the first time, and RPC refusals reported as refusals instead of as a rotated endpoint id. Built on a dual transport — the internal batchexecute RPC API (10-100× faster than scraping, immune to UI rebrands) with the Playwright browser as an automatic fallback, both shipped permanently. Batch-tested on overnight runs of 1 000+ questions. See the changelog. Compare with PleasePrompto/notebooklm-mcp for when this project is the right pick (REST API, full Studio, auto-reauth).

Note (July 2026): Google rebranded NotebookLM to Gemini Notebook. It is the same product, existing links redirect, and this project drives the same underlying service — the browser path was updated for the new DOM in v2.3.0 and the RPC path in v3.0.0. Package and repository keep the notebooklm name.

CI npm version npm downloads codecov License: MIT TypeScript Node.js

MCP Claude Code n8n GitHub MCP Toplist


Unofficial project — good to know before you start

This is not affiliated with Google. It talks to the same batchexecute endpoints the NotebookLM web app uses, with a browser fallback when they move. They are undocumented, so they can change without notice — when that happens we ship a fix, as we have for every change so far.

Two practical notes: use a dedicated Google account for automation, and expect NotebookLM's own quotas to apply at high volume. See Disclaimer for the full text.


What You Can Build

🔗 No-code automation pipelines — The 33-endpoint REST API means NotebookLM becomes a step in n8n, Zapier, Make, or a plain curl in cron. No agent, no MCP client, no Node in your stack — just HTTP. This is the half most NotebookLM libraries don't have.

🤖 Agent tooling — The same engine over MCP for Claude Code, Cursor and Codex, with a bundled skill that primes the agent on citation formats, the daily-quota-aware batch pattern, and transport selection.

📚 Research at volume — Multi-account rotation with automatic re-authentication, built for overnight runs of 1 000+ questions across several notebooks without babysitting.

🎙️ Full Studio generation — Audio overviews, video, infographics, reports, presentations, data tables, plus flashcards, quizzes and mind maps — generated and downloaded programmatically.

Related MCP server: notebooklm-mcp

Use Cases & Recipes

NotebookLM is a grounded engine: Gemini reads your sources and answers from them, with citations. The winning pattern is to let it do the expensive reading while your own stack handles orchestration and the last mile.

Spend fewer tokens — offload the reading

  • 🪙 Zero-token synthesis layer — Drop 30 documents in a notebook, let Gemini do the heavy analysis, and spend your agent's context only on the final polish. The reasoning happens server-side; your agent just orchestrates (add_notebooksource_addnotebook_ask).

  • 💾 Answer cache you can re-read offlinevault_batch writes every answer to disk as structured JSON against a published schema, so a batch run becomes a corpus you can grep, diff, re-index, or feed to a retrieval layer — without re-querying and re-spending quota.

Wire it into things that aren't agents

  • ⚙️ NotebookLM as an n8n / Zapier / Make step — Because it speaks plain HTTP, a citation-backed answer becomes one node in a workflow: a form submission triggers a question, the cited answer lands in a sheet, a Slack message, or a database. No agent runtime involved.

  • 📄 Document intake pipeline — Watch a folder or an inbox, push new PDFs and URLs in as sources, and ask a standing set of questions against them on every arrival.

Grounded answers with a paper trail

  • 🔍 Citations with the actual source text — Answers come back with source names and the quoted excerpts they rest on, extracted from the citation panel — so a claim can be checked, not just attributed.

  • 🎓 Literature review at thesis scale — Batch 100+ research questions across multiple notebooks, rotate accounts as daily quotas run out, and resume where it stopped. Built for, and tested on, exactly this.

Get artifacts back out

  • 🔁 One source set, every format — Fan a single notebook out to a podcast, a video, a slide deck, a report, a quiz and a mind map, then download them all locally.


In the Wild

Real deployments, not hypotheticals.

  • 📚 A doctoral literature review at batch scale — The project was built for, and is continuously tested on, overnight runs of 1 000+ research questions spread across several notebooks: multi-account rotation picks up when a daily quota runs out, every answer is written to disk with its citations, and an interrupted run resumes instead of starting over. The batch pattern in vault_batch exists because a thesis needed it.

  • 🔌 Replacing a RAG engine with the REST APImusnymubarak/Calim_Doc swapped a Gemini-based retrieval engine for this project's HTTP API, running it as a Docker service (notebooklm:3000) behind a full client and worker layer. A good illustration of the REST half: no agent runtime, no MCP client — NotebookLM simply became a backend service their Python app calls.

Built something with it? Open an issue — this section is for other people's work.

Features

Q&A with Citations

  • Ask questions to NotebookLM and get accurate, citation-backed answers

  • Source citation extraction with 5 formats: none, inline, footnotes, json, expanded (97% excerpt success rate)

  • Session management for multi-turn conversations with auto-reauth on session expiry

Content Generation

Generate multiple content types from your notebook sources:

Content Type

Formats

Options

Audio Overview

Podcast-style discussion

Language (80+), custom instructions

Video

Brief, Explainer

6 visual styles, language, custom instructions

Infographic

Horizontal, Vertical

Language, custom instructions

Report

Summary, Detailed

Language, custom instructions

Presentation

Overview, Detailed

Language, custom instructions

Data Table

Simple, Detailed

Language, custom instructions

Flashcards

Study cards

Language, custom instructions

Quiz

Assessment questions

Language, custom instructions

Mind Map

Interactive node graph

Saved to the notebook

Video Visual Styles: classroom, documentary, animated, corporate, cinematic, minimalist

Language of generated content: pass language to any generator — a BCP-47 code (es, ja, pt_BR, zh_Hans) or a name in English or in the language itself ("Spanish", "Español"). 81 languages are accepted, and an unrecognised one is refused rather than quietly swapped for another. Set a default with NOTEBOOKLM_CONTENT_LANGUAGE; it is deliberately independent of NOTEBOOKLM_UI_LOCALE, which only picks the interface language the browser fallback reads.

Flashcards and quizzes are generated via generate_study_aid; mind maps via generate_mind_map. v3 also adds share_notebook, manage_labels, and research_sources (web/Drive source discovery) — see the changelog.

Content Download

  • Download Audio — WAV audio files

  • Download Video — MP4 video files

  • Download Infographic — PNG image files

  • Text-based content (report, presentation, data_table) is returned in the API response

Source Management

  • Add sources: Files (PDF, TXT, DOCX), URLs, Text, YouTube videos, Google Drive

  • List sources: Every source with its ID and title (source_list)

  • Read a source in full (source_read): the exact text NotebookLM indexed — what it actually reasons over, which the web UI only shows in fragments. Quote a source verbatim, check what a PDF really yielded, or hand the raw material to another tool. Name the source instead of its ID if you prefer; an ambiguous name is refused rather than guessed. Long sources arrive one page at a time, with an explicit instruction for fetching the next — or paginate: false for the whole document at once.

Notebook Library

  • Multi-notebook management with validation and smart selection

  • Auto-discovery: Automatically generate metadata via NotebookLM queries

  • Search notebooks by keyword in name, description, or topics

  • Scrape notebooks: List all notebooks from NotebookLM with IDs and names

  • Bulk delete: Delete multiple notebooks at once

Accounts & Localization

  • Personal and Google Workspace accounts — recognizes both NotebookLM hosts (notebooklm.google.com and the notebook.google.com Workspace alias), so Workspace sessions authenticate cleanly instead of looping on "session expired"

  • UI-language-aware — drives NotebookLM whether its interface is in English, French, German, or Japanese (en · fr · de · ja); add a language in a single JSON file

Integration Options

  • MCP Protocol — Claude Code, Cursor, Codex, any MCP client

  • Agent Skill — ships a bundled notebooklm skill (also standalone: roomi-fields/notebooklm-skill) that teaches the agent citation formats, the daily-quota-aware batch pattern, and when to use which transport

  • HTTP REST API — n8n, Zapier, Make.com, custom integrations

  • Docker — Isolated deployment with Docker or Docker Compose

  • RTFM retrieval layer/batch-to-vault writes citation-backed answers as markdown + JSON sidecars (nblm-answer-v1 schema), indexable by RTFM (FTS5 + semantic) for unlimited offline queries. Ideal for academic / SOTA workflows. Guide.


Quick Start

The fastest way to get NotebookLM into Claude Code. Distributed via the roomi-fields/claude-plugins marketplace alongside RTFM (the retrieval companion — see RTFM integration guide):

/plugin marketplace add roomi-fields/claude-plugins
/plugin install notebooklm@roomi-fields

That registers the MCP server, runs npx -y @roomi-fields/notebooklm-mcp@<pinned-version> automatically (Node ≥ 18 required), and lets you upgrade with two commands when a new release ships: /plugin marketplace update roomi-fields then /reload-plugins. Then run npx -y -p @roomi-fields/notebooklm-mcp notebooklm-mcp-setup-auth once in a terminal to log into Google (a visible Chrome opens). To install RTFM at the same time: /plugin install rtfm@roomi-fields.

Option 1 — HTTP REST API (n8n, Zapier, Make, curl, any HTTP client)

git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
npm install && npm run build
npm run setup-auth   # One-time Google login
npm run start:http   # Start REST API on port 3000
# Citation-backed Q&A, single curl, JSON response
curl -X POST http://localhost:3000/ask \
  -H 'Content-Type: application/json' \
  -d '{"question": "Summarize chapter 3", "notebook_id": "your-id", "source_format": "json"}'

The full surface is 33 documented endpoints — see the REST API reference. For overnight batches of 1 000+ questions, see the batch pattern.

Option 2 — MCP Mode (Claude Code, Cursor, Codex)

# Build (same package, MCP transport)
git clone https://github.com/roomi-fields/notebooklm-mcp.git
cd notebooklm-mcp
npm install && npm run build

# Claude Code
claude mcp add notebooklm node /path/to/notebooklm-mcp/dist/index.js

# Cursor — add to ~/.cursor/mcp.json
{
  "mcpServers": {
    "notebooklm": {
      "command": "node",
      "args": ["/path/to/notebooklm-mcp/dist/index.js"]
    }
  }
}

Log in once — in a terminal, not through the assistant. Run the interactive Google login as a command; a visible Chrome window opens, you sign in, and the saved session is then reused by the MCP server:

npm run setup-auth          # from a clone (Option 2 above)
notebooklm-mcp setup-auth   # from a global install (npm i -g @roomi-fields/notebooklm-mcp)

Do the login in a terminal rather than by asking the assistant "log me in": some stdio MCP clients (e.g. Claude Desktop) cap tool-call duration and cut off the up-to-10-minute interactive login before you can finish signing in (see issue #27).

Option 3 — Docker (NAS, server, headless)

# Build and run
docker build -t notebooklm-mcp .
docker run -d --name notebooklm-mcp -p 3000:3000 -p 6080:6080 -v notebooklm-data:/data notebooklm-mcp

# Authenticate via noVNC
# 1. Open http://localhost:6080/vnc.html
# 2. Run: curl -X POST http://localhost:3000/setup-auth -d '{"show_browser":true}'
# 3. Login to Google in the VNC window

See Docker Guide for NAS deployment (Synology, QNAP).


Documentation

Full docs site: https://roomi-fields.github.io/notebooklm-mcp/ · OpenAPI 3.1 spec

Guide

Description

Installation

Step-by-step setup for HTTP and MCP modes

Configuration

Environment variables and security

REST API reference

Complete HTTP endpoint documentation (33 endpoints)

Run 1 000 questions overnight

Production batch pattern with auto-reauth and rotation

RTFM integration — cache as searchable vault

Pipeline pattern: NotebookLM as one-shot ingestion, RTFM as retrieval layer. /batch-to-vault endpoint, nblm-answer-v1 schema.

n8n integration

Workflow automation setup

Troubleshooting

Common issues and solutions

Notebook library

Multi-notebook management

Auto-discovery

Autonomous metadata generation

Content management

Audio, video, infographic, report, presentation

Multi-account rotation

Multiple accounts with TOTP auto-reauth

Docker

Docker and Docker Compose deployment

Multi-interface

Run Claude Desktop + HTTP simultaneously

Compare with PleasePrompto v2.0.0

Feature matrix vs the upstream MCP-only server

Chrome profile limitation

Profile locking (solved in v1.3.6+)

Adding a language

i18n system for multilingual UI support


Roadmap

See ROADMAP.md for planned features and version history.

Latest releases:

  • v3.0.1 — Interactive Google login as a first-class CLI command (notebooklm-mcp setup-auth) for global / stdio-client installs; setup_auth / re_auth accept a top-level headless (#27)

  • v3.0.0 — Major refactor: dual transport (NotebookLM's internal batchexecute RPC API with automatic DOM fallback), 10-100× faster and immune to UI rebrands; 5 new tools (notebook sharing, study aids, mind maps, source labels, web research)

  • v2.3.0 — Full support for Google's "Gemini Notebook" rebrand: create / list / rename / delete, sources, and every Studio generation type re-verified end-to-end (#23, #21)

  • v2.2.1 — Recognize both NotebookLM hosts so Google Workspace accounts authenticate (the notebook.google.com alias); notebook listing no longer wastes ~30s after the "Gemini Notebook" rebrand; HTTP banner reads the real version. Diagnosis + patch by @kpietkaa (#19)

  • v2.2.0 — Fix new-answer detection timing out when an answer repeats an earlier one (position-based identity, not text-hash); graceful shutdown on stdio disconnect; Japanese UI locale

  • v2.1.1 — Thai UI selectors for notebook_create (partial, #18)

  • v2.1.0note_list and note_get MCP tools (#17)

  • v2.0.4 — German UI selectors (closes #14)

  • v2.0.0 — Tools renamed to a namespaced tree (notebook_ask, source_add, session_list, server_health, vault_batch…) across 9 namespaces; tools/list advertises only the canonical names. Backward compatible — the legacy flat names still work as aliases, so existing scripts and configs keep running. Also adds MCP annotations (read-only / destructive / idempotent / open-world hints) and outputSchema + structuredContent on every tool. Published on the Smithery registry.

  • v1.7.0batch_to_vault exposed as a first-class MCP tool (parity with the HTTP endpoint, no localhost server required); shared runBatchToVault helper deduplicates the loop across both transports

  • v1.6.0/batch-to-vault endpoint + RTFM integration (nblm-answer-v1 JSON Schema published at schemas.roomi-fields.com/nblm-answer-v1.json) for caching NotebookLM answers as a searchable markdown vault

  • v1.5.8 — NotebookLM 2026 UI adaptations (icon-label sanitization, Discussion-panel recovery, count-based source detection) — PR #5 by @KhizarJamshaidIqbal

  • v1.5.7 — Citation extraction selector fix (.highlighted) and Docker multi-stage build — PR #1 by @JulienCANTONI

  • v1.5.6 — Citation extraction major rewrite (97% success rate), browser-verified auth at startup, profile auto-sync

  • v1.5.0 — Complete Studio content generation (video, infographic, presentation, data_table) + Notes management + Delete sources

  • v1.4.0 — Content management (sources, audio, generation) + Multi-account

Intermediate patch and hardening releases (1.5.x–1.7.x) are in the full CHANGELOG.

Not yet implemented:

  • Discover sources (Web/Drive search with Fast/Deep modes)

  • Edit notes (create, delete, and convert are implemented)


Disclaimer

This tool automates browser interactions with NotebookLM. Use a dedicated Google account for automation. CLI tools like Claude Code can make mistakes — always review changes before deploying.

See full Disclaimer below.


Contributing

Found a bug? Have an idea? Open an issue or submit a PR!

See CONTRIBUTING.md for guidelines.

License

MIT — Use freely in your projects. See LICENSE.

Author

Romain Peyrichou@roomi-fields

Acknowledgments

Thanks to everyone who has contributed code, ideas, and bug reports:

  • Khizar Jamshaid Iqbal@KhizarJamshaidIqbal, 2025 UI selector fixes, doctor script, PII scrub

  • Kazik Pietka@kpietkaa, notebook.google.com rebrand support

  • Rui Ruiberriz@Excauboi, hl=<uiLocale> on app URLs + click-through scrape fallback

  • @he0xwhalenote_list / note_get MCP tools

  • @eminsnow — canonical tool names (_ over .)

  • Julien Cantoni@JulienCANTONI


About browser automation: While I've built in humanization features (realistic typing speeds, natural delays, mouse movements), I can't guarantee Google won't detect or flag automated usage. Use a dedicated Google account for automation.

About CLI tools and AI agents: CLI tools like Claude Code, Codex, and similar AI-powered assistants are powerful but can make mistakes:

  • Always review changes before committing or deploying

  • Test in safe environments first

  • Keep backups of important work

  • AI agents are assistants, not infallible oracles

I built this tool for myself and share it hoping it helps others, but I can't take responsibility for any issues that might occur. Use at your own discretion.


Built with frustration about hallucinated APIs, powered by Google's NotebookLM

Star on GitHub if this saves you debugging time!

Available Tools

39 tools
auth_logoutA
DestructiveIdempotent

De-authenticate (logout) - Clears all authentication data for security. Use this when:

  • User wants to log out for security reasons

  • Removing credentials before shutting down

  • Clearing auth without immediately re-authenticating

This will:

  1. Close all active browser sessions

  2. Delete all saved authentication data (cookies, Chrome profile)

  3. Preserve notebook library and other data

IMPORTANT: After de_auth, the server will need re-authentication via setup_auth or re_auth before making queries.

Use 'get_health' to verify de-authentication was successful (authenticated: false).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description details specific behaviors: closes browser sessions, deletes cookies/Chrome profile, preserves notebook data. Adds context beyond annotations (destructiveHint, idempotentHint) by explaining what is destroyed and what is kept.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points, numbered steps, and clear sections. Slightly wordy but all information is relevant and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema, the description fully covers behavior, side effects, and post-conditions. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4 is appropriate. The description clarifies the tool's operation without needing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'De-authenticate (logout)' and lists specific use cases (security, shutdown, clearing auth). It distinguishes from siblings like auth_setup and auth_switch by focusing on logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use (security, shutdown, clearing auth) and what it does not do (preserve notebook data). Also gives guidance on next steps: re-authentication via setup_auth or re_auth, and verification with get_health.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_setupA

Google authentication for NotebookLM access - opens a browser window for manual login to your Google account. Returns immediately after opening the browser. You have up to 10 minutes to complete the login. Use 'get_health' tool afterwards to verify authentication was saved successfully. Use this for first-time authentication or when auto-login credentials are not available. IMPORTANT: If already authenticated, this tool will skip re-authentication. For switching accounts or rate-limit workarounds, use 're_auth' tool instead.

TROUBLESHOOTING for persistent auth issues: If setup_auth fails or you encounter browser/session issues:

  1. Ask user to close ALL Chrome/Chromium instances

  2. Run cleanup_data(confirm=true, preserve_library=true) to clean old data

  3. Run setup_auth again for fresh start This helps resolve conflicts from old browser sessions and installation data.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoAlias/inverse of show_browser: headless=false opens a visible window, headless=true runs hidden. Ignored if show_browser is set.
show_browserNoShow browser window (simple version). Default: true for setup. For advanced control, use browser_options instead.
browser_optionsNoOptional browser settings. Control visibility, timeouts, and stealth behavior.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond the annotations: 'Returns immediately after opening the browser. You have up to 10 minutes to complete the login.' It also discloses that it will skip re-authentication if already authenticated, which is important for idempotency. Annotations do not cover these temporal and conditional behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded and clearly stated. The troubleshooting block adds length but contains actionable and relevant information. While not as compact as ideal, the structure (purpose, usage, troubleshooting) makes it navigable, and most sentences earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an authentication tool with open-world interaction and no required params, the description is complete: it covers when to use, what to expect, post-verification, behavior when already authenticated, and a troubleshooting flow for persistent issues. The presence of an output schema means return details need not be described, and the description covers all other critical context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all parameters, including nested browser_options. The description does not add parameter-specific meaning beyond the schema, so baseline 3 is appropriate. Mentioning 'opens a browser window' loosely relates to show_browser but is not tied to parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Google authentication for NotebookLM access - opens a browser window for manual login to your Google account.' It distinguishes itself from alternatives via explicit differentiation: 'Use this for first-time authentication...' and 'For switching accounts or rate-limit workarounds, use re_auth tool instead.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is provided: 'Use this for first-time authentication or when auto-login credentials are not available.' It also states when not to use it (for switching accounts) and names the alternative 're_auth'. Post-verification guidance is included: 'Use get_health tool afterwards to verify authentication was saved successfully.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_switchA

Switch to a different Google account or re-authenticate. Use this when:

  • NotebookLM rate limit is reached (50 queries/day for free accounts)

  • You want to switch to a different Google account

  • Authentication is broken and needs a fresh start

This will:

  1. Close all active browser sessions

  2. Delete all saved authentication data (cookies, Chrome profile)

  3. Open browser for fresh Google login

After completion, use 'get_health' to verify authentication.

TROUBLESHOOTING for persistent auth issues: If re_auth fails repeatedly:

  1. Ask user to close ALL Chrome/Chromium instances

  2. Run cleanup_data(confirm=false, preserve_library=true) to preview old files

  3. Run cleanup_data(confirm=true, preserve_library=true) to clean everything except library

  4. Run re_auth again for completely fresh start This removes old installation data and browser sessions that can cause conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoAlias/inverse of show_browser: headless=false opens a visible window, headless=true runs hidden. Ignored if show_browser is set.
show_browserNoShow browser window (simple version). Default: true for re-auth. For advanced control, use browser_options instead.
browser_optionsNoOptional browser settings. Control visibility, timeouts, and stealth behavior.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, etc.), the description details destructive actions: 'Close all active browser sessions', 'Delete all saved authentication data (cookies, Chrome profile)', and adds post-verification steps. This is rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullets for use cases and steps, and it front-loads the purpose. It's slightly long due to troubleshooting, but each section adds practical value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive and browser-interactive nature, the description covers when to use, what happens, side effects, verification, and troubleshooting. With an output schema present, return value explanation is not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters, each with descriptions. The tool description adds nothing about parameters, so the baseline of 3 for high schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Switch to a different Google account or re-authenticate.' It also lists three specific use cases, which distinguishes it from siblings like auth_setup and auth_logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states 'Use this when:' with three concrete scenarios, and provides a post-condition ('use get_health to verify'). However, it doesn't explicitly name alternatives or provide 'when not' guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

content_downloadA
Idempotent

Download or export generated content from NotebookLM.

Supported content types:

  • audio_overview: Downloads as audio file (MP3)

  • video: Downloads as video file

  • infographic: Downloads as image file

  • presentation: Exports to Google Slides (returns URL)

  • data_table: Exports to Google Sheets (returns URL)

Note: Report content is text-based and returned in the generation response.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID to reuse an existing session
output_pathNoOptional local path to save the file (for audio, video, infographic)
content_typeYesType of content to download/export
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it specifies that presentations and data_tables return URLs rather than files, and notes that report content is text-based and returned in generation response. Annotations already indicate idempotent and non-destructive, so the description complements them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured with bullet points, and front-loads the purpose. Every sentence is informative and earns its place, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, 1 required, enum) and presence of an output schema (though not detailed here), the description covers the main aspects: purpose, types, output formats, and a note about reports. It could include a brief mention of the return structure, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaning by clarifying that output_path is only applicable for audio, video, and infographic types, which is not evident from the schema alone. It also lists the enum values with output formats, enhancing understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Download or export generated content from NotebookLM' and enumerates all supported content types with their output formats, distinguishing it from sibling tools like content_generate (creation) and content_list (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to download/export generated content) and lists supported types with output details. It implicitly guides usage by noting that 'report' content is not downloadable here, but does not explicitly state when not to use or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

content_generateA

Generate content from your NotebookLM sources.

Supported content types:

  • audio_overview: Audio podcast/overview (Deep Dive conversation with two AI hosts)

  • video: Video summary that visually explains main topics (brief or explainer format)

  • presentation: Slides/presentation with AI-generated content and images

  • report: Briefing document (2,000-3,000 words) summarizing key findings, exportable as PDF/DOCX

  • infographic: Visual infographic in horizontal (16:9) or vertical (9:16) format

  • data_table: Structured table organizing key information (exportable as CSV/Excel)

Language support: All content types support 80+ languages via the language parameter.

Video styles: Video content supports 6 visual styles via the video_style parameter: classroom, documentary, animated, corporate, cinematic, minimalist.

These content types use real NotebookLM Studio UI buttons or the generic ContentGenerator architecture that navigates the Studio panel and falls back to chat-based generation.

NOTE: Other content types (faq, study_guide, timeline, table_of_contents) are NOT currently implemented. For document-style content, use the ask_question tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoLanguage of the generated content — 81 supported. Give a BCP-47 code ("es", "ja", "pt_BR", "zh_Hans") or a name in English or in the language itself ("Spanish", "Español"). Defaults to NOTEBOOKLM_CONTENT_LANGUAGE, or English. An unrecognised value is an error, never a silent substitution.
session_idNoSession ID to reuse an existing session
video_styleNoVisual style for video content (only valid for content_type="video"). Powered by Nano Banana AI.
content_typeYesType of content to generate: audio_overview (podcast), video (brief or explainer), presentation (slides), report (briefing doc 2,000-3,000 words, PDF/DOCX export), infographic (horizontal 16:9 or vertical 9:16), or data_table (CSV/Excel export)
notebook_urlNoNotebook URL. If not provided, uses the active notebook.
custom_instructionsNoOptional instructions to customize the generated content

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses how generation actually happens: via real NotebookLM Studio UI buttons or the generic ContentGenerator architecture, with fallback to chat-based generation. It also documents an important error behavior about unrecognized language values. The readOnly=false/idempotent=false annotations align with the described generation behavior, so there is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The structure is front-loaded with the core action, then uses bullets for concrete content types, then quickly covers language/video/alternatives and implementation notes. It is longer than average, but every sentence/line contributes decision-relevant information and the formatting makes scanning easy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the six-option enum, optional params, and availability of an output schema, the description covers all invocation-relevant information: which types work, which do not, language and style constraints, and the alternative for unsupported document-style content. Nothing critical is missing for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 applies; the description meaningfully adds sem_antics by grouping each content_type with real user-visible outcomes, formats, dimensions, and video style options, and by clarifying BCP-47/name usage for language. This goes beyond the schema without repeating it verbatim.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb + resource: 'Generate content from your NotebookLM sources.' It enumerates the six supported content types with concrete output formats and explicitly calls out four unsupported types, making the tool's role and scope immediately distinguishable from siblings like generate_study_aid and generate_mind_map.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong when/not guidance: supported content types are listed, other types are explicitly marked as not implemented, and document-style content is routed elsewhere. However, the named alternative 'ask_question' does not exactly match the provided sibling 'notebook_ask', and there is no explicit contrast with other generate siblings such as generate_study_aid or generate_mind_map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

content_listA
Read-onlyIdempotent

List all sources and generated content in the current notebook.

Returns:

  • Sources: Documents, URLs, and other uploaded materials

  • Generated content: Audio overviews

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID to reuse an existing session
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. Description adds context about returned categories (sources, generated content) but no additional behavioral traits like pagination or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Efficient bullet points, front-loaded with main action, every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, return value details are not needed. Description covers the key categories returned. Adequate for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, both parameters described. Description adds no extra meaning beyond what schema provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists sources and generated content in the current notebook, specifying categories. Verb and resource are explicit and distinct from siblings like content_download or content_generate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives among siblings. Implied usage for viewing content, but no guidance on when to prefer over other list tools like library_list or notebook_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_mind_mapA

Generate and save a mind map from a notebook’s sources. RPC-backed (no browser). Returns the saved mind-map id and its JSON structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoOptional prompt steering what the mind map emphasises.
titleNoOptional title for the saved mind map.
languageNoLanguage of the mind-map nodes (BCP-47 code or language name). Defaults to NOTEBOOKLM_CONTENT_LANGUAGE, or English.
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebookLM notebook URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the safety and side-effect information. It clearly states the tool 'save' something, mentions the execution mode ('RPC-backed (no browser)'), and discloses the type of return value ('saved mind-map id and its JSON structure'). Permission requirements or effects on the notebook are absent, but the explicit save side effect and return description cover the core behavioral transparency needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and dense: two sentences with the primary action first, then a side-effect/return note. The 'RPC-backed (no browser)' clause is relevant and economical. The only slight awkwardness is the parenthetical, but it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 5-param schema with full descriptions and the description naming the saved id and JSON shape, the tool is largely callable. It does not state what further uses the returned JSON has, but for a generation tool that is enough. The description covers the key missing parts beyond the schema: execution side-effect and return value. A 4 seems fair.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have schema descriptions (100% coverage), so the schema already explains them. The description adds only a generic reference to 'a notebook's sources', which maps to notebook_id/notebook_url but does not disclose any extra syntactic or semantic detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action—'Generate and save a mind map'—and states the source ('a notebook's sources'), clearly distinguishing this from sibling tools like generate_study_aid or content_generate. The resource and verb are concrete and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (when you want a mind map from notebook sources) but does not explicitly state when to prefer it over sibling tools or how to choose between the two notebook identifiers. The context is inferable rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_study_aidA

Generate a study aid from a notebook’s sources: flashcards or a quiz. RPC-backed (no browser). Returns when generation completes.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesWhich study aid to generate.
focusNoOptional focus prompt to steer the content.
languageNoLanguage of the generated study aid (BCP-47 code or language name). Defaults to NOTEBOOKLM_CONTENT_LANGUAGE, or English.
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebookLM notebook URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries the behavioral disclosure. It adds relevant information by noting it is RPC-backed/no-browser and 'returns when generation completes', which signals synchronous, wait-for-completion behavior. It does'n detail persistence or side effects, but the key call-characteristic is surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It names the purpose, publishes constraints ('no browser'), and states completion semantics, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers returns, and the parameter schema covers individual inputs. However, the description does not clarify how the notebook is selected when both notebook_id and notebook_url are omitted, and it does not say whether a currently selected notebook context is expected. That missing routing context makes it not fully complete for anist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all five parameters with descriptions, so schema coverage is 100%. The description adds no specific parameter-level detail beyond mentioning flashcards and quiz, which matches the kind enum. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Generate'), names the resource ('a study aid from a notebook's sources'), and specifies the two forms it can take: flashcards or a quiz. This clearly distinguishes it from sibling tools like generate_mind_map or content_generate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever the user wants flashcards or a quiz from notebook sources. However, it does not explicitly say when not to use it or mention alternatives such as generate_mind_map, leaving comparision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_addA

📝 MANUAL ENTRY — Add notebook with manually specified metadata (use auto_discover_notebook instead)

When to Use

  • Auto-discovery failed or unavailable

  • User has specific metadata requirements

  • User prefers manual control

Conversation Workflow (Mandatory)

When the user says: "I have a NotebookLM with X"

FIRST: Try auto_discover_notebook for faster setup ONLY IF user refuses auto-discovery or it fails:

  1. Ask URL: "What is the NotebookLM URL?"

  2. Ask content: "What knowledge is inside?" (1–2 sentences)

  3. Ask topics: "Which topics does it cover?" (3–5)

  4. Ask use cases: "When should we consult it?"

  5. Propose metadata and confirm:

    • Name: [suggested]

    • Description: [from user]

    • Topics: [list]

    • Use cases: [list] "Add it to your library now?"

  6. Only after explicit "Yes" → call this tool

Rules

  • Do not add without user permission

  • Prefer auto_discover_notebook when possible

  • Do not guess metadata — ask concisely

  • Confirm summary before calling the tool

Example

User: "I have a notebook with n8n docs" You: "Want me to auto-generate the metadata?" (offer auto_discover_notebook first) User: "No, I'll specify it myself" You: Ask URL → content → topics → use cases; propose summary User: "Yes" You: Call add_notebook

Visit https://notebooklm.google/ → Login (free: 100 notebooks, 50 sources each, 500k words, 50 daily queries)

  1. Click "+ New" (top right) → Upload sources (docs, knowledge)

  2. Click "Share" (top right) → Select "Anyone with the link"

  3. Click "Copy link" (bottom left) → Give this link to Claude

(Upgraded: Google AI Pro/Ultra gives 5x higher limits)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe NotebookLM notebook URL
nameYesDisplay name for the notebook (e.g., 'n8n Documentation')
tagsNoOptional tags for organization
topicsYesTopics covered in this notebook
use_casesNoWhen should Claude use this notebook (e.g., ['Implementing n8n workflows'])
descriptionYesWhat knowledge/content is in this notebook
content_typesNoTypes of content (e.g., ['documentation', 'examples', 'best practices'])

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so the tool is a write operation. The description adds context that it requires user permission and a confirmation step, but doesn't elaborate on side effects (e.g., what happens on duplicate URL) or other behavioral details. With annotations present, the description provides marginal additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with clear sections (when to use, workflow, rules, example). It is front-loaded with the core purpose. While verbose, every section serves a purpose for agent guidance. Minor redundancy in the workflow steps could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all necessary context: prerequisites (try auto-discovery first), a detailed mandatory conversation workflow, rules, an example, and even instructions on how to get a NotebookLM share link. The existence of an output schema is noted, so return values are adequately covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add new parameter semantics beyond what the schema already provides for each parameter. The workflow mentions asking for URL, content, topics, etc., but that echoes the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Add notebook with manually specified metadata'. It explicitly contrasts with the sibling tool 'auto_discover_notebook', distinguishing when each should be used. The verb 'add' and resource 'notebook' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (auto-discovery failed, user prefers manual control) and when not to use (prefer auto_discover_notebook first). It includes a mandatory conversational workflow with steps and rules, such as not adding without user permission and confirming before tool call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_discoverA

🚀 AUTO-DISCOVERY — Automatically generate notebook metadata via NotebookLM (RECOMMENDED)

When to Use

  • User provides NotebookLM URL and wants quick/automatic setup

  • User prefers not to manually specify metadata

  • Default choice for adding notebooks

Workflow

  1. User provides NotebookLM URL

  2. Ask confirmation: "Add '[URL]' with auto-generated metadata?"

  3. Call this tool → NotebookLM generates name, description, tags

  4. Show generated metadata to user for review

Benefits

  • ✅ 30 seconds vs 5 minutes manual entry

  • ✅ Zero-friction notebook addition

  • ✅ Consistent metadata quality

  • ✅ Discovers topics user might not think of

Example

User: "Add this NotebookLM: https://notebooklm.google.com/notebook/abc123" You: "Add this notebook with auto-generated metadata?" User: "Yes" You: Call auto_discover_notebook(url="https://...") → Returns: {name: "n8n-workflow-guide", description: "...", tags: [...]}

Fallback

If auto-discovery fails (rare), use add_notebook tool for manual entry.

Visit https://notebooklm.google/ → Login (free: 100 notebooks, 50 sources each, 500k words, 50 daily queries)

  1. Click "+ New" (top right) → Upload sources (docs, knowledge)

  2. Click "Share" (top right) → Select "Anyone with the link"

  3. Click "Copy link" (bottom left) → Give this link to Claude

(Upgraded: Google AI Pro/Ultra gives 5x higher limits)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe NotebookLM notebook URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the complete workflow: it generates metadata from a URL and returns it for review, without persisting immediately. This aligns with annotations (readOnlyHint=false, idempotentHint=false) as the tool may trigger a side effect (API call) but does not save to library. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections, emojis, and clear formatting. It is front-loaded with the most critical information (purpose and when to use) and every sentence contributes value. Despite length, it remains efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description fully covers the workflow, example, fallback, and even instructions for obtaining the URL. The output schema exists, and the description explains the return values (name, description, tags). No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a single parameter 'url' described as 'The NotebookLM notebook URL'. The description adds significant value by providing detailed instructions on how to obtain the URL (share link steps), which goes beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: automatically generate notebook metadata via NotebookLM. It uses a specific verb ('auto-discover') and resource ('notebook metadata'), and distinguishes from siblings like 'library_add' by positioning it as the recommended automatic setup. The example reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides 'When to Use' scenarios and a 'Fallback' instruction to use 'add_notebook' if auto-discovery fails. It outlines a clear workflow and contrasts with manual entry, giving the AI clear guidance on when to invoke this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_getA
Read-onlyIdempotent

Get detailed information about a specific notebook by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe notebook ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds 'detailed information' but no further behavioral traits (e.g., error handling, format). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words; front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists), the description is fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'id', and the description does not add meaning beyond 'The notebook ID' already in schema. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get detailed information') and the resource ('a specific notebook by ID'), distinguishing it from sibling tools like library_list (list all) and library_search (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you need details of a known notebook by ID) but provides no exclusions or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_listA
Read-onlyIdempotent

List all library notebooks with metadata (name, topics, use cases, URL). Use this to present options, then ask which notebook to use for the task.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint. The description adds useful behavioral context by specifying the metadata fields returned (name, topics, use cases, URL) and that it lists all notebooks, going beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, the first directly stating the action and the second prescribing the usage workflow. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and the presence of an output schema (which handles return structure), the description covers all necessary context: what the tool does, what metadata is returned, and how to use it in the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description does not need to add parameter details, and schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all library notebooks with metadata like name, topics, use cases, and URL. It distinguishes from sibling tools like library_add or library_remove that are for mutations, and library_search which likely supports filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this to present options and then ask which notebook to use, providing clear context for when to invoke the tool. It does not mention alternatives, but the sibling names imply when not to use it (e.g., for mutations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_removeA
DestructiveIdempotent

Dangerous — requires explicit user confirmation.

Confirmation Workflow

  1. User requests removal ("Remove the React notebook")

  2. Look up full name to confirm

  3. Ask: "Remove '[notebook_name]' from your library? (Does not delete the actual NotebookLM notebook)"

  4. Only on explicit "Yes" → call remove_notebook

Never remove without permission or based on assumptions.

Example: User: "Delete the old React notebook" You: "Remove 'React Best Practices' from your library?" User: "Yes" → call remove_notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe notebook ID to remove

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true), the description adds critical behavioral context: it requires explicit user confirmation, does not delete the actual notebook, and outlines a step-by-step process. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear header, numbered steps, and an example. While it is somewhat lengthy, every sentence adds necessary information, and the critical warning is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, presence of output schema, and rich annotations, the description is complete. It explains the tool's danger, confirmation process, what it does not do, and provides an example, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single 'id' parameter with description, achieving 100% coverage. The description does not add additional parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action: removing a notebook from the library, and distinguishes it from deleting the actual notebook (as noted in the workflow). It clearly differentiates from sibling tools like notebook_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a detailed confirmation workflow, explicitly stating that the tool should only be called after user confirmation. It includes a concrete example and warns against using it without permission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_selectA
Idempotent

Set a notebook as the active default (used when ask_question has no notebook_id).

When To Use

  • User switches context: "Let's work on React now"

  • User asks explicitly to activate a notebook

  • Obvious task change requires another notebook

Auto-Switching

  • Safe to auto-switch if the context is clear and you announce it: "Switching to React notebook for this task..."

  • If ambiguous, ask: "Switch to [notebook] for this task?"

Example

User: "Now let's build the React frontend" You: "Switching to React notebook..." (call select_notebook)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe notebook ID to activate

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations show idempotentHint=true and readOnlyHint=false, consistent with description. The description adds details about auto-switching behavior and how to handle ambiguity, going beyond annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with sections, but slightly verbose. Every sentence adds value, though some repetition could be trimmed. Still effective and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one idempotent parameter, output schema exists), the description fully covers purpose, usage, and switching logic. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage for the single 'id' parameter, so baseline is 3. Description does not add further semantic details beyond 'set as active default' and 'notebook_id' reference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets a notebook as active default and ties it to ask_question. It differentiates from sibling tools like library_get and library_list by focusing on state change. However, it does not explicitly contrast with every sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When To Use' and 'Auto-Switching' sections provide explicit context for use, including when to auto-switch and when to ask for clarification. This is strong guidance for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_statsA
Read-onlyIdempotent

Get statistics about your notebook library (total notebooks, usage, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint true, so behavioral traits are covered. The description adds context by specifying 'your notebook library', which is helpful but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no superfluous words. Front-loaded with the core action and resource, achieving maximum conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only stats tool with no parameters and good annotations, the description covers the essential purpose. Could mention scope or caching but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description correctly omits parameter details as none are needed. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'statistics about your notebook library', with examples like 'total notebooks, usage', distinguishing it from listing tools like library_list or notebook_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., library_list for listing items). The description implies it's for aggregate stats, but doesn't exclude other use cases or provide context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_updateA
Idempotent

Update notebook metadata based on user intent.

Pattern

  1. Identify target notebook and fields (topics, description, use_cases, tags, url)

  2. Propose the exact change back to the user

  3. After explicit confirmation, call this tool

Examples

  • User: "React notebook also covers Next.js 14" You: "Add 'Next.js 14' to topics for React?" User: "Yes" → call update_notebook

  • User: "Include error handling in n8n description" You: "Update the n8n description to mention error handling?" User: "Yes" → call update_notebook

Tip: You may update multiple fields at once if requested.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe notebook ID to update
urlNoNew notebook URL
nameNoNew display name
tagsNoNew tags
topicsNoNew topics list
use_casesNoNew use cases
descriptionNoNew description
content_typesNoNew content types

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint true and readOnlyHint false (modification). The description adds the critical behavioral trait that the tool must only be called after user confirmation, which is not in annotations. No contradictions. Minor gap: no mention of authorization or side effects beyond metadata updates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear header, numbered pattern, and succinct examples. Every sentence earns its place, providing necessary context without fluff. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown), the description adequately covers usage flow and parameter intent. It lacks details on error handling or prerequisites (e.g., needing a valid notebook ID), but the overall picture is complete for an update tool with good annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 8 parameters. The description adds value by grouping the updatable fields and emphasizing the confirmation pattern, making it clear how parameters relate to the workflow. This goes beyond repeating schema info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update notebook metadata' and lists the specific fields (topics, description, use_cases, tags, url). It differentiates from sibling tools like library_add (create) and library_remove (delete), leaving no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a precise pattern: identify target and fields, propose changes, get explicit confirmation, then call. Examples illustrate the workflow. This is explicit guidance on when and how to use the tool, with no reliance on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_labelsA

Manage a notebook’s source labels (RPC-backed): list them, create one, or delete some. action=list (default) / create (needs name) / delete (needs label_ids).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLabel name (for create).
emojiNoOptional label emoji (for create).
actionNoDefault list.
label_idsNoLabel ids to delete (for delete).
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebookLM notebook URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions RPC-backed and the three modes, but lacks details on side effects, permissions, rate limits, or reversibility of actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The purpose is front-loaded, and every word contributes meaning. Ideal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and parameters are well-documented, the description covers the main use cases. It lacks discussion of edge cases like duplicate names or empty label_ids, but overall is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining how parameters relate to actions (e.g., name only for create). It goes beyond the schema by clarifying the default action and conditional requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages a notebook's source labels with three specific actions (list, create, delete). It distinguishes itself from sibling tools by focusing on labels, while other tools handle notebooks, notes, or sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by specifying the default action and required parameters for each action (name for create, label_ids for delete). However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_askA

Conversational Research Partner (NotebookLM • Gemini 2.5 • Session RAG)

No Active Notebook

  • Visit https://notebooklm.google to create a notebook and get a share link

  • Use add_notebook to add it to your library (explains how to get the link)

  • Use list_notebooks to show available sources

  • Use select_notebook to set one active

Auth tip: If login is required, use the prompt 'notebooklm.auth-setup' and then verify with the 'get_health' tool. If authentication later fails (e.g., expired cookies), use the prompt 'notebooklm.auth-repair'.

Tip: Tell the user you can manage NotebookLM library and ask which notebook to use for the current task.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesThe question to ask NotebookLM
session_idNoOptional session ID for contextual conversations. If omitted, a new session is created.
notebook_idNoOptional notebook ID from your library. If omitted, uses the active notebook. Use list_notebooks to see available notebooks.
notebook_urlNoOptional notebook URL (overrides notebook_id). Use this for ad-hoc queries to notebooks not in your library.
show_browserNoShow browser window for debugging (simple version). For advanced control (typing speed, stealth, etc.), use browser_options instead.
source_formatNoFormat for source citation extraction (default: none). Options: - none: No source extraction (fastest) - inline: Insert source text inline: "text [1: source excerpt]" - footnotes: Append sources at the end as footnotes - json: Return sources as separate object in response - expanded: Replace [1] with full quoted source text Note: Source extraction adds ~1-2 seconds but does NOT consume additional NotebookLM quota.
browser_optionsNoOptional browser behavior settings. Claude can control everything: visibility, typing speed, stealth mode, timeouts. Useful for debugging or fine-tuning.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it is not read-only, not idempotent, and open-world. The description adds context about browser automation, authentication steps, and the fact that source extraction adds time but not quota. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, mixing setup instructions, auth tips, and tool usage into a single block. While structured with headings, it could be more concise by moving general instructions to sibling tool descriptions. Each sentence earns its place, but overall length reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, nested objects, external service interaction), the description covers setup, parameter behavior, auth, and even includes tips. The output schema is separate, so return values need no explanation. Everything needed for correct invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds valuable context: explains source_format options in detail, notes time impact and quota exemption, clarifies session_id and notebook_id defaults, and describes browser_options behavior. This significantly enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's role as a conversational research partner for NotebookLM, and the instructions about notebook setup distinguish it from sibling management tools. However, the purpose is mixed with extensive setup guidance, making it slightly less direct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly details prerequisites (create notebook via add_notebook, list/select), provides auth tips, and directs users to sibling tools when appropriate (e.g., 'Use add_notebook to add it to your library'). It gives clear guidance on when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_createA

Create a brand-new empty notebook directly in NotebookLM (no pre-existing URL required, unlike add_notebook which only registers an already-created notebook into the library).

Returns { notebook_url, notebook_id, name_applied, actual_name, message }.

  • notebook_url / notebook_id: always the FINAL UUID-based URL (the tool waits past the /notebook/creating/c transitional URL).

  • name_applied (boolean): whether the name parameter actually took effect. false means the notebook is still "Untitled notebook" — rename via UI if needed.

  • actual_name (string): the title observed on the notebook after creation.

Typical workflow:

  1. create_notebook({ name?: "my-research" }){ notebook_url, notebook_id, name_applied, actual_name }

  2. add_source({ notebook_url, source_type: "url", source: "https://..." })

  3. ask_question({ notebook_url, question: "..." })

Note: Requires authentication. Run setup_auth first if not authenticated.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional initial title for the notebook. NotebookLM will auto-name it if omitted (usually "Untitled notebook"). The title can be edited later via the UI.
show_browserNoShow browser window during creation. Default: false (headless).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and side effects (openWorldHint=true). Description adds valuable context: details about waiting for final URL, the name_applied boolean behavior, and the authentication requirement. This goes beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with purpose first, then detailed return values, then workflow. It is slightly lengthy but every part earns its place. Could be more concise but still clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (2 parameters, no nesting, output schema exists), the description is fully complete. It explains output fields, provides a usage workflow, and notes authentication prerequisites. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3 is appropriate. Description reiterates some parameter info but does not add significant new meaning beyond what the schema already provides for name and show_browser.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Create a brand-new empty notebook directly in NotebookLM' with specific verb and resource. It clearly distinguishes from the sibling add_notebook by noting this tool creates vs registers an existing notebook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use this tool ('no pre-existing URL required') vs the alternative add_notebook. Also includes a typical workflow of sequential steps to follow after creation, guiding the agent on correct invocation order.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_deleteA
Destructive

Delete one or more notebooks directly from NotebookLM (UI-level deletion, not just from the local library). Pass an array of notebook IDs (UUIDs from list_notebooks_from_nblm).

Returns { deleted: [...], failed: [...] } so the caller can retry or report on partial failures.

Use this to:

  • Bulk-clean up a NotebookLM account (e.g. test notebooks from automation runs)

  • Free up the 100-notebook free-tier quota

  • Remove notebooks no longer covered by your sources

Warning: This is irreversible at the NotebookLM side. Confirm with the user before calling. Note: Requires authentication. Run setup_auth first if not authenticated.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idsYesArray of NotebookLM notebook IDs (UUIDs) to delete. Use `list_notebooks_from_nblm` to discover them.
show_browserNoShow browser window during deletion. Default: false (headless).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant value beyond annotations: it explains the irreversible nature, the return format with partial failures, the need for authentication, and the browser visibility option. Annotations already mark destructiveHint=true, so the description aligns and expands with concrete behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient: first sentence states the main action, then return format, followed by bullet-pointed use cases and warnings. No redundant or unnecessary sentences. Each part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (bulk deletion, partial failures, irreversible), the description covers all essential aspects: what it does, how to use it (via notebook IDs from list), return structure, use cases, warnings, and authentication. The presence of an output schema reduces the need to document return values, but the description still explains the format adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described in the schema. The description restates the notebook_ids parameter's source and format, and clarifies the show_browser default. This adds marginal value over the schema, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete one or more notebooks directly from NotebookLM (UI-level deletion, not just from the local library).' It uses a specific verb and resource, and distinguishes from other deletion operations by specifying the scope. This is a clear and precise purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: bulk-cleanup, freeing quota, and removing outdated notebooks. It warns about irreversibility and suggests user confirmation. It does not explicitly state when not to use or list alternatives, but the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_listA
Read-onlyIdempotent

Scrape the NotebookLM homepage to get a real list of all notebooks with their IDs and names.

This tool navigates to notebooklm.google.com and extracts:

  • Notebook ID (UUID from URL)

  • Notebook name (displayed title)

  • Notebook URL

Use this to:

  • Discover notebooks not yet in your library

  • Get accurate notebook IDs for automation

  • Verify which notebooks exist in your account

  • Find notebooks to delete when cleanup is needed

Note: Requires authentication. Run setup_auth first if not authenticated.

ParametersJSON Schema
NameRequiredDescriptionDefault
show_browserNoShow browser window during scraping. Default: false (headless).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint, idempotentHint, openWorldHint. The description adds authentication requirements and scraping behavior (navigates to homepage), which supplements the annotations without contradiction. It does not detail rate limits or speed, but overall adds useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a clear opening sentence, bullet points, and a note on authentication. It is slightly verbose but front-loaded with the core action. Every sentence adds value, but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is read-only with an output schema (present), the description covers purpose, use cases, auth requirement, and extracted data. It is complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter (show_browser) with descriptions. Schema coverage is 100%, so the description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it scrapes NotebookLM homepage to list notebooks with IDs and names, using specific verbs like 'scrape' and 'extract'. It distinguishes from sibling tools like library_list by focusing on real-time account state via scraping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists four use cases (discover notebooks, get IDs, verify existence, find to delete). It lacks explicit 'when not to use' guidance, but the use cases are specific and actionable, providing clear context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_createA

Create a note in the NotebookLM Studio panel.

Notes are user-created annotations that appear in your notebook. Use them to save research findings, summaries, key insights, or any custom content you want to keep alongside your sources.

Notes support markdown formatting for rich text content.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the note (required)
contentYesContent/body of the note. Supports markdown formatting.
session_idNoSession ID to reuse an existing session
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=false and idempotentHint=false, so the core behavioral traits are covered. The description adds that notes support markdown formatting, but does not disclose further behavioral aspects such as duplicate handling, size limits, or response structure. Given the annotation coverage, this is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences, with the purpose front-loaded. Every sentence adds context without redundancy. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has 4 parameters with 100% schema coverage, an output schema, and sibling tools, the description covers the purpose and usage context well. It lacks some behavioral details (e.g., idempotency, conflicts) and direct sibling differentiation, but remains functional for a simple create operation. Overall, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no new information beyond what the schema already provides for each parameter. It restates that content supports markdown, which is already in the schema. Therefore, no additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb-resource pair: 'Create a note'. It specifies the location (NotebookLM Studio panel) and explains the role of notes as user-created annotations. This distinguishes it from sibling tools like note_save_chat and note_to_source, which have different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that notes are for saving research findings, summaries, etc., providing context on when to use this tool. However, it does not explicitly contrast with similar sibling tools like note_save_chat or note_to_source, missing an opportunity for clearer guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_getB

Retrieve the full title and text content of a specific note in the NotebookLM Studio panel.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idNoOptional note ID.
note_titleYesThe title of the note to retrieve content for.
session_idNoOptional Session ID to reuse an existing session.
notebook_urlNoOptional NotebookLM URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It states the tool retrieves content, which implies read-only, but does not disclose error behavior (e.g., if note_title not found), idempotency, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no extraneous information. It efficiently communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values. However, it lacks details on parameter relationships (e.g., note_id vs note_title precedence) and does not clarify the tool's behavior in edge cases, making it minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions, which are already clear. No value added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (retrieve), the resource (a specific note), and the content (title and text content). It distinguishes itself from sibling tools like note_list (which lists notes) and note_create (creates notes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, parameter priority (e.g., note_id vs note_title), or scenarios where session_id or notebook_url should be specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_listB

List all user notes in the NotebookLM Studio panel. Returns note titles, IDs, and timestamps (e.g. details).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoOptional Session ID to reuse an existing session.
notebook_urlNoOptional NotebookLM URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the output fields but does not disclose behavioral traits like read-only nature, authentication requirements, or any side effects. The phrase 'e.g. details' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a parenthetical example, no wasted words. Could be slightly more structured, but it is appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return values. However, it lacks information on prerequisites, side effects, or limitations. It is minimally complete for a simple listing tool but could be better.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all user notes and specifies the returned data (titles, IDs, timestamps). This distinguishes it from sibling tools like note_create or note_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing all notes but does not explicitly state when to use this tool versus alternatives such as note_get (single note) or note_save_chat. No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_save_chatA

Save the current NotebookLM chat/discussion to a note.

This tool extracts all messages from the current conversation (both user questions and NotebookLM AI responses) and saves them as a formatted note in the Studio panel.

Use this to:

  • Preserve important research conversations

  • Create a summary of your discussion with NotebookLM

  • Save chat history before starting a new topic

The note will include timestamps and message attribution (User/NotebookLM).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoCustom title for the note (default: "Chat Summary")
session_idNoSession ID to reuse an existing session
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it extracts all messages and saves them as a formatted note with timestamps and attribution. This adds context beyond annotations (readOnlyHint=false, indicating a write operation) and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement, a process paragraph, a bulleted use-case list, and a note on output content. It is concise, though the use-case list could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low parameter complexity (3 optional params) and the presence of an output schema, the description adequately covers purpose, process, use cases, and output content. It does not address edge cases like empty chats, but overall is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions, achieving 100% coverage. The description adds minimal extra context, such as the default title 'Chat Summary', but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves the current chat to a note, using the verb 'Save' and specifying the resource 'current NotebookLM chat/discussion'. It distinguishes from sibling tools like note_create (which creates a blank note) by specifying it extracts messages from a chat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists three use cases: preserving conversations, creating summaries, and saving history. It implies when to use this tool over alternatives, though it does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

note_to_sourceA

Convert a note to a source document in NotebookLM.

This feature allows you to convert an existing note into a source, making the note content available for RAG queries and research.

The method:

  1. Finds the note by title in the Studio panel

  2. Attempts to use NotebookLM's native "Convert to source" feature if available

  3. Falls back to extracting note content and creating a text source if not

Use this when you want your note content to be included in NotebookLM's knowledge base for answering questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_titleYesTitle of the note to convert (required)
session_idNoSession ID to reuse an existing session
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the internal method (find by title, attempt native convert, fallback to extraction) and outcome (content available for RAG queries), adding context beyond the annotations. However, it does not cover failure modes or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and structured with a list of steps. It is somewhat lengthy but each sentence adds value; the step list could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return values. It provides a use case and mentions optional parameters, but could include more context about prerequisites like the active notebook.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented. The description does not add significant additional meaning beyond the schema, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts a note to a source document in NotebookLM, using a specific verb and resource. It distinguishes from sibling tools like note_create and source_add by focusing on conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool ('Use this when you want your note content to be included in NotebookLM's knowledge base'), but does not list alternatives or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_sourcesA

Discover web sources for a notebook via NotebookLM Fast Research. RPC-backed. Returns the found sources; set import: true to also add them to the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat to research on the web.
importNoIf true, import the discovered sources into the notebook.
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebookLM notebook URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions that the tool returns sources and can import them via the `import` parameter, which covers the core behavior. However, it does not discuss authentication, rate limits, or side effects beyond importing, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences. It front-loads the primary purpose. The phrase 'RPC-backed' is slightly jargon but not harmful. Every sentence serves a purpose, though it could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to detail return structure. It covers the main behavior and the import option. For a tool with 4 well-documented parameters, the description is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds a note about setting `import: true` to also add sources, but this is redundant with the schema's parameter description. No new semantic value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Discover', the resource 'web sources for a notebook', and the method 'NotebookLM Fast Research'. It distinguishes itself from siblings like 'notebook_ask' or 'source_add' by specifying web research for a notebook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for discovering and optionally importing web sources, but it does not explicitly state when to use this tool versus alternatives like 'library_discover' or 'source_add'. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_cleanupA
Destructive

ULTRATHINK Deep Cleanup - Scans entire system for ALL NotebookLM MCP data files across 8 categories. Always runs in deep mode, shows categorized preview before deletion.

⚠️ CRITICAL: Close ALL Chrome/Chromium instances BEFORE running this tool! Open browsers can prevent cleanup and cause issues.

Categories scanned:

  1. Legacy Installation (notebooklm-mcp-nodejs) - Old paths with -nodejs suffix

  2. Current Installation (notebooklm-mcp) - Active data, browser profiles, library

  3. NPM/NPX Cache - Cached installations from npx

  4. Claude CLI MCP Logs - MCP server logs from Claude CLI

  5. Temporary Backups - Backup directories in system temp

  6. Claude Projects Cache - Project-specific cache (optional)

  7. Editor Logs (Cursor/VSCode) - MCP logs from code editors (optional)

  8. Trash Files - Deleted notebooklm files in system trash (optional)

Works cross-platform (Linux, Windows, macOS). Safe by design: shows detailed preview before deletion, requires explicit confirmation.

LIBRARY PRESERVATION: Set preserve_library=true to keep your notebook library.json file while cleaning everything else.

RECOMMENDED WORKFLOW for fresh start:

  1. Ask user to close ALL Chrome/Chromium instances

  2. Run cleanup_data(confirm=false, preserve_library=true) to preview

  3. Run cleanup_data(confirm=true, preserve_library=true) to execute

  4. Run setup_auth or re_auth for fresh browser session

Use cases: Clean reinstall, troubleshooting auth issues, removing all traces before uninstall, cleaning old browser sessions and installation data.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesConfirmation flag. Tool shows preview first, then user confirms deletion. Set to true only after user has reviewed the preview and explicitly confirmed.
preserve_libraryNoPreserve library.json file during cleanup. Default: false. Set to true to keep your notebook library while deleting everything else (browser data, caches, logs).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark destructiveHint=true and readOnlyHint=false; the description goes far beyond by detailing deep mode, preview-before-deletion flow, cross-platform support, library preservation, and the critical warning about closing browsers. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with a warning, categorized list, and workflow. It is front-loaded with the purpose and critical warning. While slightly verbose, every sentence adds necessary information for a destructive tool, justifying its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all aspects: purpose, behavior, parameters, use cases, prerequisites (close browsers), workflow, and library preservation. Given complexity and existing output schema, it is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds value by explaining the two-step workflow for 'confirm' (preview then delete) and clarifying 'preserve_library' keeps library.json while deleting everything else. It also includes a workflow example, enhancing understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a deep cleanup of NotebookLM MCP data files across 8 categories, with specific verb 'scans' and 'shows preview before deletion'. It distinguishes itself from sibling tools (auth, content, library tools) by its destructive cleanup nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists use cases (clean reinstall, troubleshooting auth issues, removing all traces) and provides a recommended workflow with steps. It also warns about closing Chrome and explains when to use confirm=true/false and preserve_library. No alternative tools exist among siblings, so guidance is complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_healthA
Read-onlyIdempotent

Get server health status including authentication state, active sessions, and configuration. Use this to verify the server is ready before starting research workflows.

If authenticated=false and having persistent issues: Consider running cleanup_data(preserve_library=true) + setup_auth for fresh start with clean browser session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, which the description reinforces. Additionally, it explains what the tool checks (auth state, sessions, configuration) and suggests a recovery path for failures, adding context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences followed by a conditional note. Every sentence is purposeful and front-loaded with the primary use case. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema, the description covers purpose, usage context, and troubleshooting guidance. It is fully complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters; the input schema is empty. With 100% schema coverage, no additional parameter info is needed. Baseline of 4 for zero parameters applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves server health including authentication state, active sessions, and configuration. The verb 'Get' and the specific resources distinguish it from sibling tools like 'session_list' or 'auth_setup'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'verify the server is ready before starting research workflows.' It also provides an alternative recovery procedure if authenticated=false and having persistent issues, guiding the agent to use other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_closeA
DestructiveIdempotent

Close a specific session by session ID. Ask before closing if the user might still need it.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session ID to close

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint true, but description adds the important 'ask before closing' behavior, providing extra guidance beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, return info not needed. Description covers usage, parameter, and necessary behavioral guardrails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so description adds no new param info beyond what schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Close' and resource 'session by session ID' are clearly stated. It distinguishes from siblings like session_list (listing) and session_reset (resetting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Ask before closing if the user might still need it,' providing clear context for when to use and prompting confirmation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_listA
Read-onlyIdempotent

List all active sessions with stats (age, message count, last activity). Use to continue the most relevant session instead of starting from scratch.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. Description adds that it lists 'active' sessions with specific stats, which is helpful beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only: first states purpose and output, second provides usage guideline. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no required parameters and an output schema exists. Description covers the return fields, making it complete for an agent to understand and use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no parameters, so description doesn't need to explain them. However, it adds value by describing the output fields (age, message count, last activity), which compensates for the lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'list all active sessions with stats' and specifies the three stats returned. Distinguishes from sibling tools like session_close and session_reset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to continue the most relevant session instead of starting from scratch,' providing a clear when-to-use and alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_resetA
DestructiveIdempotent

Reset a session's chat history (keep same session ID). Use for a clean slate when the task changes; ask the user before resetting.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session ID to reset

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and idempotentHint=true. Description adds that the session ID remains and the chat history is reset, plus the instruction to ask the user. No contradiction. Provides additional behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficient and front-loaded. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema (not detailed), the description covers purpose, usage, and behavioral expectations. Complete for the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for session_id. The tool description does not add extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool resets a session's chat history while keeping the same session ID. The title 'Reset session history' reinforces the purpose. It distinguishes from sibling tools like session_close and session_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: 'Use for a clean slate when the task changes' and instructs to ask the user before resetting. Does not directly contrast with alternatives like session_close, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

share_notebookA

Read a notebook’s sharing status, or toggle its public link. Omit set_public to just read status (public link on/off, owner/collaborators). Set set_public: true/false to enable/disable the public link. RPC-backed (no browser).

ParametersJSON Schema
NameRequiredDescriptionDefault
set_publicNoOptional. true = enable public link, false = restrict. Omit to only read status.
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebookLM notebook URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses both read and write behaviors (toggle public link), mentions what information is returned (status, owner, collaborators). But lacks details on error conditions, permission requirements, or side effects beyond toggling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no wasted words. First sentence states purpose, second explains parameter usage, third provides additional context. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 optional parameters and an output schema (not shown), description explains the return values (status, owner, collaborators) and usage modes. It covers the key behavioral aspects for a read/write tool, though lacks specifics on required parameter combinations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by explaining the conditional behavior of `set_public` (omit for read, set for toggle) and clarifying that `notebook_id` and `notebook_url` are alternatives. This is beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads sharing status or toggles public link, with specific verb 'Read' or 'toggle' and resource 'notebook’s sharing status'. It distinguishes between the two modes, setting it apart from sibling tools like notebook_create or notebook_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit instructions: omit `set_public` to read, set to true/false to toggle. Also mentions 'RPC-backed (no browser)' to clarify execution context. However, it does not discuss when not to use this tool or suggest alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

source_addA

Add a source (document, URL, text, YouTube video) to the current NotebookLM notebook.

Supported source types:

  • file: Upload a local file (PDF, DOCX, TXT, etc.)

  • url: Add a web page URL

  • text: Paste text content directly

  • youtube: Add a YouTube video URL

  • google_drive: Add a Google Drive document link

The source will be processed and indexed for use in conversations.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL (required for source_type="url", "youtube", "google_drive")
textNoText content (required for source_type="text")
titleNoOptional title/name for the source
file_pathNoLocal file path (required for source_type="file")
session_idNoSession ID to reuse an existing session
source_typeYesType of source to add
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds that the source will be 'processed and indexed for use in conversations,' which provides some behavioral context beyond the annotations (readOnlyHint=false, idempotentHint=false, openWorldHint=true). However, it omits details about side effects like duplication on repeated calls, authentication needs, or rate limits. The description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using a bullet list for source types. Every sentence adds value, and it is appropriately front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (7 parameters, 1 required), the description provides sufficient context: it states the processing and indexing behavior. Since an output schema exists, return values need not be explained. It is well-rounded, though it could mention input size limits or processing delays.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all seven parameters with descriptions, achieving 100% coverage. The description lists supported source types but does not add deeper meaning beyond the schema (e.g., format constraints, size limits). Per the guidelines, baseline 3 is appropriate when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Add a source (document, URL, text, YouTube video) to the current NotebookLM notebook.' It enumerates five specific source types, making the action concrete and distinguishing it from sibling tools like source_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives. There is no mention of when not to use it or which sibling tools might be more appropriate for similar tasks (e.g., content_generate for creating content). The context of processing and indexing is helpful but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

source_deleteA
Destructive

Delete a source from the current NotebookLM notebook.

You can identify the source to delete by either:

  • source_id: The unique identifier of the source

  • source_name: The name/title of the source (partial match supported)

Use list_content first to see available sources and their IDs/names.

WARNING: This action is irreversible. The source will be permanently removed from the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idNoThe unique ID of the source to delete
session_idNoSession ID to reuse an existing session
source_nameNoThe name/title of the source to delete (partial match supported)
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, but the description adds important context: irreversible action and permanent removal. Also details how to identify sources, adding value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, logically organized: action, identification methods, prerequisite, warning. No wasted words, front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all necessary aspects: what it does, how to specify the target, prerequisite action, and consequences. Output schema exists, so return values need no explanation. Complete for a deletion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds semantics: source_id is unique identifier, source_name supports partial match, and notes optional notebook_url and session_id. This enhances understanding beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action: delete a source from the current NotebookLM notebook. It clearly identifies the resource (source) and the context (notebook), and distinguishes from siblings like source_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides strong prerequisites by advising use of list_content first to see available sources. Lacks explicit 'when not to use' but the warning and identification method give sufficient guidance for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

source_listA
Read-onlyIdempotent

List the sources of a NotebookLM notebook, with their IDs and titles.

Use this to get the source_id that read_source and delete_source expect. RPC-backed (no browser).

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idNoNotebook UUID (alternative to notebook_url).
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds a practical behavior detail—'RPC-backed (no browser)'—which helps set execution expectations without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences capture the functionality, the return value purpose, and a relevant execution detail. There is no filler, and the core use case is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complete input schema, annotations, and an output schema. The description additionally explains why an agent would call it and what downstream tools need its result, making it fully self-contained for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both notebook_id and notebook_url. The description adds no extra parameter-level meaning beyond pointing at the source_id output, so a baseline score per schema coverage is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List the sources of a NotebookLM notebook') and what is returned (IDs and titles). It also ties the output to downstream consumers (read_source and delete_source), making the tool's role unambiguous among many siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool: to get the source_id that read_source and delete_source expect. It does not enumerate when not to use it or mention alternatives, but the primary use case is clear enough for an agent to select it over other source-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

source_readA
Read-onlyIdempotent

Read a source’s full indexed content — the exact text NotebookLM reasons over, which the web UI only ever shows in fragments.

Use it to quote a source verbatim, to check what was actually ingested from a PDF or web page, or to feed the raw material to another tool. Identify the source by source_id (from list_sources) or by source_name (partial match).

Long sources are paginated by default: you get the first 20,000 characters plus totalChars, nextCursor and a continue instruction telling you exactly how to ask for the rest. Pass cursor to continue, or paginate: false to take the whole document in one call. RPC-backed (no browser).

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoWhere to resume: pass the nextCursor from the previous page. Omit for the first page.
formatNotext (default) = the plain-text rendition. html = the HTML rendition, which keeps headings, lists and links but inlines images as base64 and is markedly bigger.
paginateNoReturn one page at a time (default: true). Set false to get the whole document in a single response — fine for a short source, expensive for a book-length one.
max_charsNoPage size in characters (default: 20000). Ignored when paginate is false. The cut is pulled back to the nearest line break so pages do not end mid-word.
source_idNoThe unique ID of the source to read (see list_sources).
notebook_idNoNotebook UUID (alternative to notebook_url).
source_nameNoThe title of the source to read (partial, case-insensitive match).
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show readOnlyHint and idempotentHint, and the description adds meaningful behavior beyond those: default pagination to 20,000 characters, totalChars/nextCursor/continue semantics, the ability to pass cursor or disable pagination, the difference between text and HTML renditions, and the fact that this is RPC-backed without a browser. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: purpose first, then use cases, then pagination and rendering behavior. Each sentence contributes meaningful guidance without repetition or filler, and the key default behavior is stated early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with an output schema and rich annotations, the description covers all critical aspects: what the tool reads, why it is valuable, how to identify the source, page behavior, formatting choices, and performance considerations for large documents. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema parameters already carry detailed descriptions. The description adds further value by explaining the pagination model — first page of 20,000 characters, totalChars, nextCursor, the 'continue' instruction, and that cuts pull back to line breaks — which makes the parameter meanings more actionable than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb-resource pair: 'Read a source’s full indexed content' — the exact text NotebookLM reasons over. It clearly distinguishes this from the web UI's fragmented display and from sibling tools like source_add or source_delete by naming the read operation on existing sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage contexts: quoting verbatim, verifying what was ingested, and feeding raw material to another tool. It references list_sources for finding source_id, providing clear selection guidance, though it does not state when to prefer sibling tools such as source_list or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_batchA

Run a list of questions against a notebook and persist each answer to disk as two artifacts: {slug}.md (markdown with YAML frontmatter, answer body and cited source excerpts) and {slug}.json (structured payload conforming to the nblm-answer-v1 schema). Designed for one-shot ingestion of a notebook into a searchable markdown vault (e.g. for indexing with RTFM) — every answer keeps titles + highlighted excerpts, so repeat queries no longer need to round-trip through NotebookLM.

Reuses the same browser/session as ask_question — no HTTP server required. Pass sleep_between_ms (1500–3000ms) for batches above ~20 questions to avoid hammering NotebookLM.

Returns per-question file paths, success flags, citation counts and the resolved session id. See the RTFM integration guide for the recommended workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionsYesNon-empty array of question strings to ask sequentially.
vault_dirYesDestination directory (absolute or relative). Created with mkdir -p if missing. Set NOTEBOOKLM_VAULT_ROOT in the server env to confine writes under a single root (recommended for shared/remote setups); without it, any writable path is accepted (legacy behaviour).
session_idNoOptional session id to reuse for context continuity across the batch.
notebook_idNoOptional library notebook id to query. Falls back to the active notebook.
slug_prefixNoOptional filename prefix (e.g. "sota", "market-2026q2"). Default: "".
notebook_urlNoOptional NotebookLM URL (overrides notebook_id). Use for ad-hoc notebooks.
source_formatNoCitation extraction mode. "json" (default) preserves titles + excerpts in the sidecar.
sleep_between_msNoPause between questions in ms. 1500–3000 is sane for batches above ~20.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses persistence to disk, reuse of browser/session, and no HTTP server requirement. Annotations already indicate mutation; description adds file output details. Does not mention overwrite behavior or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-organized paragraphs with clear progression. Front-loaded with core purpose. Could be slightly trimmed but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for an 8-parameter tool with output schema. Covers purpose, output format, usage guidelines, and references external integration guide. No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions are complete (100% coverage), so baseline is 3. Description adds extra guidance on sleep_between_ms range and vault_dir confinement, improving practical usage understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool runs a list of questions against a notebook and persists answers as .md and .json artifacts. Differentiates from sibling tools by focusing on batch processing and vault ingestion, and mentions reuse of ask_question's browser/session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context for one-shot ingestion and reduces round-trips. Gives specific advice on sleep_between_ms for large batches. Could be more explicit about preferring this over single-query tools when persistence is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists (e.g., library_list vs notebook_list, library_discover vs library_add, and several note-related tools could be confused without careful reading). Descriptions are detailed enough to help agents differentiate.

Naming Consistency3/5

The naming pattern is mostly noun_verb (e.g., notebook_list, source_add), but several tools break this pattern with verb_noun (e.g., generate_study_aid, research_sources, share_notebook), creating inconsistency. The server also mixes different verb styles (e.g., delete vs remove).

Tool Count3/5

37 tools is on the high side for a single service like NotebookLM. While each tool has a specific function, some are redundant or niche (e.g., vault_batch, server_cleanup, library_discover vs library_add), making the surface feel over-engineered.

Completeness4/5

The tool set covers the main workflows: library and notebook CRUD, source management, content generation, notes, and auth. Minor gaps exist (e.g., no source update tool, no notebook rename tool, no collaborator management), but the core lifecycle is well-covered.

Maintenance

ActivityActive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that lets CLI agents (Claude, Codex, Cursor) chat directly with Google NotebookLM for zero-hallucination answers based on user's own notebooks.
    4,624
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/roomi-fields/notebooklm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server