Skip to main content
Glama

NotebookLM MCP Server

讓您的 CLI 代理 (Claude, Cursor, Codex...) 直接與 NotebookLM 對話,根據您的筆記本獲得零幻覺的答案

TypeScript MCP npm Claude Code Skill GitHub

安裝快速開始為什麼選擇-notebooklm範例文件


注意:本專案 fork 自 PleasePrompto/notebooklm-mcp.git,此版本為修改版。


問題

當您告訴 Claude Code 或 Cursor「搜尋我的本地文件」時,會發生以下情況:

  • 大量 Token 消耗:搜尋文件意味著重複讀取多個檔案

  • 檢索不準確:關鍵字搜尋會錯過文件之間的上下文和關聯

  • 幻覺:當它找不到東西時,它會編造聽起來合理的 API

  • 昂貴且緩慢:每個問題都需要重新讀取多個檔案

Related MCP server: notebooklm-mcp

解決方案

讓您的本地代理直接與 NotebookLM 對話 — Google 的 零幻覺知識庫,由 Gemini 2.5 提供支援,可從您的文件中提供智慧、綜合的答案。

您的任務 → 本地代理詢問 NotebookLM → Gemini 綜合答案 → 代理編寫正確的程式碼

真正的優勢:不再需要在 NotebookLM 和您的編輯器之間手動複製貼上。您的代理直接詢問 NotebookLM 並在 CLI 中直接獲得答案。它可以通過自動追問建立深刻的理解 — Claude 會按順序詢問多個問題,每個問題都建立在上一個問題的基礎上,獲取具體的實作細節、邊緣情況和最佳實踐。您可以將 NotebookLM 連結儲存到帶有標籤和描述的本地庫中,Claude 會根據您當前的任務自動選擇相關的筆記本。


為什麼選擇 NotebookLM 而不是本地 RAG?

方法

Token 成本

設定時間

幻覺

答案品質

將文件餵給 Claude

🔴 非常高 (多次讀取檔案)

即時

有 - 會填補空白

檢索變數

網路搜尋

🟡 中等

即時

高 - 來源不可靠

時好時壞

本地 RAG

🟡 中-高

數小時 (嵌入, 切塊)

中 - 檢索缺漏

取決於設定

NotebookLM MCP

🟢 極低

5 分鐘

- 未知則拒絕

專家級綜合

NotebookLM 有何過人之處?

  1. 由 Gemini 預處理:上傳文件一次,即可獲得即時的專家知識

  2. 自然語言問答:不僅僅是檢索 — 而是真正的理解和綜合

  3. 多來源關聯:連接 50 多個文件中的資訊

  4. 引用支援:每個答案都包含來源引用

  5. 無基礎設施:無需向量資料庫、嵌入或切塊策略


安裝

Claude Code

claude mcp add notebooklm npx notebooklm-mcp-zh@latest

Cursor

新增至 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "notebooklm-mcp-zh@latest"]
    }
  }
}

快速開始

1. 安裝 MCP 伺服器 (見上方 安裝)

2. 驗證 (一次性)

在您的聊天 (Claude/Cursor) 中說:

"Log me in to NotebookLM" (登入 NotebookLM)

Chrome 視窗將開啟 → 使用 Google 登入

3. 建立您的知識庫

前往 notebooklm.google.com → 建立筆記本 → 上傳您的文件:

  • 📄 PDF, Google Docs, markdown 檔案

  • 🔗 網站, GitHub 儲存庫

  • 🎥 YouTube 影片

  • 📚 每個筆記本支援多個來源

分享:⚙️ Share (分享) → Anyone with link (任何擁有連結的人) → Copy (複製)

4. 讓 Claude 使用它

"I'm building with [library]. Here's my NotebookLM: [link]"
(我正在使用 [library] 進行開發。這是我的 NotebookLM:[連結])

就這樣。 Claude 現在會詢問 NotebookLM 它需要的任何資訊,在編寫程式碼之前建立專業知識。


真實案例

建立 n8n 工作流程而不產生幻覺

挑戰:n8n 的 API 很新 — Claude 經常對節點名稱和功能產生幻覺。

解決方案

  1. 下載完整的 n8n 文件 → 合併成易於管理的區塊

  2. 上傳到 NotebookLM

  3. 告訴 Claude:"幫我建立一個 Gmail 垃圾郵件過濾工作流程。使用這個 NotebookLM:[連結]"

結果:第一次嘗試就獲得完美的工作流程。無需除錯幻覺產生的 API。


核心功能

零幻覺

如果資訊不在您的文件中,NotebookLM 會拒絕回答。不會有發明的 API。

自主研究

Claude 會自動詢問後續問題,在編碼前建立完整的理解。

智慧庫管理

使用標籤和描述儲存 NotebookLM 連結。Claude 會為您的任務自動選擇正確的筆記本。

"Add [link] to library tagged 'frontend, react, components'"

跨工具共享

設定一次,隨處使用。Claude Code, Codex, Cursor — 均共享同一個庫。

深度清理工具

隨時重新開始。掃描整個系統的 NotebookLM 資料並提供分類預覽。


工具設定檔 (Tool Profiles)

透過僅載入您需要的工具來減少 Token 使用量。

設定檔

工具數量

用途

minimal

5

僅查詢:ask_question, get_health, list_notebooks, select_notebook, get_notebook

standard

10

+ 庫管理:setup_auth, list_sessions, add_notebook, update_notebook, search_notebooks

full

16

所有工具,包含 cleanup_data, re_auth

設定方式:

npx notebooklm-mcp-zh config set profile minimal

常見指令

意圖

指令 (範例)

結果

驗證

"Log me in to NotebookLM"

開啟 Chrome 登入

新增筆記本

"Add [link] to library"

儲存筆記本與中繼資料

列出筆記本

"Show our notebooks"

列出所有儲存的筆記本

先行研究

"Research this in NotebookLM before coding"

多問題會話

選擇筆記本

"Use the React notebook"

設定當前活動筆記本


免責聲明

此工具自動化與 NotebookLM 的瀏覽器互動。

關於瀏覽器自動化: 雖然我已經加入了擬人化功能(真實的打字速度、自然延遲、滑鼠移動)以使自動化行為更自然,但我不能保證 Google 不會檢測或標記自動化使用。建議使用專用的 Google 帳戶進行自動化,而不是您的主要帳戶。

關於 CLI 工具和 AI 代理: 請謹慎使用:

  • 在提交或部署之前務必審查變更

  • 先在安全環境中測試

  • 備份重要工作


貢獻

發現錯誤?有功能想法?歡迎在 GitHub 上提交 issue 或 PR!

授權

MIT — 可在您的專案中自由使用。

Available Tools

16 tools
add_notebookA

PERMISSION REQUIRED — Only when user explicitly asks to add a notebook.

Conversation Workflow (Mandatory)

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

  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

  • Do not guess metadata — ask concisely

  • Confirm summary before calling the tool

Example

User: "I have a notebook with n8n docs" 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')
descriptionYesWhat knowledge/content is in this notebook
topicsYesTopics covered in this notebook
content_typesNoTypes of content (e.g., ['documentation', 'examples', 'best practices'])
use_casesNoWhen should Claude use this notebook (e.g., ['Implementing n8n workflows'])
tagsNoOptional tags for organization

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the mutating nature and the need for explicit user permission, which is important. However, it does not mention what happens on success or failure, whether duplicates are possible, or whether API authentication is required, leaving behavioral gaps.

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

Conciseness2/5

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

The description is overlong and repetitive, restating the permission requirement multiple times ('Only when user explicitly asks', 'Do not add without user permission', 'Only after explicit Yes'). The 'How to Get a NotebookLM Share Link' section, including quota details, is auxiliary and not necessary for tool invocation.

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?

It provides enough workflow detail for an agent to successfully call the tool, including how to obtain a share link and how to confirm metadata. However, there is no output schema and no description of return values, error handling, or authentication requirements, especially given the presence of setup_auth and re_auth among siblings.

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 schema already documents all seven parameters, so the baseline is 3. The description adds meaning by explaining how parameter values should be elicited from the user (URL first, then content, topics, use cases) and how metadata should be proposed and confirmed before calling.

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 identifies the verb 'add' and resource 'notebook', and narrows invocation to explicit user requests. This distinguishes it from sibling tools like list_notebooks, update_notebook, and remove_notebook without needing to inspect their schemas.

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?

It explicitly states when to use the tool ('Only when user explicitly asks to add a notebook'), when not to ('Do not add without user permission'), and provides a mandatory conversational workflow. The example further reinforces the correct timing and confirmation step.

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

ask_questionC

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.
browser_optionsNoOptional browser behavior settings. Claude can control everything: visibility, typing speed, stealth mode, timeouts. Useful for debugging or fine-tuning.

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions authentication needs and browser debugging options, it doesn't explain what the tool actually does behaviorally - whether it performs a conversational query, returns RAG results, creates sessions, or how it interacts with NotebookLM. The behavioral mechanics are unclear.

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

Conciseness2/5

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

The description is poorly structured and not front-loaded with the tool's purpose. It begins with setup instructions rather than explaining what the tool does. While individual sections are reasonably concise, the overall structure prioritizes auxiliary information over core functionality, making it inefficient for quick understanding.

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

Completeness2/5

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

For a complex tool with 6 parameters, nested objects, no output schema, and no annotations, the description is incomplete. It covers setup and authentication context but fails to explain what the tool actually returns, how sessions work, or the core NotebookLM query behavior. The description doesn't compensate for the lack of output schema and behavioral annotations.

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%, providing comprehensive parameter documentation. The description adds no parameter-specific information beyond what's already in the schema. The baseline score of 3 reflects adequate parameter understanding through schema alone, with no additional value from the description.

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

Purpose2/5

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

The description fails to clearly state what the tool does. It's primarily composed of setup instructions, authentication tips, and user guidance rather than explaining the core function. The tool name 'ask_question' suggests asking questions to NotebookLM, but the description doesn't explicitly state this purpose or distinguish it from sibling tools like search_notebooks.

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 about when to use this tool by explaining prerequisites (needs an active notebook) and referencing related tools for setup (add_notebook, list_notebooks, select_notebook). It mentions authentication requirements and troubleshooting steps, giving practical guidance for proper usage.

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

cleanup_dataA

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).

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavior disclosure. It clearly indicates destructive deletion, preview-before-deletion, explicit confirmation, deep mode, Chrome/Chromium prerequisite, cross-platform behavior, and the library preservation option. This is far beyond minimal disclosure and fully prepares an agent for the tool's safety profile.

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?

Although the description is long, it is well-structured with a critical warning front-loaded, a scannable categorized list, and clear sections for workflow and use cases. Every element serves the operational needs of a destructive, cross-platform tool; there is no filler or redundancy.

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, destructive nature, absence of annotations, and absence of an output schema, the description is remarkably complete. It covers prerequisites, the eight categories scanned, the preservation escape hatch, a step-by-step workflow, and use cases. No critical detail needed to invoke the tool safely 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% for both parameters, so the baseline is 3. The description adds a recommended workflow that maps confirm=false to preview and confirm=true to execution, and clarifies preserve_library as keeping library.json 'while cleaning everything else.' This usage-level guidance goes beyond the schema's parameter 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 states a specific verb (cleanup) and resource ('all NotebookLM MCP data files across 8 categories'), with explicit scope. It is clearly differentiated from sibling tools, which are about notebooks, sessions, auth, or health, none of which perform system-wide data deletion. The 'Always runs in deep mode' detail adds further precision.

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 provides explicit use cases (clean reinstall, troubleshooting auth issues, removing all traces before uninstall, cleaning old browser sessions) and a recommended workflow that sequences preview and execute calls, followed by setup_auth/re_auth. It does not explicitly state when not to use the tool, but since no sibling tool is an alternative for cleanup, the guidance is sufficient.

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

close_sessionA

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

TDQS

A4/5.0
Behavior3/5

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

With no annotations available, the description carries the safety burden. The 'ask before closing' guardrail signals that closing can be disruptive and requires user consent, but it never states what closing actually does, whether it can be undone, or side effects on the current workflow.

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 with no filler. The core action is front-loaded, and the safety instruction 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?

For a single-parameter tool with no output schema and a simple action, this definition is nearly sufficient: it gives the target, the ID source, and the key caution. It is only missing a clear statement of consequences and a pointer to the related reset_session alternative.

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%, and the schema already documents session_id as 'The session ID to close.' The description's 'by session ID' adds no new parameter semantics, so the baseline of 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 uses a specific verb and target ('Close a specific session by session ID'), making the tool's purpose unambiguous. The action is distinct from siblings like list_sessions and reset_session, even though no sibling is named.

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 gives an explicit behavioral rule: ask before closing if the user might still need the session, which tells the agent when invocation is appropriate. It does not name alternatives or list when not to use it, so it falls just short of full guidance.

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

get_healthA

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

TDQS

A4.2/5.0
Behavior3/5

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

Because annotations are absent, the description carries the burden. 'Get' implies read-only behavior and the returned categories are named, but there is no explicit statement that the call has no side effects, no authentication requirements, or no impact on sessions. The recovery note adds some useful behavioral context, but not full transparency.

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 three compact, purposeful sentences: purpose, usage context, and an actionable troubleshooting fallback. It front-loads the core definition and every sentence 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?

The description tells an agent what to call, why, and what to inspect (authentication state, active sessions, configuration), plus how to recover from a failed health check. Since there is no output schema, a slightly more explicit return-shape note would make it fully complete, but the existing guidance is sufficient for a health check 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?

The tool takes zero parameters and schema coverage is complete, so there are no undocumented parameters to clarify. The rubric baseline for zero-parameter tools is 4, and the description does not need to add parameter-level detail.

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 states a clear action ('Get server health status') and specifies the resource by enumerating what is included: authentication state, active sessions, and configuration. This makes the tool's function immediately identifiable and distinct from the other notebook/session tools.

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 says to use this tool to verify the server is ready before starting research workflows, which is a concrete usage context. It also gives a conditional recovery path (cleanup_data + setup_auth when authenticated=false with persistent issues), but it does not explicitly contrast the tool with siblings such as list_sessions or setup_auth.

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

get_library_statsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/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 the burden of behavioral disclosure. It clearly indicates a read-only statistics operation, which is sufficient for this simple zero-parameter tool, though it does not detail what 'usage' includes or specify return structure.

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, front-loaded sentence with no redundancy. It communicates the core purpose efficiently and includes concrete examples without unnecessary detail.

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 zero-parameter, read-only statistics tool, the description is largely complete. The absence of an output schema is partially mitigated by the examples given, though exact fields and format remain unspecified.

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 zero parameters, so parameter semantics are not applicable; the baseline of 4 reflects that no parameter guidance is needed. The description's mention of the statistics content compensates for the lack of an output schema.

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 states a clear verb ('get') and a specific resource ('statistics about your notebook library'), with examples like total notebooks and usage. It is distinguishable from sibling tools like list_notebooks or get_notebook, though it does not explicitly name them.

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 implies this tool is for high-level library statistics, but gives no explicit guidance on when to use it versus listing notebooks or querying individual notebook details. There are no stated exclusions or alternative tool references.

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

get_notebookA

Get detailed information about a specific notebook by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe notebook ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. 'Get detailed information' clearly signals a read-only operation, but it does not specify what 'detailed' includes, how errors are handled (e.g., invalid ID), or any response format expectations. Adequate but shallow.

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?

A single sentence that is direct and front-loaded, with no filler. Every word contributes meaning.

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 simple one-parameter read tool, the description is sufficient to invoke correctly: provide an ID and receive detailed notebook info. The lack of an output schema makes 'detailed information' somewhat vague, but this is a minor gap given the tool's simplicity.

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 id parameter is already well documented in the schema. The description's 'by ID' merely restates the parameter's purpose without adding format, source, or usage details. 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 ('Get') + resource ('notebook') + scope ('specific notebook by ID'), making it easy to distinguish from sibling tools like list_notebooks or search_notebooks. The intent is 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 phrase 'by ID' implies usage when a notebook ID is available, but there is no explicit guidance on when to prefer this over list_notebooks, search_notebooks, or select_notebook. Alternatives are not named or excluded, so the usage context remains implied rather than stated.

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

list_notebooksA

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

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of conveying behavior. It reveals that the tool returns list metadata (name, topics, use cases, URL), but it does not mention pagination, ordering, authentication requirements, or potential side effects. For a simple list operation this is adequate but not richly transparent.

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 filler: the first states exactly what is listed and what metadata is included; the second gives a clear next-step workflow. Well front-loaded and economical.

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 simple parameterless list tool, the description covers what it returns and how to use the result. It lacks details like whether the result is sorted or limited, but the core invocation context is 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?

The tool has zero parameters, so there is nothing for the description to explain beyond confirming it needs no input. The baseline for a parameterless tool is 4, and the description does not mislead.

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 states a specific verb ('List') and resource ('library notebooks'), and includes the metadata fields returned. It is clearly a listing operation, distinct from 'get_notebook' or 'search_notebooks', though it does not explicitly name those siblings or explain the difference.

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 clear workflow guidance: use this tool to present options, then ask which notebook to use. It does not mention alternative tools or when to prefer search_notebooks or get_notebook, but the provided context is actionable.

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

list_sessionsA

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

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the operation ('List all active sessions') and the returned stats, so an agent can infer a read-only listing, but it does not specify sorting, pagination, or what makes a session 'active.'

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 filler: the first states the action and output shape, the second states the intended use case. Everything 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?

For a no-parameter listing tool, the description gives the resource, the returned stats, and a usage directive. There is no output schema, but the stat list is spelled out, so the agent has what it needs to invoke and interpret the 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?

The tool has zero parameters and 100% schema description coverage, so the schema already fully handles parameter meaning. Per the baseline for zero-parameter tools, a 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 states a specific verb-resource pair ('List all active sessions') and enumerates the returned data ('age, message count, last activity'), distinguishing it from notebook-focused siblings like list_notebooks.

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 second sentence explicitly frames when to use the tool—'continue the most relevant session instead of starting from scratch'—which gives clear context. It does not name alternatives or list explicit exclusions, 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.

re_authA

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
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.

TDQS

A4.5/5.0
Behavior5/5

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

Even with no annotations, the description fully discloses the destructive side effects: closing all browser sessions, deleting cookies and the Chrome profile, and opening a fresh login. It also sets expectations about repeated failures and cleanup steps. This is far more transparent than a minimal 're-authenticate' statement.

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 front-loaded with purpose and usage triggers, then moves through effects, verification, and troubleshooting in a logical order. Although long, every section earns its place given the destructive and potentially repeating nature of re-authentication, and there is no filler.

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 tool with no output schema and no annotations, the description is complete enough to call correctly: it explains what will happen, when to use it, how to verify success, and how to recover if re_auth fails repeatedly. The parameter schema fills in the remaining details.

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 parameters and their defaults. The description adds some framing around 'simple version' vs 'browser_options' but does not meaningfully expand on parameter semantics beyond what the schema provides.

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 ('Switch to a different Google account or re-authenticate'), names the resource, and lists concrete triggers: rate limit reached, account switch, and broken authentication. This clearly communicates what the tool does and differentiates it from initial auth/setup by emphasizing re-authentication.

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 this when' bullets covering rate limits, account switching, and broken authentication, plus follow-up verification with get_health and recovery steps involving cleanup_data. However, it does not explicitly contrast with setup_auth or state when not to use this tool, so it stops short of full when/when-not guidance.

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

remove_notebookA

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

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it flags the tool as 'Dangerous,' requires explicit confirmation, and clarifies that the call removes from the library but 'Does not delete the actual NotebookLM notebook.' It does not mention error behavior or reversibility, but the destructive semantics and limits are disclosed.

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 warning is front-loaded and the numbered workflow is well organized. The example is slightly redundant with the steps, but it does not bloat the description and reinforces the confirmation behavior.

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 single-parameter destructive tool with no output schema, the description is complete: it covers the prerequisite lookup, exact confirmation wording, permission rule, and scope boundary. An agent has everything needed to decide and perform the call safely.

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 only parameter id is already fully described in the schema ('The notebook ID to remove'), so the schema carries the semantic weight. The description's workflow implies the id should be resolved by looking up the full notebook name, but it never explicitly connects id to list_notebooks or explains required format.

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 makes the operation clear through the quoted confirmation prompt 'Remove '[notebook_name]' from your library?' and explicitly scopes it to the library, adding 'Does not delete the actual NotebookLM notebook.' This distinguishes removal from the sibling update and add operations even without a direct declarative sentence.

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 numbered confirmation workflow: wait for user request, look up full name, ask explicit confirmation, and only call on 'Yes'. Explicitly states 'Never remove without permission or based on assumptions,' giving strong when-to-use guidance and a safety exclusion.

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

reset_sessionA

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

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description reveals the key behavior: chat history is discarded while the session ID is preserved, and it flags that user consent is needed. However, it does not explicitly state that the reset is irreversible or what happens to the session immediately after reset.

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 carry the purpose, the behavioral caveat, and user guidance with no filler. Important information is front-loaded before the usage note.

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 one-parameter tool with no output schema, the description covers what is reset, that the session ID persists, when to use it, and the consent requirement. It could mention irreversibility or return behavior, but the tool is simple enough that nothing critical is missing.

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 fully documents session_id. The description adds no parameter-specific detail, which is acceptable given the single parameter is self-explanatory.

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 specific verb and resource: 'Reset a session's chat history.' The parenthetical '(keep same session ID)' further distinguishes it from close_session and makes the tool's scope unambiguous.

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 the tool ('Use for a clean slate when the task changes') and provides an important guardrail ('ask the user before resetting'). It does not explicitly name alternative tools, but the purpose and condition are clear enough for an agent.

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

search_notebooksA

Search library by query (name, description, topics, tags). Use to propose relevant notebooks for the task and then ask which to use.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It adds useful context by explaining that results should be proposed and the user asked which to use, implying a non-destructive, candidate-returning search. However, it does not explicitly state that the operation is read-only, how results are returned, or any failure behaviors.

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, no filler, with the core function front-loaded. Every sentence earns its place: the first defines what it searches, the second defines how to use the results.

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 single-parameter search tool with no output schema, the description covers the search fields and the intended follow-up workflow, which is enough to invoke correctly. It does not spell out the exact return structure, but that is a minor gap given the tool's simplicity.

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 schema only describes 'query' as 'Search query', while the tool description adds that the query applies to name, description, topics, and tags. This enriches the otherwise minimal schema description and tells the agent what the query parameter will match.

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 states a specific action ('Search library by query') and defines the resource scope plus the fields being searched (name, description, topics, tags). This clearly distinguishes it from sibling tools like list_notebooks, which would list without query matching.

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 clear usage context: use it to propose relevant notebooks for the task and then ask which to use. It does not explicitly name alternatives or list when-not-to-use cases, 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.

select_notebookA

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

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the side effect of changing the active default for future ask_question calls and gives auto-switching guidance. It does not cover persistence, errors, or return behavior, but it is honest about the state mutation.

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 front-loaded with a one-sentence purpose, then organized into clear sections. The bullets and example are concise and directly useful for an agent deciding when and how to invoke the tool.

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 one-parameter tool with no output schema, the description is remarkably complete: it defines the effect, gives usage triggers, and provides an example. It could mention how to obtain the notebook ID (e.g., via list_notebooks) and what happens on an invalid ID, but those are minor 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?

Schema coverage for the single 'id' parameter is 100%, so the schema already explains it as 'The notebook ID to activate'. The description adds context about the default mechanism but not much additional parameter-level meaning.

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 verb and resource: 'Set a notebook as the active default'. It also clarifies its role relative to ask_question, which distinguishes it from the notebook CRUD 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?

The 'When To Use' section gives explicit trigger conditions such as context switches and explicit user requests. It stops short of naming alternatives or stating when not to use the tool, but the provided contexts are clear and actionable.

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

setup_authA

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. 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
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.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden and does so well: it explains the browser window opens, the tool returns immediately, the user has 10 minutes to log in, and get_health should verify success. It could go further by specifying what happens if the login times out or whether existing credentials are overwritten, but it is still notably transparent.

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-organized and front-loaded with the core behavior, then alternatives, then troubleshooting. It is longer than minimal but every section earns its place, especially the troubleshooting block that tells an agent exactly how to recover from auth failures.

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 tool with no annotations and no output schema, the description covers the main operational context: what it does, how long login takes, how to verify success, when to use an alternative, and how to recover from persistent failures. Minor gaps remain around exact return behavior and edge cases like expired browser sessions, but overall it is complete enough to call 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 already provides 100% parameter coverage, describing show_browser and browser_options with defaults and guidance. The description itself does not add significant parameter-level meaning, but that is acceptable because the schema is already rich and the baseline for full schema coverage is 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 tool's purpose: Google authentication for NotebookLM access via a manual browser login. It also explicitly contrasts setup_auth with re_auth, so an agent can distinguish them without opening schemas.

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 gives concrete usage guidance: use setup_auth for first-time authentication or when auto-login credentials are unavailable, use re_auth for account switching/rate-limit workarounds, and verify with get_health afterward. It even includes a troubleshooting sequence involving cleanup_data, which fully covers when and how 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.

update_notebookA

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
nameNoNew display name
descriptionNoNew description
topicsNoNew topics list
content_typesNoNew content types
use_casesNoNew use cases
tagsNoNew tags
urlNoNew notebook URL

TDQS

A3.7/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 of behavioral disclosure. It states that metadata is updated but does not explain overwrite vs. merge semantics, permissions, reversibility, or return behavior. The example says 'Add Next.js 14 to topics' while the schema says 'New topics list', leaving ambiguity about whether array fields replace or augment existing values.

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 front-loaded with a one-sentence purpose, followed by compact Pattern, Examples, and Tip sections. Each section earns its place, and the examples make the intended confirmation flow concrete without adding filler.

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 tool is reasonably complete for an update operation because the pattern and examples specify the call flow and the schema documents all parameters. However, with no annotations and no output schema, important gaps remain: overwrite semantics are ambiguous and the description's field enumeration is incomplete, which could lead to incorrect 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 baseline is 3. The description adds useful context by listing common fields and noting that multiple fields may be updated at once, but its field list omits name and content_types, and it does not clarify whether array parameters replace or merge with existing values.

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 operation: 'Update notebook metadata based on user intent' and identifies the resource and relevant fields. This distinguishes it from siblings like add_notebook, remove_notebook, and get_notebook because it is the only tool that mutates an existing notebook's metadata.

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 Pattern section provides explicit conditions: identify the target notebook and fields, propose the exact change back to the user, and only call the tool after explicit confirmation. The examples reinforce this confirmation workflow. It does not explicitly name alternatives or when not to use it, 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updatesv1.0.0
    • First observedadd_notebook
    • First observedask_question
    • First observedcleanup_data
    • First observedclose_session
    • First observedget_health
    • First observedget_library_stats
    • First observedget_notebook
    • First observedlist_notebooks
    • First observedlist_sessions
    • First observedre_auth
    • First observedremove_notebook
    • First observedreset_session
    • First observedsearch_notebooks
    • First observedselect_notebook
    • First observedsetup_auth
    • First observedupdate_notebook

TDQS

A3.6/5.0

Scored across 16 tools

Disambiguation3/5

Most tools have distinct purposes, but there is some overlap between close_session and reset_session (both manage sessions), and between setup_auth and re_auth (both handle authentication). The descriptions help clarify differences, but an agent might occasionally misselect between these pairs.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., add_notebook, list_notebooks, get_health), with minor deviations like cleanup_data (noun_verb) and ask_question (verb_noun but less structured). Overall, the naming is readable and mostly predictable.

Tool Count4/5

16 tools are reasonable for managing NotebookLM notebooks, sessions, authentication, and cleanup. It covers core workflows without being overly heavy, though some tools like cleanup_data are specialized and might be used infrequently.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for NotebookLM notebooks (add, list, get, update, remove, search, select) and sessions (list, close, reset), plus authentication, health checks, and cleanup. No obvious gaps exist for the server's purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Bridges Claude Code/Cowork with Google NotebookLM for AI-powered research, source analysis, chat, and content generation through a structured tool interface.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query personal Google NotebookLM notebooks using a persistent browser session for instant queries without an official API.
    1
    MIT