NotebookLM MCP Server
Provides tools for interacting with Google NotebookLM, enabling users to list available notebooks, retrieve their data sources, and perform natural language queries to receive AI-generated, citation-backed answers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NotebookLM MCP ServerWhat are the key findings in my 'Market Research' notebook?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NotebookLM MCP Server
This is an unofficial Model Context Protocol (MCP) server for Google NotebookLM, allowing AI agents and assistants (like Google Antigravity, Claude Code, Cursor, etc.) to query your Notebooks and retrieve citation-backed answers.
Prerequisites
Python 3.10+
A Google NotebookLM session cookie.
Related MCP server: notebooklm-py-diet-mcp
Installation
Clone this repository.
Initialize and activate a virtual environment:
python3 -m venv .venv source .venv/bin/activateInstall dependencies:
pip install .
Configuration
You need to authenticate the unofficial API so it can access your Notebooks.
Authenticate via Playwright: Run the interactive login command provided by
notebooklm-py:uv run notebooklm login # or if using a standard python venv: notebooklm loginThis will open a Chromium browser window where you can log in to your Google Account. Once logged in and on the NotebookLM page, close the browser. The session will be saved locally.
Usage
Start the MCP server over stdio using the command-line entry point:
uv run python -m mcp_notebooklm
# or if using standard python venv:
python -m mcp_notebooklmServer Tools
This server exposes the following MCP tools:
list_notebooks: Lists all your Notebooks (returns their IDs and Titles).get_notebook_sources: Retrieves the data sources for a specific notebook.ask_notebook: Passes a natural language query to a specific notebook and returns the AI-generated answer.select_notebook: Selects a notebook by ID and creates a local directory for it.create_note: Creates a new text note in the specified notebook.download_notes: Downloads all notes from a specific notebook into a local subfolder.generate_audio: Generates an Audio Overview (podcast) for a notebook.generate_video: Generates a Video Overview for a notebook.generate_slides: Generates a Slide Deck for a notebook.generate_infographic: Generates an Infographic for a notebook.generate_report: Generates a Report (Briefing Doc, Study Guide, Blog Post, Custom) for a notebook.
Using with Claude Desktop or Antigravity
Add this to your MCP settings configuration (mcp.json or equivalent):
{
"mcpServers": {
"notebooklm": {
"command": "/path/to/your/virtualenv/bin/python",
"args": [
"-m",
"mcp_notebooklm"
],
"cwd": "/path/to/this/repo"
}
}
}Available Tools
11 toolsask_notebookC
Ask a question to a specific NotebookLM notebook and get an AI-generated answer.
Args: notebook_id: The ID of the NotebookLM notebook. query: The question to ask in natural language.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the action ('ask a question') and outcome ('AI-generated answer'), but lacks behavioral details such as authentication needs, rate limits, response format, or error handling. For a tool that likely involves AI processing, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence clearly states the purpose, followed by a concise Args section. There's no wasted text, and the structure aids readability. A slight deduction because the Args formatting could be more integrated, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage, no annotations, and an output schema (which reduces need to explain returns), the description is moderately complete. It covers the basic action and parameters but misses behavioral context (e.g., how answers are generated, limitations). For a simple Q&A tool, this is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description adds minimal semantics: it names the parameters (notebook_id, query) and briefly describes them ('The ID of the NotebookLM notebook', 'The question to ask in natural language'). This compensates somewhat but doesn't fully address format expectations (e.g., notebook_id source, query length limits), resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Ask a question to a specific NotebookLM notebook and get an AI-generated answer.' It specifies the verb ('ask'), resource ('NotebookLM notebook'), and outcome ('AI-generated answer'), distinguishing it from siblings like list_notebooks or get_notebook_sources. However, it doesn't explicitly differentiate from other AI interaction tools like generate_report, which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., needing a notebook_id from list_notebooks), exclusions (e.g., not for editing), or comparisons to siblings like generate_report (which might produce structured outputs). Usage is implied by the purpose but lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteC
Create a new note in the specified notebook.
Args: notebook_id: The ID of the NotebookLM notebook. title: The title of the new note. content: The text content of the note.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| title | Yes | ||
| content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it 'creates' a note without disclosing behavioral traits. It doesn't mention permissions needed, whether creation is idempotent, rate limits, or what happens on failure (e.g., invalid notebook_id). For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a clear purpose statement followed by parameter documentation. It's front-loaded with the main action, though the 'Args' formatting could be more integrated. There's minimal waste, but it lacks completeness in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown here), the description doesn't need to explain return values. However, for a creation tool with 3 parameters and no annotations, it should provide more context on usage and behavior. The parameter documentation helps, but gaps in guidelines and transparency make it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an 'Args' section that documents all three parameters (notebook_id, title, content), adding meaning beyond the schema which has 0% description coverage. However, it only provides basic labels without details like format constraints (e.g., notebook_id structure, content length limits), so it partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new note') and resource ('in the specified notebook'), making the purpose immediately understandable. However, it doesn't differentiate this from potential sibling tools like 'download_notes' or 'list_notebooks', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., needing an existing notebook), exclusions, or how it relates to sibling tools like 'ask_notebook' or 'generate_report' for note-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_notesA
Downloads all notes from a specific notebook into a local subfolder within the directory created for that notebook. Note: select_notebook should typically be run first to get the main folder.
Args: notebook_id: The ID of the NotebookLM notebook. subfolder_name: The name of the subfolder to save notes (default: "notes").
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| subfolder_name | No | notes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. While it mentions downloading notes to a local subfolder, it doesn't describe key behavioral traits: what format the notes are downloaded in (e.g., text files, PDFs), whether this operation requires specific permissions, if it's idempotent, or what happens if the notebook doesn't exist. For a tool that performs file system operations with no annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose and location, the second provides usage guidance, and the Args section efficiently documents parameters. Every sentence earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is an output schema (which handles return values), the description doesn't need to explain outputs. However, for a tool with 2 parameters, 0% schema coverage, and no annotations, the description should do more: it lacks details on error conditions, file formats, or system dependencies (e.g., local directory permissions). It's adequate but has clear gaps in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics beyond the schema: it explains that 'notebook_id' refers to 'The ID of the NotebookLM notebook' (clarifying the platform) and that 'subfolder_name' is 'The name of the subfolder to save notes' with a default value. This covers both parameters adequately, though it doesn't detail constraints like ID format or subfolder naming rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Downloads all notes') from a specific resource ('from a specific notebook') into a specific location ('into a local subfolder within the directory created for that notebook'). It distinguishes itself from siblings like 'create_note' (which creates) or 'get_notebook_sources' (which retrieves sources, not notes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'select_notebook should typically be run first to get the main folder.' This gives clear context about prerequisites. However, it doesn't specify when NOT to use it or mention alternatives among siblings (e.g., how it differs from 'get_notebook_sources' or 'list_notebooks').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_audioB
Generates an Audio Overview (podcast) for a notebook.
Args: notebook_id: The ID of the NotebookLM notebook. instructions: Custom instructions for the podcast hosts.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool generates audio, implying a creation/mutation operation, but lacks details on behavioral traits such as permissions required, processing time, rate limits, output format (though output schema exists), or whether it's destructive. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a brief parameter explanation. Every sentence earns its place with no wasted words, and the structure is logical (purpose then args).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (audio generation tool), no annotations, and an output schema (which handles return values), the description is minimally complete. It covers purpose and parameters but lacks behavioral context (e.g., processing details) and usage guidelines. With output schema reducing need for return value explanation, it's adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'notebook_id' as 'The ID of the NotebookLM notebook' and 'instructions' as 'Custom instructions for the podcast hosts,' which clarifies their roles beyond schema titles. However, it doesn't cover format details (e.g., ID structure, instruction length), leaving gaps. Baseline 3 is appropriate as it adds some value but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates an Audio Overview (podcast) for a notebook.' It specifies the verb ('Generates'), resource ('Audio Overview'), and target ('notebook'), distinguishing it from sibling tools like generate_video or generate_report. However, it doesn't explicitly differentiate from all siblings (e.g., generate_infographic or generate_slides) beyond the output type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., notebook existence), exclusions, or comparisons to siblings like generate_video or generate_report. The only implied usage is for creating audio content from a notebook, but no explicit context or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_infographicC
Generates an Infographic for a notebook.
Args: notebook_id: The ID of the NotebookLM notebook. instructions: Custom instructions for infographic generation.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'Generates an Infographic' but doesn't disclose behavioral traits such as whether this is a read-only or mutating operation, what permissions are needed, potential rate limits, or what happens during generation (e.g., if it modifies the notebook). The description is minimal and lacks critical behavioral context for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the main purpose stated first. The two-sentence structure is efficient, and the Args section is clear. However, the second sentence is somewhat redundant with the parameter list, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generation operation with 2 parameters), no annotations, and an output schema present, the description is moderately complete. It covers the basic purpose and parameters but lacks usage guidelines and behavioral transparency. The output schema reduces the need to explain return values, but the description should do more to compensate for the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists two parameters (notebook_id and instructions) with brief explanations, but schema description coverage is 0%, meaning the schema provides no descriptions. The description adds some meaning (e.g., 'The ID of the NotebookLM notebook' and 'Custom instructions for infographic generation'), but it's insufficient to fully compensate for the lack of schema documentation, especially for a tool with 2 parameters where one has a default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates an Infographic for a notebook' with specific verb ('Generates') and resource ('Infographic for a notebook'). It distinguishes from siblings like generate_report or generate_slides by specifying the output type. However, it doesn't explicitly differentiate from all siblings (e.g., generate_video), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention when to choose generate_infographic over generate_report, generate_slides, or other output-generation siblings, nor does it specify prerequisites or exclusions. The only implied context is having a notebook, but this is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_reportB
Generates a Report for a notebook.
Args: notebook_id: The ID of the NotebookLM notebook. format_type: The type of report to generate. Options: BRIEFING_DOC, STUDY_GUIDE, BLOG_POST, CUSTOM. instructions: Custom instructions (required if format_type is CUSTOM).
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| format_type | No | BRIEFING_DOC | |
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 tool 'Generates a Report' but doesn't disclose behavioral traits such as whether it's a read-only or mutation operation, authentication needs, rate limits, or what happens if the notebook_id is invalid. For a generation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured Args section. Every sentence earns its place by providing essential parameter information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, 0% schema coverage, no annotations) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines. The output schema likely handles return values, so the description doesn't need to explain those, but it should do more for a generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: it explains that 'notebook_id' is for a 'NotebookLM notebook', lists 'format_type' options (BRIEFING_DOC, STUDY_GUIDE, BLOG_POST, CUSTOM), and specifies that 'instructions' is required for CUSTOM format. This goes beyond the bare schema, though it doesn't fully detail all parameter nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates a Report for a notebook.' It specifies the verb ('Generates') and resource ('Report for a notebook'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'generate_slides' or 'generate_infographic', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 lacks context about prerequisites (e.g., notebook existence), exclusions, or comparisons to siblings like 'generate_slides' or 'ask_notebook'. The parameter documentation implies usage but doesn't offer explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_slidesC
Generates a Slide Deck for a notebook.
Args: notebook_id: The ID of the NotebookLM notebook. instructions: Custom instructions for slide deck generation.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool generates a slide deck, implying a creation/mutation operation, but doesn't disclose behavioral traits such as permissions needed, whether it modifies existing data, rate limits, or what the output entails. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the main purpose stated first in a single sentence, followed by a brief parameter list. There's no wasted text, and it's easy to scan. It could be slightly more structured (e.g., bullet points), but it's efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to explain return values. However, with no annotations, 0% schema coverage, and 2 parameters, the description is incomplete: it lacks behavioral context, detailed usage guidelines, and full parameter semantics. It's minimally adequate but has clear gaps, especially for a generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'notebook_id' is for a 'NotebookLM notebook' and 'instructions' are 'Custom instructions for slide deck generation,' which clarifies the purpose of each parameter beyond the schema's basic titles. However, it doesn't provide details like format constraints or examples, so it only partially compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates a Slide Deck for a notebook.' It specifies the verb ('Generates') and resource ('Slide Deck'), and distinguishes it from siblings like generate_report or generate_infographic by focusing on slide decks. However, it doesn't explicitly differentiate from all siblings (e.g., generate_video), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention when to choose generate_slides over generate_report or generate_infographic, nor does it specify prerequisites or context for usage. The only implied usage is having a notebook, but this is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoB
Generates a Video Overview for a notebook.
Args: notebook_id: The ID of the NotebookLM notebook. instructions: Custom instructions for video generation.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Generates a Video Overview,' implying a creation/mutation operation, but doesn't mention permissions, rate limits, output format, or processing time. For a tool with no annotations and an output schema, this lacks critical behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a concise Args section. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generation operation with 2 parameters), no annotations, and an output schema, the description is incomplete. It covers basic purpose and parameters but lacks behavioral context, usage guidelines, and output details. The output schema mitigates some gaps, but overall, it's minimally adequate with clear omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'notebook_id' as 'The ID of the NotebookLM notebook' and 'instructions' as 'Custom instructions for video generation,' which clarifies purpose beyond schema titles. However, it doesn't detail format constraints or examples, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates a Video Overview for a notebook.' It specifies the verb ('Generates') and resource ('Video Overview for a notebook'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'generate_audio' or 'generate_slides' beyond mentioning 'Video,' which is implied but not stated as a distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mentions 'notebook' and 'video generation,' but doesn't specify scenarios, prerequisites, or exclusions compared to siblings like 'generate_audio' or 'generate_report.' This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notebook_sourcesC
Get all sources associated with a specific NotebookLM notebook.
Args: notebook_id: The ID of the NotebookLM notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 states the action 'Get all sources' but lacks details on permissions, rate limits, response format, or whether it's a read-only operation. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the main purpose stated first and parameter details in a brief 'Args' section. There's no wasted text, but it could be slightly more structured with clearer separation of usage context, making it efficient but not perfectly optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no annotations, and an output schema exists (which handles return values), the description is minimally adequate. It covers the basic purpose and parameter but lacks behavioral context and usage guidelines, making it incomplete for optimal agent understanding without additional structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics by specifying 'notebook_id: The ID of the NotebookLM notebook,' which clarifies the parameter's purpose. However, with 0% schema description coverage and only one parameter, this provides some value but doesn't fully compensate for the lack of schema details, aligning with the baseline for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'sources associated with a specific NotebookLM notebook', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_notebooks' or 'select_notebook', which might also involve notebook data retrieval, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites, such as needing an existing notebook, or compare it to siblings like 'list_notebooks' for broader listing or 'ask_notebook' for querying content, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notebooksB
List all available NotebookLM notebooks for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it lists notebooks for the authenticated user, implying a read operation, but doesn't disclose behavioral traits like pagination, rate limits, error handling, or what 'available' means (e.g., active vs. archived). This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It's front-loaded with the core action ('List all available NotebookLM notebooks') and includes essential context ('for the authenticated user'). Every word earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate. However, with no annotations and an output schema, it should ideally explain what 'list' returns (e.g., format, fields) or behavioral aspects, but the output schema might cover return values. It's complete enough for basic use but lacks depth for robust agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description adds no parameter information, which is acceptable here. Baseline for 0 parameters is 4, as there's nothing to compensate for, and the description doesn't need to cover parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('NotebookLM notebooks') with scope ('all available... for the authenticated user'). It distinguishes from siblings like 'select_notebook' (which likely selects one) and 'get_notebook_sources' (which focuses on sources). However, it doesn't explicitly differentiate from all siblings, such as 'ask_notebook' which might also list notebooks in some contexts, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., authentication), exclusions (e.g., not for filtering), or compare to siblings like 'select_notebook' for picking a specific notebook. This leaves the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_notebookC
Selects a notebook by ID and creates a local directory for it based on its title. Returns the path to the created directory.
Args: notebook_id: The ID of the NotebookLM notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool creates a local directory and returns its path, which is useful behavioral context. However, it lacks details on permissions needed, whether this is a read-only or mutating operation (creation implies mutation), error handling, or side effects (e.g., overwriting existing directories). For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core action and outcome, followed by a brief parameter explanation. There's minimal waste, though the structure could be slightly improved by integrating the parameter note more seamlessly. Overall, it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter with 0% schema coverage and an output schema (which handles return values), the description is moderately complete. It covers the tool's purpose and parameter semantics but lacks behavioral details (e.g., mutation implications, error cases) and usage guidelines. For a tool that creates directories, more context on side effects would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the input schema: it explains that 'notebook_id' is 'The ID of the NotebookLM notebook,' clarifying the parameter's purpose. With 0% schema description coverage and 1 parameter, this compensates adequately. However, it doesn't specify format (e.g., string pattern) or constraints, keeping it at a baseline level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Selects a notebook by ID and creates a local directory for it based on its title. Returns the path to the created directory.' This specifies the verb (selects and creates), resource (notebook), and outcome (directory path). It distinguishes from siblings like 'list_notebooks' (which lists) or 'get_notebook_sources' (which retrieves sources), though it doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., needing a notebook ID from 'list_notebooks'), exclusions, or comparisons to siblings like 'ask_notebook' for querying. Usage is implied but not explicitly stated, leaving gaps for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: ask_notebook queries content, create_note adds notes, download_notes exports files, generate_* tools create different output formats, get_notebook_sources retrieves sources, list_notebooks enumerates notebooks, and select_notebook sets up local directories. The tools target different actions on notebooks without overlap.
Tool names follow a consistent verb_noun pattern throughout: ask_notebook, create_note, download_notes, generate_audio, generate_infographic, generate_report, generate_slides, generate_video, get_notebook_sources, list_notebooks, select_notebook. All use snake_case with clear verbs aligned to their functions.
With 11 tools, this is well-scoped for a NotebookLM server, covering core operations like querying, note management, content generation in multiple formats, source retrieval, and notebook selection. Each tool earns its place without bloat, fitting typical MCP server ranges.
The toolset provides comprehensive coverage for NotebookLM workflows, including CRUD-like operations (create_note, list_notebooks), content generation in various formats, and utility functions. Minor gaps exist, such as no update/delete for notes or notebooks, but agents can work around these with the available tools.
Maintenance
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
Google NotebookLM via natural language: create notebooks, add sources (PDF, URL, YouTube) and ask gr
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Provides tools for searching Google Workspace documentation and much more.
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI agents to interact with Google NotebookLM for grounded, hallucination-free answers through notebook management, source management, research, and generation tools.292,34326MIT
- AlicenseAqualityBmaintenanceConnects AI coding agents to Google NotebookLM, enabling querying notebooks, adding sources, and generating artifacts like reports, podcasts, and slide decks.141MIT
- AlicenseAqualityBmaintenanceExposes Google NotebookLM notebooks as tools for AI assistants, enabling listing, finding, and querying notebooks with grounded answers.41MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to programmatically access and control Google NotebookLM, supporting operations like notebook management, source addition, audio generation, and more via natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/harriedgemusic/notebooklm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server