Skip to main content
Glama

🧠 NotebookLM MCP Server

Bridge the Gap Between Google NotebookLM and Your AI Workspace

NPM Version License: MIT Build Status

Stop jumping between browser tabs. NotebookLM MCP brings the full analytical power of Google NotebookLM directly into your local terminal, IDE, and AI assistants like Claude, Cursor, and VS Code.

Manage notebooks, ingest diverse sources, trigger deep research, and generate studio-quality contentβ€”all via a single, standardized Model Context Protocol (MCP) interface.

New to MCP? The Model Context Protocol is a standard for connecting LLMs to external data sources and tools. This package speaks MCP over stdio β€” your AI client (Claude Desktop, Cursor, VS Code, etc.) spawns notebooklm-mcp serve as a subprocess and the two communicate over JSON-RPC. The 27 tools below become callable functions in the model's tool list.


πŸ”₯ Key Capabilities

  • ⚑ Seamless Authentication: Log in once with notebooklm-mcp auth. Our automated CDP-based flow handles secure cookie extraction so you can focus on your data.

  • πŸ”„ Resilient Connectivity: Built-in background session restoration. If your session expires, the server transparently reconnects without breaking your workflow.

  • πŸ“‚ Universal Ingestion: Instantly add URLs, YouTube transcripts, Google Drive files, or raw text snippets to any notebook.

  • πŸ•΅οΈ Autonomous Research: Harness Google's Deep Research engine. Start a task, poll its progress, and import structured insights directly into your project.

  • 🎭 Creative Studio: Programmatically generate Audio Overviews (podcasts), Briefing Docs, Infographics, Slide Decks, and Quizzes from your sources.


Related MCP server: notebooklm-py-diet-mcp

πŸš€ Quick Start

1. Installation

Run it instantly with npx:

npx -y @m4ykeldev/notebooklm-mcp serve

Or install globally for better performance:

npm install -g @m4ykeldev/notebooklm-mcp

Developers who want to hack on the source: this repo uses pnpm (pinned via packageManager in package.json). After cloning, run corepack enable && pnpm install. See CONTRIBUTING.md on GitHub for the full dev / release flow.

2. The "One-Click" Login

Say goodbye to manual cookie hunting. Our smart auth flow does the heavy lifting for you.

notebooklm-mcp auth

A secure Chrome window will open. Simply log into your Google account, and we'll handle the rest. Your session is stored locally and securely.

Auth fallbacks if automated Chrome can't run:

notebooklm-mcp auth --manual              # interactive copy/paste from your browser
notebooklm-mcp auth --file tokens.json    # import a previously exported bundle
notebooklm-mcp auth --show-tokens         # verify the cached session

For headless / CI environments, set NOTEBOOKLM_COOKIES (and optionally NOTEBOOKLM_CSRF_TOKEN, NOTEBOOKLM_SESSION_ID) instead of running the auth flow. Token resolution order: env var β†’ ~/.notebooklm-mcp/auth.json β†’ error.


πŸ€– AI Assistant Integration

Pick your client below β€” every section shows the config file path per OS, a minimal copy-paste block, and the advanced variant with --query-timeout and NOTEBOOKLM_COOKIES env override.

Client

Config file

Format

Claude Desktop

claude_desktop_config.json

JSON

Claude Code (CLI)

~/.claude.json or claude mcp add

JSON / CLI

Codex CLI

~/.codex/config.toml

TOML

OpenAI Agents SDK (Python)

in-code

Python

OpenAI Agents SDK (TypeScript)

in-code

TypeScript

Gemini CLI

~/.gemini/settings.json

JSON

Cursor

~/.cursor/mcp.json

JSON

VS Code (Copilot Chat agent mode)

.vscode/mcp.json

JSON

Windsurf

~/.codeium/windsurf/mcp_config.json

JSON

JetBrains AI Assistant / Junie

~/.junie/mcp/mcp.json

JSON

Zed

~/.config/zed/settings.json

JSON

OpenCode (sst)

opencode.jsonc

JSONC

Cline (VS Code extension)

extension settings UI

JSON

Goose (Block)

~/.config/goose/config.yaml

YAML

5ire

in-app settings

GUI

Aider

not yet supported

β€”

Generic stdio caller

yours

β€”


Claude Desktop

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000", "--debug"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: restart Claude Desktop, click the hammer icon at the bottom-right of the input. Gotchas: absolute paths only; relative paths fail silently on startup.


Claude Code (CLI)

Recommended path is the claude mcp add CLI (writes the JSON for you):

claude mcp add --transport stdio notebooklm -- npx -y @m4ykeldev/notebooklm-mcp serve
{
  "mcpServers": {
    "notebooklm": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
claude mcp add --transport stdio \
  --env NOTEBOOKLM_COOKIES="SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..." \
  notebooklm -- npx -y @m4ykeldev/notebooklm-mcp serve --query-timeout 180000

Verify: claude mcp list && claude mcp get notebooklm, or /mcp inside a session. Gotchas: all options before the server name; use -- to separate options from the command. Project-scoped .mcp.json needs interactive approval on first sight.


Codex CLI

  • macOS: ~/.codex/config.toml

  • Linux: ~/.config/codex/config.toml

  • Windows: %APPDATA%\codex\config.toml

[mcp_servers.notebooklm]
command = "npx"
args = ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
[mcp_servers.notebooklm]
command = "npx"
args = ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"]
env = { NOTEBOOKLM_COOKIES = "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..." }

Verify: codex --list-tools should list the NotebookLM tools. Gotchas: Codex CLI's MCP schema is still being formalized β€” double-check against the latest openai/codex README.


OpenAI Agents SDK β€” Python

Wire it in code (no config file):

from agents.mcp import MCPServerStdio

async with MCPServerStdio(
    name="NotebookLM",
    params={
        "command": "npx",
        "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"],
    },
) as server:
    tools = await server.list_tools()
    print([t.name for t in tools])  # 27 tools
async with MCPServerStdio(
    name="NotebookLM",
    params={
        "command": "npx",
        "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
        "env": {"NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."},
    },
) as server:
    ...

OpenAI Agents SDK β€” TypeScript

import { MCPServerStdio } from "@openai/agents";

const server = new MCPServerStdio({
  command: "npx",
  args: ["-y", "@m4ykeldev/notebooklm-mcp", "serve"],
});

await server.connect();
const tools = await server.listTools();
console.log(tools.map((t) => t.name)); // 27 tools
const server = new MCPServerStdio({
  command: "npx",
  args: ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
  env: { NOTEBOOKLM_COOKIES: "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..." },
});

Gemini CLI

~/.gemini/settings.json (user-global) or .gemini/settings.json (per-project).

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"],
      "timeout": 180000,
      "env": {
        "NOTEBOOKLM_COOKIES": "$NOTEBOOKLM_COOKIES"
      }
    }
  }
}

Verify: gemini mcp list, or /mcp in a session. Gotchas: undefined $VAR resolves to empty string β€” pre-export them in your shell.


Cursor

  • macOS / Linux: ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project)

  • Windows: %APPDATA%\Cursor\mcp.json

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: Cursor Settings β†’ MCP should show notebooklm in green, or MCP: View Server Status in the Command Palette. Gotchas: Cursor only loads MCP servers at startup β€” fully quit and relaunch after edits. Soft ~40-tool ceiling across all enabled servers combined.


VS Code (Copilot Chat agent mode)

.vscode/mcp.json (per-project). Top-level key is servers (not mcpServers β€” Microsoft renamed this).

{
  "servers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "servers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: Command Palette β†’ MCP: Open User Configuration. Ask Copilot Chat in agent mode to list NotebookLM notebooks.


Windsurf

  • macOS / Linux: ~/.codeium/windsurf/mcp_config.json

  • Windows: %APPDATA%\Codeium\Windsurf\mcp_config.json

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "${env:NOTEBOOKLM_COOKIES}"
      }
    }
  }
}

Verify: open the Cascade sidebar β†’ MCP settings β†’ confirm notebooklm is active. Gotchas: prefer ${env:VAR} / ${file:/path} interpolation over inlining cookies; Windsurf substitutes at server-launch time so secrets stay out of the config file.


JetBrains AI Assistant / Junie

  • macOS / Linux: ~/.junie/mcp/mcp.json (user-global) or .junie/mcp/mcp.json (per-project)

  • Windows: %APPDATA%\JetBrains\Junie\mcp.json

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: Settings (Ctrl+Alt+S) β†’ Tools β†’ Junie β†’ MCP Settings β€” notebooklm should appear in the discovered list.


Zed

~/.config/zed/settings.json β€” the relevant key is context_servers (Zed's MCP equivalent).

{
  "context_servers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
{
  "context_servers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: Zed's AI Agent Panel lists notebooklm as an available context source.


OpenCode (sst)

opencode.jsonc (project root) or ~/.config/opencode/config.json.

{
  "mcp": {
    "servers": {
      "notebooklm": {
        "command": "npx",
        "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
      }
    }
  }
}
{
  "mcp": {
    "servers": {
      "notebooklm": {
        "command": "npx",
        "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
        "env": {
          "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
        }
      }
    }
  }
}

Verify: start OpenCode and ask "List my NotebookLM notebooks." β€” the model should call notebook_list. Gotchas: OpenCode's MCP schema is still evolving; confirm against the OpenCode docs if startup fails.


Cline (VS Code extension)

Managed via Cline's MCP settings UI inside VS Code. Underlying file (don't edit by hand): ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json.

  1. Open the Cline panel β†’ click the MCP icon β†’ Configure MCP Servers.

  2. Paste:

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
    }
  }
}
  1. Save. Cline restarts the server automatically.

{
  "mcpServers": {
    "notebooklm": {
      "command": "npx",
      "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve", "--query-timeout", "180000"],
      "env": {
        "NOTEBOOKLM_COOKIES": "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."
      }
    }
  }
}

Verify: ask Cline "List my NotebookLM notebooks." β€” the tool-call panel shows notebook_list.


Goose (Block)

~/.config/goose/config.yaml (or via goose configure). Goose calls MCP servers "extensions".

extensions:
  notebooklm:
    type: stdio
    command: npx
    args:
      - "-y"
      - "@m4ykeldev/notebooklm-mcp"
      - serve
extensions:
  notebooklm:
    type: stdio
    command: npx
    args:
      - "-y"
      - "@m4ykeldev/notebooklm-mcp"
      - serve
      - "--query-timeout"
      - "180000"
    env:
      NOTEBOOKLM_COOKIES: "SID=...; HSID=...; SSID=...; APISID=...; SAPISID=..."

Verify: goose configure β†’ confirm the extension is enabled, then goose session and ask "List my NotebookLM notebooks."


5ire

GUI app (no user-editable config file):

  1. Open 5ire β†’ Settings (Mod+K β†’ Providers).

  2. Click Add MCP Server.

  3. Name: notebooklm

  4. Type: Stdio

  5. Command: npx

  6. Args: -y @m4ykeldev/notebooklm-mcp serve (add --query-timeout 180000 if needed)

  7. Env vars (optional): NOTEBOOKLM_COOKIES=SID=...; HSID=...; SSID=...; APISID=...; SAPISID=...

  8. Save and restart.

Verify: ask in chat "List my NotebookLM notebooks." β€” tool-call panel shows notebook_list.


Aider

Aider does not yet have first-class MCP-server client integration. Workarounds: run notebooklm-mcp serve separately and pipe responses, or use the generic stdio caller inside a small wrapper script. Track upstream support via the Aider Discord.


Generic stdio caller

If your client speaks the MCP protocol over stdio but isn't listed above, every config above reduces to the same primitive:

spawn:   npx -y @m4ykeldev/notebooklm-mcp serve
stdio:   parent <- stdout (JSON-RPC responses) | parent -> stdin (JSON-RPC requests)
env:     (optional)
  NOTEBOOKLM_COOKIES=...        # skip the auth flow in CI
  NOTEBOOKLM_CSRF_TOKEN=...
  NOTEBOOKLM_SESSION_ID=...
flags:   (optional)
  --query-timeout <ms>          # per-RPC timeout, default 120000
  --debug                       # verbose stderr logging

On connection the server advertises 27 tools β€” see the Complete Tool Reference below.


Verify any wiring

After restarting your client, ask:

"List my NotebookLM notebooks."

If the model invokes notebook_list and returns a table of titles, you're connected.


πŸ’¬ Example Prompts

Once wired up, your AI can drive NotebookLM end-to-end with natural language. The model picks the right tool from the 32 below.

Goal

Sample prompt

Tools the model will call

Inventory

"Show me every NotebookLM project I own"

notebook_list

Start a project

"Create a notebook called 'Q3 Earnings' and add the AAPL 10-Q PDF at https://…"

notebook_create, notebook_add_url

Grounded Q&A

"From the AAPL notebook, what is the year-over-year services revenue change?"

notebook_query

Multi-source brief

"In my 'Climate Policy' notebook, generate a one-page briefing doc focused on IRA tax credits"

report_create, studio_status

Studio podcast

"Make a 10-min audio overview of my 'AI Safety Reading' notebook"

audio_overview_create, studio_status

Deep Research β†’ import

"Run deep research on 'kelp aquaculture in Maine' and import the findings into my 'Climate' notebook"

research_start, research_status, research_import

Cleanup

"Delete the 'Old Drafts' notebook I no longer need"

notebook_list, notebook_delete

πŸ›  Complete Tool Reference (27)

Every tool is designed to work seamlessly within your AI's context window.

πŸ“” Notebook Management

Tool

Description

notebook_list

Get an overview of all your notebooks, including titles, source counts, and ownership metadata.

notebook_create

Create a new NotebookLM project instantly from your terminal or AI assistant.

notebook_get

Retrieve deep metadata and a full list of sources for a specific notebook.

notebook_describe

Get a high-level, AI-generated summary of everything inside a notebook.

notebook_rename

Update the title of an existing notebook.

notebook_delete

Permanently remove a notebook (requires explicit confirmation).

πŸ“„ Source Ingestion & Management

Tool

Description

notebook_add_url

Add any website or YouTube video as a source. Transcripts are automatically handled.

notebook_add_text

Ingest raw text snippets or local file contents directly into your project.

notebook_add_drive

Connect and import documents, sheets, or slides from your Google Drive.

source_describe

Get detailed AI analysis, summaries, and key topics for any individual source.

source_get_content

Extract the full underlying text of a source for processing by other AI tools.

source_sync_drive

Sync selected Google Drive sources to pull the latest changes into NotebookLM.

source_delete

Remove a specific source from your notebook.

πŸ”¬ Research & Deep Analysis

Tool

Description

research_start

Launch an autonomous research task using Google's engine (Web or Drive sources).

research_status

Track the progress of active research tasks and view discovered insights.

research_import

Instantly import the findings of a research task as new sources in your notebook.

notebook_query

Ask complex, grounded questions. Answers are cited directly from your sources.

🎬 Studio (AI Content Generation)

Tool

Description

audio_overview_create

Transform your notebook's sources into a professional, podcast-style audio discussion.

video_overview_create

Generate a structured video explainer based on your project data.

report_create

Create professional Briefing Docs, Study Guides, or Blog Posts tailored to your sources.

slide_deck_create

Turn your research into a presenter-ready slide deck automatically.

infographic_create

Visualize complex data and relationships with an AI-generated infographic.

flashcards_create

Generate interactive study flashcards to master your notebook's content.

quiz_create

Create a comprehensive quiz to test knowledge grounded in your provided sources.

studio_status

Check the generation status of your Studio artifacts and get download links.

πŸ”‘ Authentication Helpers

Tool

Description

refresh_auth

Manually trigger a session refresh if you encounter connection issues.

save_auth_tokens

Manually save cookie data (legacy fallback method).


πŸŽ› CLI Reference

notebooklm-mcp serve [--query-timeout <ms>] [--debug]
notebooklm-mcp auth  [--manual] [--file <path>] [--show-tokens]
notebooklm-mcp --version

Flag

Default

Description

serve --query-timeout

120000

Per-RPC timeout in ms. Bump for large studio jobs or slow research.

serve --debug

off

Verbose stderr logging of every RPC + retry.

auth --manual

off

Skip Chrome automation; paste cookies yourself.

auth --file <path>

β€”

Import a previously exported tokens JSON.

auth --show-tokens

β€”

Print the cached session's metadata (cookie names, age, CSRF/SID presence β€” never the secret values).


🩹 Troubleshooting

Symptom

Likely cause

Fix

"Could not find Google Chrome or Chromium"

No Chrome/Chromium on PATH

Install Chrome or run notebooklm-mcp auth --manual

"Authentication expired" inside the AI session

Cookies stale

The server auto-refreshes once; if it can't, re-run notebooklm-mcp auth

Tool calls hang past 2 min

Big studio job over default timeout

Restart server with --query-timeout 300000

"file_path … outside the allowed roots"

notebook_add_text got a path outside cwd / tmp

Copy the file into your working directory or pass content inline

MCP client reports server crashed on startup

dist/cli.js missing (dev clone)

pnpm install && pnpm run build

Multiple Chrome windows pop up on concurrent failures

Older version without single-flight mutex

Upgrade to β‰₯ v0.2.5


πŸ’‘ Pro Tips

  • Custom Timeouts: Working with massive sources? Increase the timeout: notebooklm-mcp serve --query-timeout 180000

  • Check Connections: Use notebooklm-mcp auth --show-tokens to verify your session validity without exposing the secrets.

  • CI / headless: Set NOTEBOOKLM_COOKIES (plus NOTEBOOKLM_CSRF_TOKEN, NOTEBOOKLM_SESSION_ID) to skip the browser flow entirely.


πŸ›‘ Security & Privacy

  • Local Storage with hardened perms. Tokens live at ~/.notebooklm-mcp/auth.json (mode 0600) inside ~/.notebooklm-mcp/ (mode 0700). Nothing leaves your machine except calls to Google.

  • Path-traversal guard. notebook_add_text rejects file_path arguments outside the working directory or the OS temp directory β€” a hostile MCP prompt cannot ask the server to read your ~/.ssh/id_rsa.

  • Loopback-only Chrome DevTools. The automated auth flow launches Chrome with an OS-assigned ephemeral port bound to 127.0.0.1 β€” no fixed-port squatting, no LAN exposure.

  • Single-flight auth refresh. Concurrent requests that hit an expired session share one refresh promise instead of each spawning their own Chrome.

  • Supply-chain gated releases. Every publish runs gitleaks β†’ osv-scanner β†’ pnpm audit (high+) β†’ npm audit signatures (Sigstore) β†’ lockfile registry pinning β†’ publish-manifest preview before pnpm publish ships via OIDC trusted publishers. See CONTRIBUTING.md β†’ Releasing on GitHub.

  • Test coverage: 100% statements / branches / functions / lines, enforced by CI.

  • Unofficial Tool: This project is an independent community effort and is not affiliated with Google. It interfaces with internal endpoints and may be affected by changes to the NotebookLM web platform.

πŸ“„ License

Open-source and available under the MIT License.


Crafted with precision for the AI-first developer. Part of the Model Context Protocol ecosystem.

Available Tools

27 tools
audio_overview_createC

Generate an audio podcast overview (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat: brief, critique, debate, deep_dive
lengthNoLength: default, long, short
confirmYesMust be true to start generation
languageNoBCP-47 language code (e.g. en, es)
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
focus_promptNoFocus prompt for the audio

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only repeats the schema's confirm requirement and does not mention whether generation is asynchronous, what side effects occur, or any additional prerequisites or limitations.

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 that front-loads the main purpose. Every word is necessary, with no redundancy or filler, achieving maximum conciseness.

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 generation tool with 7 parameters, no output schema, and no annotations, this description is severely incomplete. It does not explain return behavior, asynchronous processing, or when to use the tool, leaving the agent with insufficient context to invoke it 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 100% coverage of all parameters with clear descriptions, meeting the baseline for parameter semantics. The tool description adds no extra parameter information, but the schema already provides sufficient meaning.

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 verb ('Generate') and resource ('audio podcast overview'), making the tool's purpose understandable. However, it does not explicitly differentiate from sibling tools like video_overview_create or infographic_create, relying on the word 'audio' to imply the distinction.

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 such as video_overview_create or report_create. The only additional note, 'requires confirm=true,' is a parameter requirement, not a usage context or exclusion.

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

flashcards_createC

Generate flashcards (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to start generation
difficultyNoDifficulty: easy, hard, medium
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It mentions the confirmation requirement, but this is already in the schema (confirm parameter with 'Must be true to start generation'). The description discloses no additional behavioral traits such as whether generation is asynchronous, side effects, or data usage.

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 a single sentence, which is efficient, but it is under-specified for a generation tool. While concise, it omits useful context, so it strikes a poor balance between brevity and informativeness.

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?

As a creation tool with no annotations or output schema, the description should explain more about the context, such as what the tool does with notebook_id and source_ids, whether it operates synchronously, or any side effects. The description only states the basic action and a requirement, leaving significant gaps for an AI agent to invoke it 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 100% description coverage for all 4 parameters, so the schema already documents their meanings. The description adds no extra parameter semantics beyond what's in the schema, matching the baseline for high coverage.

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 function as 'Generate flashcards', using a specific verb and resource. It distinguishes the action from sibling tools by focusing on flashcards, though it does not explicitly differentiate from other create-type tools like quiz_create or audio_overview_create.

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 only mentions 'requires confirm=true', which is a usage requirement but not guidance on when to use this tool versus alternatives. It does not specify preconditions, target notebooks, or situations where another tool would be more appropriate.

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

infographic_createB

Generate an infographic (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to start generation
languageNoBCP-47 language code
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
orientationNoOrientation: landscape, portrait, square
detail_levelNoDetails: concise, detailed, standard
focus_promptNoFocus prompt

TDQS

B3.1/5.0
Behavior2/5

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

The description includes 'requires confirm=true', which is a useful behavioral gate, but this information is already present in the confirm parameter schema ('Must be true to start generation'). With no annotations provided, the description carries the burden of disclosure, yet adds no further details about side effects, return values, or generation process.

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, extremely concise and front-loaded with the core purpose. It wastes no words, though it is quite sparse; still, it is appropriately brief for the limited content it conveys.

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 creation tool with 7 parameters and no output schema, this description is under-specified. It lacks any indication of return values, asynchronous behavior, or parameter interplay. The schema covers parameter meanings, but the overall tool context is incomplete.

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 baseline is 3. The description adds no extra semantic meaning beyond the schema; it only restates the confirm requirement already documented in the schema. However, since all parameters are well-described in the schema, this is acceptable.

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 'Generate an infographic' with a specific verb and resource, clearly distinguishing it from sibling creation tools like slide_deck_create or report_create. The appended confirmation note is a behavior, not a purpose, but does not obscure the core function.

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?

No guidance is provided on when to use this tool versus other creation tools such as audio_overview_create or video_overview_create. The description only states the action, leaving the agent to infer usage context entirely from the tool name.

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

notebook_add_driveA

Add a Google Drive file source to a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDocument title
file_idYesGoogle Drive file ID
doc_typeYesMIME type (e.g. application/vnd.google-apps.document)
notebook_idYesThe notebook ID

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 full burden. It only states that a source is 'added', but does not disclose side effects, authentication requirements, whether the operation is reversible, or what happens on success. This is a minimal disclosure for a mutating tool.

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 filler. 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 simple action and complete parameter schema, the description is adequate but lacks behavioral context (e.g., no annotations, no output schema). It does not explain what 'adding a source' entails or how to verify success, so the agent may lack full situational awareness.

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 fully documents all four parameters (title, file_id, doc_type, notebook_id). The description adds no additional parameter semantics beyond what the schema already 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 clearly states the action (adding a Google Drive file source) and the target (a notebook). It distinguishes itself from sibling tools like notebook_add_url and notebook_add_text by specifying the source type.

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 for when to use the tool: to add a Google Drive file source to a notebook. It does not explicitly list alternatives or exclusions, but the resource type in the description makes the use case obvious.

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

notebook_add_textC

Add a text document source to a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle for the new source
contentNoThe text content to add
file_pathNoPath to local file to read content from
notebook_idYesThe notebook ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state that this is a mutating operation (adding a source), whether authentication or specific permissions are required, or what the tool returns after adding the text source. The description is too sparse to inform the agent about side effects or constraints.

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, concise sentence with no filler. It is appropriately sized for the tool's simplicity, though it could include additional context without becoming verbose. It earns a 4 because it is efficient, but it misses key behavioral and usage details.

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?

Given the tool's simplicity, the description should at least mention that the agent must provide either `content` or `file_path`, and that this operation modifies a notebook. It also lacks any reference to output or return value. The description is incomplete for an agent to confidently invoke this tool, especially without annotations or an output 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?

The schema documents all four parameters with descriptions, achieving 100% coverage, so the baseline is 3. The description adds minimal extra meaning beyond 'text document source,' which loosely aligns with the `content` and `file_path` parameters but does not explain the relationship or when to use one over the other (e.g., inline content vs reading from a file).

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 'Add a text document source to a notebook' clearly identifies the action (add) and the resource (text document source to a notebook). It distinguishes itself from sibling tools like notebook_add_drive and notebook_add_url by specifying the source type as text, though it could further clarify what 'text' encompasses (e.g., raw text, Markdown).

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?

No guidance is provided on when to use this tool versus alternatives like notebook_add_drive or notebook_add_url. The description gives no context about preferred use cases, prerequisites (e.g., requiring an existing notebook), 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_add_urlB

Add a website URL source to a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to add
notebook_idYesThe notebook ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action. It does not mention whether the URL is fetched, validated, or requires authentication, nor any side effects or response behavior.

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, direct sentence that is front-loaded with the verb and object. It contains no unnecessary words or repetition.

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 simple with 2 required parameters and no output schema, so the description is minimally adequate. However, it lacks context about prerequisites, failure modes, or what 'source' implies (e.g., content fetching), which is a clear gap for a mutation tool without 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%, so the parameters are already well-documented. The description adds minimal semantic value beyond the schema, only reinforcing that the URL is a specific type of source.

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 ('Add'), the object ('website URL source'), and the target ('to a notebook'). It effectively distinguishes this tool from siblings like notebook_add_drive and notebook_add_text.

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?

No guidance is provided about when to use this tool versus alternatives. The description does not mention any prerequisites, contexts, or exclusions, leaving usage unclear.

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 new NotebookLM notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle for the new notebook

TDQS

A3.5/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 the full burden. It only states the creation action but does not mention return value, required permissions, side effects, or what happens on conflict. This is a significant gap for a mutating tool.

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 concise sentence states the purpose with zero wasted words. The structure is ideal for the trivial parameter set.

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 tool's simplicity β€” one required parameter, no output schema β€” the description is minimal but leaves ambiguity about the return value and post-creation behavior. It is adequate for basic understanding but not fully 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 schema fully documents the only parameter 'title' with a clear description. The tool description adds no extra semantic value beyond the schema, so it meets the baseline for high schema coverage but doesn't exceed it.

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 ('Create') and resource ('NotebookLM notebook'), clearly distinguishing it from siblings like notebook_rename, notebook_delete, and notebook_list. The action 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 usage context is implied by the verb 'Create' β€” the tool is for making a new notebook. However, there is no explicit guidance on when to use it versus alternatives, nor any prerequisites or exclusions.

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

notebook_deleteA

Delete a notebook (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to confirm deletion
notebook_idYesThe notebook ID

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the confirm=true requirement, which is useful, but it does not disclose that deletion is permanent, irreversible, or may affect associated data. For a destructive tool, this is a significant gap.

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, compact sentence that conveys the core purpose and a key constraint. Every word earns its place, and there is no unnecessary elaboration.

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?

For a deletion tool with no output schema and no annotations, the description is adequate but lacks important context such as permanence or potential side effects. While the schema covers parameters fully, the description does not warn about the irreversibility of the action, which is critical for an AI agent to make safe decisions.

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 coverage is 100%β€”both parameters (notebook_id and confirm) are already described. The description adds the requirement that confirm must be true, but that is essentially restating the schema description. It does not provide deeper semantic meaning 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 action ('Delete') and the resource ('notebook'), distinguishing it from sibling tools like notebook_create or notebook_get. The verb+resource structure is specific 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 usage context by noting the confirm=true requirement, which informs the agent that confirmation is necessary. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions, such as when deletion is not appropriate.

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

notebook_describeB

Get an AI-generated summary of the notebook content

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYesThe notebook ID

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, whether it triggers asynchronous processing, incurs cost, or has latency implications. The verb 'Get' implies a read operation, but no explicit safety or side-effect information is given.

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, focused sentence that states the purpose without unnecessary words. It is front-loaded and easy to parse, earning its place with zero waste.

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 tool with one well-documented parameter and no output schema, the description sufficiently states what the tool returns (an AI-generated summary). It lacks details on response structure or potential invocation nuances, but these are not critical for basic understanding given the low complexity.

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 fully describes the only parameter 'notebook_id' with a basic description, giving a baseline of 3. The tool description adds no additional meaning about the parameter, such as where to find the ID or its format, so it neither enhances nor detracts from 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 uses a specific verb ('Get') with a clear resource ('notebook content') and a distinct output ('AI-generated summary'). This distinguishes it from siblings like notebook_get (likely raw content) and notebook_query (likely querying), making its purpose unambiguous.

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, no exclusions, and no prerequisites. It simply states what it does, leaving the agent to infer usage context from the tool name and sibling list.

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

notebook_getB

Get details of a specific notebook including its sources

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYesThe notebook ID

TDQS

B3.3/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 full burden of behavioral disclosure. It adds that the response includes 'sources', which is useful context. However, it does not explicitly state that the operation is read-only, describe any side effects, or mention error handling or authentication needs. The verb 'Get' implies non-destructive behavior, but this is not made explicit.

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 sentence that immediately states the verb and resource, with no filler or redundant detail. It is appropriately sized for the simplicity of the tool.

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?

This is a simple tool with one parameter, no output schema, and no annotations. The description covers the core purpose and mentions that sources are included, but it does not list what other details are returned or clarify the difference from 'notebook_describe'. Given the low complexity, the description is minimally complete but leaves room for more 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?

The schema already fully documents the sole parameter 'notebook_id' as 'The notebook ID', so schema coverage is 100%. The description's phrase 'specific notebook' adds minimal meaning beyond the schema, effectively reinforcing that the ID identifies a single notebook. This meets the baseline of 3 but does not exceed it.

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 action ('Get'), the resource ('details of a specific notebook'), and a key aspect ('including its sources'). It is specific and straightforward, but it does not differentiate from the sibling tool 'notebook_describe', which likely serves a similar purpose.

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?

There is no explicit guidance on when to use this tool versus alternatives. The description does not mention 'notebook_describe' or any other sibling, nor does it state prerequisites or when this tool should be preferred. The only implied usage is that you need a specific notebook ID, which is weak guidance.

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

notebook_listA

List all NotebookLM notebooks with metadata (title, sources count, ownership)

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNoMaximum notebooks to return (default 100)

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 must carry the behavioral disclosure burden. It states what metadata is returned and that it lists all notebooks, but does not mention pagination (beyond the schema), authentication requirements, or what happens with no results. This is adequate but minimal for a read/list operation.

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 of 11 words. Every word earns its place, with no redundancy or fluff. It is concise and well-structured.

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 listing tool with one optional parameter and no output schema, the description is reasonably complete. It covers the primary purpose and metadata fields. It does not mention pagination behavior or ownership scope details, but the schema covers the parameter and the tool is simple enough that these gaps are minor.

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 fully describes the only parameter (max_results with default 100), achieving 100% coverage. The description adds no extra parameter semantics, and per the rubric, high schema coverage yields a baseline score of 3. The description does not compensate further.

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 action ('List') and resource ('all NotebookLM notebooks'), and specifies the metadata included (title, sources count, ownership). This distinguishes it from sibling tools like notebook_get or notebook_describe, which likely target a single notebook.

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 implies usage for retrieving a collection of notebooks, which is a clear context. However, it does not explicitly name alternatives like notebook_get for single-notebook retrieval or provide exclusions. Since the context is clear but lacks explicit alternative guidance, a score of 4 is appropriate.

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

notebook_queryB

Ask a question about the sources in a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQuestion to ask
source_idsNoSpecific source IDs to query (omit for all)
notebook_idYesThe notebook ID
conversation_idNoConversation ID for follow-up questions

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must bear the full burden of behavioral disclosure. It only states that a question is asked, with no mention of read-only behavior, authentication needs, output format, or side effects. The schema hints at multi-turn via conversation_id, but the description does not elaborate.

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?

One clear sentence with no redundancy, front-loading the essential verb and object. Every word earns its place.

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 tool with 4 parameters, no output schema, and no annotations, this description is under-specified. It lacks information about return values, the meaning of filtering via source_ids, how conversation_id works, and any limitations. Users need additional context to use it 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?

Schema coverage is 100% with each parameter having a description, so the baseline is 3. The tool description adds no extra parameter semantics, such as how source_ids filters the query or how conversation_id connects follow-ups, but it doesn't need to given full schema coverage.

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 uses a specific verb ('ask a question') and resource ('sources in a notebook'), clearly distinguishing it from metadata tools like notebook_get or content retrieval tools like source_get_content. It could be more explicit about the natural-language Q&A aspect, but it's understandable.

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 when a question about notebook sources needs answering, but it provides no explicit guidance on when to prefer this over sibling tools such as source_get_content or notebook_describe. It also doesn't mention how conversation_id enables follow-up questions.

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

notebook_renameB

Rename a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
new_titleYesNew title for the notebook
notebook_idYesThe notebook ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states 'Rename a notebook' without explaining side effects, idempotency, or permission requirements. It lacks any detail about what happens when the tool is invoked, such as whether the title is overwritten or if there are ordering constraints.

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 unnecessary words or fluff. It is appropriately sized for the tool's simplicity and front-loads the core purpose immediately.

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?

For a simple rename operation with full schema documentation, the description offers the minimum viable context. It doesn't explicitly explain the expected outcome or when to use the tool, but the low complexity and clear purpose make it adequate, though gaps remain in usage orientation.

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 itself adds no parameter-level detail beyond what the schema already provides for notebook_id and new_title, so it neither enhances nor detracts from the schema's clarity.

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 specific verb 'rename' and resource 'notebook', making the tool's purpose unambiguous. It naturally distinguishes itself from sibling tools like notebook_create and notebook_delete because 'rename' is a distinct operation.

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, nor does it mention any prerequisites or conditions. There is no explicit context about when renaming is appropriate or what qualifies as a valid new_title.

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

quiz_createC

Generate a quiz (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to start generation
difficultyNoDifficulty: easy, hard, medium
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
question_countNoNumber of questions (default 5)

TDQS

C2.7/5.0
Behavior1/5

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

No annotations exist, so the description must carry the burden of behavioral disclosure. It only repeats the schema's confirm requirement and provides no information about side effects, generation duration, or output format.

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?

One compact sentence with zero wasted words; the primary action is front-loaded, and the confirm requirement is a useful, concise addition.

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

Completeness1/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is severely under-specified. It lacks usage prerequisites, return value expectations, and any caveats about generation time or scope.

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 baseline is 3. The description adds no additional parameter context beyond what the schema already provides, such as examples or relationships between parameters.

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 identifies the action (generate) and resource (quiz), distinguishing it from sibling content-creation tools like flashcards_create. It is specific enough, though it lacks explicit mention of the notebook context, which is implied by the tool name and schema.

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?

No guidance is provided on when to use this tool versus alternatives like flashcards_create or report_create. The confirm=true hint is a parameter requirement, not a usage guideline, and no exclusions or prerequisites are mentioned.

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

refresh_authA

Reload authentication tokens (re-extract CSRF and session from page)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/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 full burden. It states the action ('re-extract CSRF and session from page') but does not disclose side effects, whether existing tokens are invalidated, or any permissions/auth requirements. For a mutation-like refresh operation, this is a significant transparency gap.

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 filler. It front-loads the action and includes relevant specifics in parentheses, earning full marks for structure and brevity.

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 simplicity (no params, no output schema), the description is largely complete. It explains the purpose and mechanism ('re-extract from page'). However, it lacks context about when to invoke it relative to save_auth_tokens, and the 'page' dependency is implicit, so it is not a perfect 5.

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 the input schema provides no actionable information. The description adds meaning by explaining what the tool does with no inputs, which is the only relevant semantic content. 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 uses a specific verb ('Reload') and clearly identifies the resource ('authentication tokens') with details (CSRF and session). It distinguishes itself from the sibling tool 'save_auth_tokens' by implying a refresh rather than initial save.

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?

No guidance is provided on when to use this tool versus alternatives like save_auth_tokens. There is no mention of prerequisites (e.g., having a loaded page) or typical scenarios (e.g., token expiration).

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

report_createC

Generate a text report (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to start generation
languageNoBCP-47 language code
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
custom_promptNoCustom prompt (when format='Create Your Own')
report_formatNoFormat: Briefing Doc, Study Guide, Blog Post, Create Your Own

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only mentions 'requires confirm=true,' a detail already present in the schema. It does not describe cost, asynchronous behavior, effects on the notebook, or what the generated report looks like.

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 no filler and is easy to parse. However, it is so brief that it sacrifices valuable guidance, so it does not earn a 5.

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?

This is a six-parameter tool with no output schema and no annotations, yet the description only says 'Generate a text report (requires confirm=true)'. Missing context around report_format options, source_ids behavior, custom_prompt usage, and result handling leaves it incomplete for an agent deciding to invoke it.

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 parameter semantics beyond what the schema already documents; 'requires confirm=true' merely restates the confirm parameter's existing description.

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 generates a text report, using a specific verb and resource. It distinguishes from sibling content-creation tools like audio_overview_create or slide_deck_create by specifying 'text report', though it does not elaborate on what that entails.

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?

There is no guidance on when to use report_create versus sibling tools such as quiz_create, slide_deck_create, or infographic_create. The only implication is that it is appropriate when a text report is desired, but no explicit context, prerequisites, or exclusions are provided.

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

research_importA

Import discovered sources from a research task into the notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesResearch task ID
notebook_idYesThe notebook ID
source_indicesNoSpecific source indices to import (omit for all)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose side effects. It only says 'import' without explaining whether sources are copied or moved, whether duplicates are created, or whether the research task is modified. This is insufficient for a mutation tool.

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 sentence, front-loaded with the verb 'Import', and contains no filler or redundant words. It is optimally concise.

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?

Given the lack of annotations and output schema, the description is too sparse. It omits key contextual details such as default behavior (import all sources), effects on the research task, and expected result, making it incomplete for an agent to fully understand the tool's operation.

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% coverage of all three parameters with clear descriptions, so the description adds no extra parameter semantics. The baseline of 3 applies since the description does not need to repeat schema information.

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 the specific verb 'import' and identifies both the source ('discovered sources from a research task') and destination ('the notebook'), clearly distinguishing this from sibling tools like research_start and research_status.

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 clear context for when to use the tool: after a research task has discovered sources, to bring them into a notebook. However, it does not explicitly mention alternatives or exclusions, such as when to use manual adding tools instead.

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

research_startB

Start a web or Drive research task

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoMode: deep, fast (default: fast)
queryYesResearch query
sourceNoSource: drive, web (default: web)
notebook_idYesThe notebook ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It does not indicate whether the research runs asynchronously, what the response contains, how long it takes, or whether permissions are needed. This is a minimal behavioral disclosure beyond the basic purpose.

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 wasted words. It is front-loaded with the primary purpose and is appropriately sized for a simple start-operation tool.

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?

The tool has no output schema and the description does not explain return values or next steps. Given that sibling tools like research_status and research_import exist, the description should at least hint at the asynchronous nature or how to track progress, but it does not.

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, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides; the 'web or Drive' phrase mirrors the source parameter default and options without adding context.

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 (start), the resource (a research task), and the scope (web or Drive). It distinguishes this tool from siblings like research_status and research_import, which handle other stages of the research lifecycle.

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, such as research_status for checking progress or notebook_query for asking questions. There is no mention of prerequisites or exclusions, leaving the agent to infer usage from the name and sibling context.

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

research_statusC

Check the status of research tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNoSpecific task ID to check (omit for all)
notebook_idYesThe notebook ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not state return format, whether omitting task_id returns all tasks (though the schema suggests this), or any side effects. This is insufficient for an unannotated tool.

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 filler. It is appropriately concise and earns its place by stating the core purpose without waste.

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?

The tool has no annotations and no output schema, so the description must explain more. It does not mention return values, behavior when task_id is omitted, or what constitutes 'research tasks.' The schema covers parameters, but the overall description is incomplete for an agent to fully use the 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 description coverage is 100%: both parameters have clear descriptions ('The notebook ID' and 'Specific task ID to check (omit for all)'). The description adds no parameter-level information, but the baseline is 3 for high schema coverage, and no deduction is needed.

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 uses a specific verb ('Check') and identifies the resource ('status of research tasks'), which clearly distinguishes it from sibling tools like research_start and research_import. However, it doesn't mention the notebook context or that it can check a specific task vs all tasks, leaving some clarity to the schema.

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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of contrasts with similar status tools like studio_status or notebook_query, nor any when-to-use/when-not-to-use criteria. The only implicit usage is the purpose itself.

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

save_auth_tokensB

Manually save authentication cookies (fallback method β€” prefer using CLI auth)

ParametersJSON Schema
NameRequiredDescriptionDefault
cookiesNoCookie header string (SID=xxx; HSID=yyy; ...)
csrf_tokenNoCSRF token
session_idNoSession ID

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 carries the full burden of disclosing behavior. It states it saves authentication cookies, but does not disclose whether this overwrites existing tokens, persists across sessions, or has any security implications. With zero annotation support, this is a significant transparency gap for a state-changing operation.

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 front-loaded sentence that efficiently communicates the core action and the fallback context. It is appropriately concise, though it could have been slightly more structured with additional behavioral details without becoming verbose.

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 tool with no annotations and no output schema, the description is incomplete. It does not explain the purpose of these saved cookies, any prerequisites, or what happens after saving. The fallback note gives some context, but the tool lacks essential behavioral and lifecycle information for an agent to use it 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 covers 100% of parameters, each with a clear description (e.g., cookies as a header string, CSRF token, session ID). The tool description itself adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

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 purpose: 'Manually save authentication cookies'. It also identifies it as a fallback method, which distinguishes it from alternative auth approaches. However, it does not explicitly reference the sibling tool refresh_auth, though the manual/fallback framing differentiates it.

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 phrase 'fallback method β€” prefer using CLI auth' provides explicit usage guidance, telling the agent to consider this tool only when normal CLI authentication is not preferred. This is clear context, though it does not rule out other alternatives or mention sibling tools.

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

slide_deck_createB

Generate a slide deck (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat: detailed_deck, presenter_slides
lengthNoLength: default, short
confirmYesMust be true to start generation
languageNoBCP-47 language code
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
focus_promptNoFocus prompt

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only mentions the confirm requirement, but fails to explain that this likely creates a slide deck from notebook content, whether it is synchronous, what side effects occur, or what the output will be. This is a mutation tool with no safety or 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 a single, front-loaded sentence with no wasted words. However, it is so terse that it omits critical behavioral context for a tool with 7 parameters, so it is not perfectly calibrated to the tool's complexity.

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

Completeness1/5

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

For a tool with 7 parameters, no output schema, and no annotations, this description is severely incomplete. It does not explain what the slide deck contains, how it uses source_ids or focus_prompt, whether generation is asynchronous, or what the user should expect. The description provides almost no surrounding 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 coverage is 100% and all parameters have descriptions. The description adds no new meaning beyond the schema; it merely restates the confirm requirement which the schema already documents. Thus 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 clearly states the action ('Generate') and the resource ('a slide deck'), which distinguishes it from sibling tools like audio_overview_create or video_overview_create. The purpose is immediately clear without needing to infer from the name alone.

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 only usage guidance is 'requires confirm=true', which is a prerequisite but not a when-to-use directive. There is no mention of when to choose this tool over alternatives like report_create or infographic_create, nor any exclusions or conditions beyond the confirmation flag.

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

source_deleteA

Delete a source from a notebook (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to confirm deletion
source_idYesThe source ID
notebook_idYesThe notebook ID

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals the confirmation gate ('requires confirm=true') as a safety mechanism, but lacks details about permanence, side effects, or error behavior. It adds some transparency but is not comprehensive for a destructive operation.

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 that front-loads the action and key constraint. Every word earns its place, with no unnecessary 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 description is adequate for a simple delete tool, covering the purpose and the critical confirm requirement. However, it lacks information about return values, idempotency, or what happens after deletion. Given no output schema and no annotations, more context would be beneficial, but the current level is 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 the parameters are already well-documented. The description merely restates the confirm requirement already present in the schema, adding no new semantic value beyond what is in the input 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 action ('Delete'), the resource ('a source from a notebook'), and a key requirement ('requires confirm=true'). This distinguishes it from sibling tools like source_describe (read) and notebook_delete (delete notebook), making the purpose 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 when to use the tool (to delete a source) and provides a critical prerequisite (confirm=true). However, it does not mention alternatives or explicitly state when not to use this tool, so the guidance is partial rather than fully explicit.

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

source_describeA

Get metadata for a specific source in a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYesThe source ID
notebook_idYesThe notebook ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It indicates the operation is a read ('Get metadata') but does not mention what metadata is included, whether it is read-only, or any error conditions. This is minimal disclosure.

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 unnecessary words. It communicates the core purpose efficiently.

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?

For a simple tool with two documented parameters, the description is minimally adequate, but it does not describe the return value or what metadata the caller can expect. With no output schema or annotations, this missing context leaves some ambiguity.

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% coverage with descriptions for both required parameters ('The source ID' and 'The notebook ID'). The description adds no additional parameter context, so the baseline of 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') and clearly identifies the resource ('metadata for a specific source in a notebook'). It effectively distinguishes from sibling tools like source_get_content, which would retrieve content, and source_delete, which removes a source.

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 (when metadata about a source is needed) but provides no explicit guidance on when not to use it or which alternative to choose. Sibling tool names offer context but the description itself does not reference them.

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

source_get_contentA

Get the underlying text content of a source (used by grounding tool)

ParametersJSON Schema
NameRequiredDescriptionDefault
source_idYesThe document ID to retrieve
notebook_idYesThe notebook ID

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 discloses that the tool returns 'text content' and implies read-only behavior, but it does not mention required permissions, error handling, or the exact format of the response. For a simple getter this is moderate 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 a single, front-loaded sentence that directly states the action, resource, and purpose. Every word earns its place, with no filler or redundant information.

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 tool is simple with two required parameters and no nested objects. The description clearly states the tool returns text content, which is sufficient for basic understanding. A note on return format or error cases would improve completeness, but it is largely adequate given the low complexity.

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?

Both parameters (notebook_id, source_id) are fully described in the schema with clear names and descriptions. The tool description adds no additional semantic meaning beyond what the schema already provides, so the baseline score 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 the specific verb 'Get' and identifies the resource as 'underlying text content of a source,' clearly distinguishing it from sibling tools like source_describe (metadata) or source_delete (removal). The parenthetical '(used by grounding tool)' adds useful context about its purpose.

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 phrase 'used by grounding tool' provides clear context that this is an internal, low-level accessor for raw text. However, it does not explicitly state when to prefer this over source_describe or when not to use it, so it stops 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.

source_sync_driveC

Sync all Drive sources in a notebook to pull latest changes

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to confirm sync
source_idsYesSource IDs to sync
notebook_idYesThe notebook ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of disclosing behavioral traits. It mentions the action but omits crucial details: whether syncing overwrites local changes, whether it requires explicit confirmation (despite a confirm parameter), whether it is reversible, or what authorization is needed. For a mutation-oriented sync tool, this is a significant transparency gap.

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 that immediately communicates the core purpose and ends with an explanatory goal. It is extremely concise with no wasted words, making it easy for an agent to scan and understand.

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?

Given the tool's complexityβ€”three required parameters, a confirm gate, no annotations, and no output schemaβ€”the description is notably under-specified. It fails to explain the confirmation requirement, the exact scope of the sync, or what the agent should expect after execution. This is insufficient for a tool with mutation and confirmation semantics.

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 provides 100% coverage with clear descriptions for all three parameters (notebook_id, source_ids, confirm), so the schema handles the heavy lifting. The description adds no positive meaning and actually introduces confusion with 'all Drive sources' versus the required source_ids array. It neither enhances nor materially harms the schema's clarity, staying at baseline.

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 action (sync) and resource (Drive sources in a notebook), with a purpose ('to pull latest changes'). It stands apart from sibling tools as the only sync operation. However, 'all Drive sources' conflicts with the required source_ids parameter, which implies a selected subset, creating slight ambiguity.

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 offers only a reason for use ('to pull latest changes') but no guidance on when to use this tool versus alternatives like source_get_content or notebook_add_drive. There are no exclusions or comparative context, leaving the agent to infer the appropriate scenario from the tool name alone.

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

studio_statusC

Check the status of generated Studio artifacts

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYesThe notebook ID

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'check status', implying a read-only operation, but does not disclose what status information is returned, whether the tool is asynchronous, or any side effects. This is a minimal level of transparency.

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 a single short sentence and is easy to parse. However, it is under-specified – it lacks necessary context about 'Studio artifacts' and the status information, making it too minimal to be fully useful.

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?

Given the tool's simplicity (one parameter, no output schema), the description still fails to explain what 'status' means, what values might be returned, or how this relates to other studio-related tools. The lack of any return-value or behavior details leaves significant 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 description coverage is 100% for the only parameter (notebook_id), and the schema already provides a basic description. The tool description adds no additional meaning about the parameter or its usage, so the baseline score of 3 applies.

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

Purpose3/5

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

The description uses a clear verb ('check') and resource ('status of generated Studio artifacts'), but 'Studio artifacts' is ambiguous and not defined. It distinguishes from siblings like 'research_status' only by the vague term 'Studio', which is insufficient for an agent to know what this tool actually covers.

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?

There is no guidance on when to use this tool versus alternative tools. No mention of context, prerequisites, or exclusions. The agent is left to infer usage from the name and vague description, which is not enough.

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

video_overview_createC

Generate a video overview (requires confirm=true)

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat: brief, explainer
confirmYesMust be true to start generation
languageNoBCP-47 language code
source_idsNoSource IDs (omit for all)
notebook_idYesThe notebook ID
focus_promptNoFocus prompt
visual_styleNoStyle: anime, auto_select, classic, custom, heritage, kawaii, paper_craft, retro_print, watercolor, whiteboard

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the confirm requirement but does not indicate whether this is a long-running async operation, whether it consumes credits, or what happens on failure. The lack of any note about side effects or expected behavior leaves the agent under-informed.

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 front-loaded sentence with no filler words. It is concise and readable, though the parenthetical 'requires confirm=true' feels slightly appended rather than integrated. Still, it earns a high score for efficiency.

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?

Despite having 7 parameters and no output schema, the description provides no information about return values, how to retrieve the generated video, or whether generation is synchronous with the response. For a complex creation tool, this is a significant omission that leaves the agent guessing about the tool's behavior.

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 seven parameters. The description adds no parameter-specific context beyond the confirm hint, resulting in a baseline 3 as it neither enhances nor detracts from schema-provided semantics.

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 'Generate a video overview' clearly identifies the action and resource, distinguishing it from sibling tools like audio_overview_create and infographic_create. However, it does not elaborate on what a video overview entails, so it stops short of a full 5.

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 only usage guidance is 'requires confirm=true', which is a prerequisite rather than a when-to-use instruction. It does not specify when to choose this tool over alternatives like audio_overview_create or report_create, nor does it mention any preconditions beyond confirmation.

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

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: notebook management, source operations, research tasks, artifact creation, query, and auth. Despite many artifact creation tools, each clearly specifies its output type (audio, video, infographic, etc.), so no two tools appear to do the same thing.

Naming Consistency4/5

Most tools follow a resource_action pattern (e.g., notebook_create, source_delete, report_create), which is consistent. A few outliers like save_auth_tokens and refresh_auth use action_resource order, and research_status and studio_status are noun_noun compounds, but these are minor deviations within a largely coherent scheme.

Tool Count2/5

At 27 tools, the server exceeds the 25-tool threshold for 'too many'. The count is inflated by 8 separate artifact creation tools that could be unified into a single tool with a type parameter, and the three add-source tools similarly could be consolidated. While the server covers a broad domain, the tool surface is heavier than necessary.

Completeness4/5

The tool set covers the full lifecycle for notebooks (create, read, list, rename, delete), sources (add three types, delete, describe, get content, sync), research (start, status, import), and artifacts (create and check status). Minor gaps exist such as no explicit list_sources tool (though notebook_get provides sources) and no update_source, but these are manageable workarounds.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/m4yk3ldev/notebooklm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server