Skip to main content
Glama

NotebookLM MCP Server v1.0

Read this in other languages: Русский Production-ready, fully asynchronous Model Context Protocol (MCP) server for Google NotebookLM.

This server acts as a bridge between AI agents (like Claude Desktop, Cursor, Antigravity) and NotebookLM, allowing your AI to read your notebooks, interact with your sources, and generate reports.

Features

  • Asynchronous Execution: Fully utilizes asyncio for high concurrency handling.

  • Robust Execution: Wrap NotebookLM CLI commands with timeouts and proper error handling.

  • Thread Safety (Command Queue): Multiple simultaneous requests are queued safely via asyncio.Lock().

  • Advanced MCP Tools: Includes create_notebook, delete_notebook, add_source, list_sources, get_source_text, generate_audio, generate_report, and get_history.

  • Multi-language Support (i18n): All tool docstrings are in English, ensuring seamless compatibility with any LLM globally.

  • Network Mode (SSE Transport): Supports both Standard I/O (local) and SSE (network) transport protocols.

  • Retries & Caching: Temporary CLI failures are retried automatically. Read operations are cached.

  • Diagnostics: Built-in health_check() tool to verify CLI availability and authentication status.


Related MCP server: notebooklm-mcp

Installation

You can install this server either automatically (recommended) or manually.

This method automatically sets up a virtual environment, installs all dependencies (including notebooklm-py and Chromium for Playwright), and registers the server in your IDEs (Claude Desktop, Cursor, Antigravity).

  1. Clone or download this repository:

    git clone https://github.com/Vetal711/notebooklm-mcp.git
    cd notebooklm-mcp
  2. Run the auto-installer script:

    • Windows: Double-click install.bat (or run it in the terminal).

    • Mac/Linux: Run bash install.sh

  3. Authenticate with Google: Once the installation is complete, you must authenticate the CLI. Run the following command and follow the instructions in the browser window:

    • Windows: venv\Scripts\notebooklm.exe login

    • Mac/Linux: ./venv/bin/notebooklm login

  4. Restart your IDE/Agent (Claude Desktop, Cursor, or Antigravity) and the server will be available!


Method B: Manual Installation

If you prefer to configure everything manually or use a global Python environment:

  1. Clone the repository:

    git clone https://github.com/Vetal711/notebooklm-mcp.git
    cd notebooklm-mcp
  2. Create a virtual environment and install dependencies:

    python -m venv venv
    # On Windows:
    venv\Scripts\pip install -e .
    # On Mac/Linux:
    ./venv/bin/pip install -e .
  3. Install the Playwright browser driver:

    # On Windows:
    venv\Scripts\playwright install chromium
    # On Mac/Linux:
    ./venv/bin/playwright install chromium
  4. Authenticate:

    # On Windows:
    venv\Scripts\notebooklm.exe login
    # On Mac/Linux:
    ./venv/bin/notebooklm login
  5. Manual Configuration for MCP Clients: Instead of running the automated configuration script, you can manually add the following JSON block to your MCP client's configuration file (e.g., claude_desktop_config.json, cline_mcp_settings.json, or mcp_config.json).

    Make sure to replace /absolute/path/to/notebooklm-mcp with the actual absolute path to your cloned directory.

    {
      "mcpServers": {
        "NotebookLM": {
          "command": "/absolute/path/to/notebooklm-mcp/venv/bin/notebooklm-mcp",
          "args": []
        }
      }
    }

    (Note for Windows users: Use venv\\Scripts\\notebooklm-mcp.exe and escape backslashes in paths).

    Important: The server will automatically generate a .env file in the root folder on first run (or during installation) to handle absolute paths properly.


Troubleshooting

Error: Authentication expired If you receive this error in Claude/Cursor, it means the Playwright session's Google tokens have expired. WARNING: DO NOT run the login command inside the AI agent's chat or terminal! AI agents run in a background window station, which makes the popup browser window completely invisible, causing the login process to hang forever.

Solution:

  1. Open a standard, real OS terminal (or just double-click the script).

  2. Run login.bat (Windows) or login.sh (Mac/Linux) located in the project folder.

  3. A visible browser window will appear. Complete the login, and the window will close automatically.

  4. Ensure that your MCP client's configuration file (e.g., claude_desktop_config.json) includes the "cwd": "/absolute/path/to/notebooklm-mcp" parameter so it doesn't lose the session again.


Docker Deployment

To build and run via Docker:

docker build -t notebooklm-mcp .
docker run -i --rm -v ~/.notebooklm:/root/.notebooklm notebooklm-mcp

(Note: You need to mount the .notebooklm config directory to share your local authentication session).

Available Tools

12 tools
add_sourceA

Add a source (file, text, URL) to a notebook.

notebook_id: The ID of the notebook. content: The content (URL, absolute file path, or raw text). source_type: Optional. Type of source (url, text, file, youtube). Auto-detected if omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
contentYes
source_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/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. It discloses that source_type is auto-detected if omitted, a behavioral trait. However, it does not indicate side effects, permissions, or failure modes, leaving some transparency gaps.

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

Conciseness5/5

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

Two sentences plus parameter bullet points, all front-loaded and efficient. Every sentence adds value with no redundancy.

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

Completeness4/5

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

The description covers the tool's purpose and all parameters adequately. An output schema exists (not shown) to handle return values. It could mention that sources are stored for later retrieval, but overall it is sufficient for a simple tool.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates well by explaining notebook_id, content (with examples), and source_type (listing possible values). It adds meaning beyond the schema's titles.

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 adds a source (file, text, URL) to a notebook, with a specific verb and resource. It distinguishes from sibling tools like list_sources and get_source_text by focusing on the creation action.

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 by listing parameters and noting auto-detection of source_type, but it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. No sibling tool directly competes, so missing guidance is a minor gap.

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

ask_notebookB

Ask a natural language question to a specific NotebookLM notebook.

notebook_id: The ID of the notebook. question: The question you want to ask based on the notebook's sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
questionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full disclosure burden. It fails to mention response format, latency, permission requirements, or limits on question complexity. The agent cannot infer behavioral traits like whether it returns a single answer or multiple sources.

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 extremely concise (three lines) with no fluff. The first sentence conveys the core purpose, followed by minimal but necessary parameter info. Every part earns its place.

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

Completeness3/5

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

For a simple two-parameter Q&A tool, the description covers the input but omits any mention of output behavior or side effects. The presence of an output schema (though not provided) somewhat mitigates the lack of return value description, but the overall completeness is only adequate.

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

Parameters3/5

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

The schema has 0% description coverage, so the description's brief parameter explanations ('The ID of the notebook', 'The question you want to ask based on the notebook's sources') add basic semantic value. However, they lack detail such as format or example values.

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 ('ask a natural language question') and the target ('specific NotebookLM notebook'), leaving little ambiguity. However, it does not explicitly distinguish itself from siblings like 'get_summary' or 'get_source_text', though the action is inherently different.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention context like 'when you need to query the notebook's content' or exclude scenarios (e.g., retrieval tasks better suited for other tools).

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

create_notebookB

Create a new notebook in NotebookLM.

name: The name of the new notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose any behavioral traits (e.g., whether creation requires authentication, if it can overwrite, or any side effects). Simply states the action without further 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?

Very concise (two sentences) with front-loaded action. Every word is useful. Could be slightly more structured (e.g., bullet for parameter), but overall excellent brevity.

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

Completeness3/5

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

With an output schema present, the description is minimally adequate for a simple creation tool with one parameter. However, it lacks usage guidelines and behavioral context, making it less complete compared to higher-scoring examples.

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

Parameters4/5

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

Schema description coverage is 0%, so description compensates by explicitly stating 'name: The name of the new notebook.' This adds meaning beyond the schema's type string. However, it lacks constraints like uniqueness or length.

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

Purpose5/5

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

Description clearly states 'Create a new notebook in NotebookLM.' It identifies the specific verb (create) and resource (notebook) and distinguishes from sibling tools like delete_notebook, list_notebooks, etc.

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 on when to use this tool versus alternatives. For example, it doesn't mention when to create a notebook vs. listing or deleting one. With siblings like add_source and ask_notebook, usage context is missing.

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

delete_notebookA

Delete a notebook from NotebookLM.

notebook_id: The ID or name of the notebook to delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. It does not disclose whether deletion is permanent, what happens to associated sources, or error behavior on nonexistent notebook.

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

Conciseness5/5

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

The description is two concise sentences with no wasted words. It directly states the purpose and parameter explanation, fitting the definition of high conciseness.

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 deletion tool with an output schema, the description covers the basic purpose and parameter but lacks behavioral context (permanence, error handling) that would help the agent use it correctly.

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

Parameters4/5

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

Schema coverage is 0%, but the description adds meaning by clarifying that notebook_id can be 'The ID or name of the notebook', going beyond the schema which only has 'Notebook Id'. With one parameter, this provides necessary clarification.

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 create_notebook or list_notebooks. It 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 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, or any prerequisites such as the notebook existing. The usage is only implied by the tool name and description.

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

generate_audioA

Generate an audio overview (podcast) from the notebook's sources. Note: This process can take several minutes to complete.

notebook_id: The ID of the notebook. prompt: Instructions for the audio overview (e.g., "focus on chapter 3").

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
promptYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only discloses that the process takes several minutes; no info on auth, rate limits, side effects, or response 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?

Very concise: two sentences for purpose and a note, then each parameter explained in one line. No wasted words, front-loaded with key action.

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 it has 2 required params, a note about timing, and an output schema (not described), the description is mostly complete. Could mention output format, but not critical.

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

Parameters4/5

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

Schema coverage is 0%, so description compensates by explaining each parameter: 'notebook_id: The ID of the notebook.' and 'prompt: Instructions for the audio overview (e.g., 'focus on chapter 3').' Adds meaningful detail 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?

Clearly states 'Generate an audio overview (podcast) from the notebook's sources' – a specific verb and resource. Distinguishes from siblings like generate_report (text report) and ask_notebook (Q&A).

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?

Provides a note about long processing time, implying it should be used when the user is prepared to wait, but no explicit when-to-use or alternatives are given.

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

generate_reportC

Generate a written report (briefing doc, study guide, blog post) from the notebook. Note: This process can take several minutes to complete.

notebook_id: The ID of the notebook. prompt: Instructions for the report (e.g., "write a study guide for a 5th grader").

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
promptYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden. It mentions the process takes several minutes but does not disclose read-only nature, required permissions, or potential side effects. This is insufficient for a tool that generates content.

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

Conciseness4/5

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

The description is concise, with only two sentences and parameter definitions. It front-loads the core purpose and includes a behavioral note. No unnecessary content.

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 an output schema, the description does not mention what the report contains or its format. It lacks prerequisites (e.g., notebook must exist) and does not explain how the notebook is used. The tool has moderate complexity and long duration, requiring 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 parameter explanations add meaning beyond the schema by providing examples (e.g., prompt example). However, notebook_id lacks context on how to obtain it, and prompt could benefit from length or formatting constraints. Schema coverage is 0%, so description partially compensates.

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 written report from the notebook, listing example report types. However, it does not differentiate from sibling tools like get_summary or ask_notebook, which may produce similar outputs.

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 siblings. The only usage hint is a note about long duration, but it does not specify prerequisites or when alternatives would be better.

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

get_historyC

Get the full conversation history (Q&A) for a specific notebook.

notebook_id: The ID of the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It implies a read operation but omits details like authentication needs, rate limits, or what 'full' entails (e.g., pagination). 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.

Conciseness3/5

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

The description is short (two lines) but redundant with the schema. No wasted words, but the param line could be integrated or omitted. Front-loads the main action well.

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 (1 param, no enums, output schema present), the description is incomplete. It lacks usage context and behavioral details, making it less helpful for an AI agent to decide when to invoke.

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

Parameters2/5

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

Schema coverage is 0%, and the description merely repeats 'notebook_id: The ID of the notebook,' adding no new meaning. With one parameter, it could offer format, source, or usage context.

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 retrieves 'full conversation history (Q&A) for a specific notebook,' specifying the verb, resource, and scope. It distinguishes from siblings like 'ask_notebook' and 'get_summary' by focusing on full history vs. asking questions or summaries, though not explicitly.

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 on when to use this tool versus alternatives (e.g., 'get_summary' for a condensed version). No exclusions or prerequisites provided.

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

get_source_textA

Get the full indexed text content of a specific source in a notebook.

notebook_id: The ID of the notebook. source_id: The ID of the source (use list_sources to find it).

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. It does not mention authorization requirements, performance characteristics, or any side effects. The existence of an output schema may define return values, but the description adds no 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.

Conciseness5/5

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

The description is concise, consisting of two sentences. The first sentence states the primary action, and the second lists the parameters with brief explanations. Every sentence serves a purpose with no wasted words.

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 simplicity of the tool (get operation with two parameters) and the presence of an output schema, the description covers the essentials. However, it lacks usage context such as prerequisites (e.g., notebook must exist) and does not elaborate on behavioral traits. It is minimally viable but not thorough.

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

Parameters4/5

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

Schema description coverage is 0%, so the description bears the full burden of explaining parameters. It explains notebook_id as 'The ID of the notebook' and source_id as 'The ID of the source' with a helpful hint to use list_sources. This adds meaning beyond the schema's property names.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('full indexed text content of a specific source'). It distinguishes itself from sibling tools like list_sources (which lists sources) and get_summary (which provides summaries).

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 you need the full text of a source) but does not provide explicit guidance on alternatives or when not to use it. It references list_sources for finding the source_id, which is helpful but not comprehensive.

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

get_summaryC

Get the AI-generated summary of the notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It only states the action without disclosing whether the summary is pre-generated or computed on-the-fly, if it requires prior generation, or any side effects. The existence of an output schema partially mitigates this, but the description still lacks critical behavior details.

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 concise with a single sentence, but it sacrifices necessary detail for brevity. While front-loaded with the core action, it lacks depth, resulting in under-specification rather than effective 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?

Given the presence of an output schema (not shown), the description could be sufficient if the schema fully documents the return. However, without parameter descriptions or annotations, and only one sentence of context, the tool is under-specified for an AI agent to invoke correctly, especially with numerous sibling tools.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning for the notebook_id parameter beyond its type and requirement. It does not explain what the ID represents, how to obtain it, or any accepted formats, leaving the agent without necessary context.

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 retrieves the 'AI-generated summary of the notebook', specifying both the verb ('Get') and the resource. However, it does not differentiate from sibling tools like get_history or get_source_text, which could cause confusion about which tool to use for related tasks.

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 such as ask_notebook or get_history. The description lacks context on prerequisites, typical use cases, or scenarios where this tool is preferred.

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

health_checkA

Check the availability of the CLI and authentication status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Without annotations, the description must convey behavioral traits. It implies a read-only status check, but does not explicitly state that it has no side effects or what actions are involved. The description is adequate but lacks full transparency.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose. There is no wasted text, and it is front-loaded with the core action.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to detail return values. For a simple health check tool, the description is sufficient, though it could benefit from mentioning common usage patterns.

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

Parameters4/5

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

The tool has no parameters, so the description does not need to add parameter details. The baseline score of 4 is appropriate as the description provides context for what the tool checks without needing parameter info.

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 checks CLI availability and authentication status, which is specific and distinguishes it from sibling tools like add_source or ask_notebook. However, 'CLI' could be ambiguous without context, slightly reducing clarity.

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. For a health check, it could be used prior to other operations, but this is not mentioned, leaving the agent without context for appropriate usage.

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

list_notebooksA

Get a list of all NotebookLM notebooks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states the action is a read ('Get a list') but provides no details on rate limits, pagination, or side effects, leaving the agent with minimal behavioral insight.

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, front-loaded sentence with no wasted words. It immediately conveys the tool's purpose without unnecessary elaboration.

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 no-parameter tool with an output schema, the description is sufficient to indicate the function. However, it does not mention the output format or structure, though the output schema covers that.

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

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100%. The description correctly implies no parameters are needed, meeting the baseline without requiring additional parameter details.

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

Purpose5/5

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

The description clearly states the tool's action ('Get a list') and resource ('all NotebookLM notebooks'), distinguishing it from siblings like 'list_sources' which lists sources, not notebooks.

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 on when to use this tool vs alternatives (e.g., list_sources). The description only states the action without context on appropriate use cases.

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

list_sourcesB

Get a list of all sources in a specific notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebook_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits (e.g., read-only, permissions, pagination). It only states the action, lacking details like whether it's nested, requires auth, or has pagination. Minimal 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?

A single sentence with no wasted words. It front-loads the key action and resource. Every word earns its place.

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

Completeness3/5

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

The tool is simple (one parameter, output schema exists). The description is adequate for a basic list operation but lacks behavioral and parameter details. With no guidance on when to use it, completeness is moderate.

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

Parameters2/5

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

The schema has 0% description coverage for the 'notebook_id' parameter. The description does not clarify what notebook_id is, its format, or how to obtain it. For a required parameter, this is insufficient.

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 'Get a list of all sources in a specific notebook' uses a specific verb ('Get a list') and clearly identifies the resource ('sources' and 'notebook'). It distinguishes from sibling tools like 'get_source_text' or 'add_source'.

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 (e.g., get_source_text for a single source). No exclusions or context about prerequisites or limitations are mentioned.

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

Tool Schema Changelog

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

  1. 12 tool updatesv0.4.0
    • First observedadd_source
    • First observedask_notebook
    • First observedcreate_notebook
    • First observeddelete_notebook
    • First observedgenerate_audio
    • First observedgenerate_report
    • First observedget_history
    • First observedget_source_text
    • First observedget_summary
    • First observedhealth_check
    • First observedlist_notebooks
    • First observedlist_sources

TDQS

B3.3/5.0

Scored across 12 tools

Disambiguation5/5

Each tool serves a distinct purpose: adding sources, asking questions, creating/deleting notebooks, generating audio/reports, retrieving history/summaries, and health checks. There is no overlap or ambiguity between tools.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., add_source, create_notebook), but 'health_check' is noun_verb, breaking the pattern. Otherwise, naming is consistent and clear.

Tool Count5/5

With 12 tools, the server covers the core NotebookLM workflows without being overwhelming. Each tool is necessary and well-scoped for the domain.

Completeness3/5

Missing operations include updating or deleting sources, updating notebook names, and a dedicated 'get_notebook' tool. Additionally, 'get_summary' lacks a notebook_id parameter, which is a notable gap.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers