notebooklm-mcp
Integrates with Google NotebookLM, providing tools for notebook management (list, create, delete), source addition (text, URL), querying with citations, research topic discovery, podcast creation, and downloading artifacts.
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-mcpResearch the impact of AI on healthcare and answer two key questions."
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
An unofficial NotebookLM MCP server and CLI — inspired by
jacob-bd/notebooklm-mcp-cli.
⚠️ NotebookLM has no public API. This project talks to NotebookLM's internal
batchexecute/GenerateFreeFormStreamedRPCs through a Playwright persistent-context session. It is not affiliated with Google.
What works today
Tool | Status | Notes |
| ✅ | Returns "mine" + "shared" notebooks. Pagination for many owned notebooks not yet discovered (shows most-recent owned). |
| ✅ | Untitled empty notebook. |
| ✅ | Permanent, no undo. |
| ✅ | Streams the answer with inline |
| ⚠️ |
|
| ✅ | NotebookLM Discover → returns candidate URLs (does not auto-import). |
| ✅ | One-shot: create → research → import → ask N questions → (optional) delete. |
| ⚠️ |
|
| ✅ | Saves completed audio as |
| ✅ | Checks whether the stored Google session is still live. |
Stubs (raise NotImplementedError): notebook_share_public,
notebook_share_invite, source_sync_drive, source_get_content,
studio_revise, cross_notebook_query, batch, pipeline, tag.
Related MCP server: notebooklm-mcp-2026
End-to-end workflow this supports
Manual orchestration:
notebook_create() → empty notebook
research_start(nid, topic) → ~10 candidate URLs
source_add(nid, kind="url")×N → import the ones you want
notebook_query(nid, question) → grounded answer with citations
studio_create(nid, "audio") → start podcast generation (2-5 min)
download_artifact(nid) → .m4a file on diskOr, in a single call:
research_and_ask(
topic="history of the Cold War space race",
questions=["Who reached space first?", "Key consequences?"],
max_sources=3,
keep_notebook=False, # ephemeral — delete after
)
# → { sources_imported: [...], qa: [{question, answer, ...}, ...] }Install
Quick start (from PyPI)
uv tool install notebooklm-mcp-lisa
uvx --from notebooklm-mcp-lisa playwright install chromium
nlm login # one-time Google sign-in (opens a browser)
nlm setup add claude-code # or: claude-desktopThe setup add command edits the target's config file so the MCP server is
registered — no JSON editing by hand. Restart the client to pick it up.
Verify registration any time:
nlm setup listDev setup (from source)
git clone https://github.com/gracelee087/notebooklm-mcp-lisa.git
cd notebooklm-mcp
uv sync
uv run playwright install chromium
uv run nlm loginFirst-time Google login
NotebookLM requires a signed-in Google session. Run once, headed:
uv run nlm loginA Chromium window opens. Complete Google OAuth; the session is saved to
the OS user-data dir (NLM_PROFILE_DIR to override). Subsequent runs are
headless.
Verify:
uv run nlm status
# {'logged_in': True}Run the MCP server
uv run notebooklm-mcp
# or
uv run nlm serveClaude Code (project-scoped, auto-picked-up)
.mcp.json in this repo is already configured. When you open the project in
Claude Code it prompts you to trust and loads notebooklm automatically.
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"notebooklm": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/this/repo", "run", "notebooklm-mcp"]
}
}
}Repo layout
src/notebooklm_mcp/
server.py # FastMCP entry
cli.py # `nlm` CLI (login/status/serve)
browser.py # Playwright persistent context
config.py # paths, env
tools/
notebook.py source.py studio.py research.py workflow.py auth.pyStatus
Package scaffold, MCP server, CLI
Playwright session with persistent Google login
All tools registered (stubs)
notebook_listDOM scrapenotebook_querychat flowsource_add(url/text/drive/file)studio_createaudio (podcast) + downloadremaining tools
License
MIT
Available Tools
19 toolsbatchB
Run a single tool operation across many notebooks (e.g. operation="notebook_query").
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| operation | Yes | ||
| notebook_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states what the tool does, not how: no mention of result aggregation, error handling, concurrency, permissions, or side effects. This gap could mislead an agent about the tool's execution model.
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 concise sentence that front-loads the core purpose with a concrete example. Every word is useful and there is no fluff or repetition.
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?
Despite having an output schema, the description is too sparse for a generic dispatch tool. It lacks essential context about how operations are executed (e.g., sequentially or in parallel), how parameters map to the operation, and how errors or partial failures are reported. An agent would need additional documentation to use this safely and effectively.
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 schema has 0% description coverage for all three parameters (notebook_ids, operation, params), and the description only provides a single example value for operation. It does not explain the structure or purpose of the 'params' object or how notebook_ids should be formatted, leaving the agent to guess.
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 a specific verb+resource+scope: 'Run a single tool operation across many notebooks.' The example operation='notebook_query' reinforces the intended use and distinguishes it from single-notebook tools and other wrappers like pipeline.
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 phrase 'across many notebooks' implies the use case for batch operations, but there is no explicit guidance on when to choose this over alternatives like cross_notebook_query or when not to use it (e.g., for a single notebook). No direct comparison to sibling tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_notebook_queryA
Ask the same question across multiple notebooks and return per-notebook answers.
Returns { question, results: { : { answer, source_count, session_ids, chunks } | { error: }, ... }, ok_count, error_count, }
Per-notebook failures (no sources, RPC errors) are captured in error
so one bad notebook doesn't abort the fan-out.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| notebook_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: per-notebook failure handling (errors captured per notebook, no abort) and the overall return envelope. This goes beyond what the schema provides.
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 efficiently structured: a one-line purpose, a return type block, and an error-handling note. Every sentence adds value without unnecessary verbosity.
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?
The description covers the core purpose, return structure, and error isolation, which is sufficient for a simple two-parameter tool. It could be more explicit about when to use this instead of notebook_query, but overall it's reasonably complete.
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 coverage is 0%, so the description must add meaning. It clarifies that 'question' is shared across notebooks and that results are keyed by notebook_ids. However, it doesn't describe the expected format or constraints of the two parameters beyond the schema.
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 states a specific verb (ask) and resource (notebooks) with scope ('across multiple notebooks'). It clearly implies a fan-out query, distinguishing it from the sibling notebook_query tool, though it doesn't explicitly name the alternative.
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 phrase 'Ask the same question across multiple notebooks' conveys the primary use case: querying multiple notebooks in one call. It doesn't state when-not-to-use or contrast with single-notebook querying, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_artifactA
Check an artifact's status and, if complete, download it to disk.
If artifact_id is None, returns the most recent artifact in the notebook.
Returns { artifact_id, status, title, duration_sec, path?, mime? }.
path is only present when download succeeded.
| Name | Required | Description | Default |
|---|---|---|---|
| dest_dir | No | ||
| artifact_id | No | ||
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having no annotations, the description discloses key behaviors: it checks artifact status before downloading, only includes 'path' on success, and defaults to the latest artifact. It could detail what happens when the artifact is incomplete, but the output shape and conditional presence of path cover the main concerns.
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 compact and well-structured, with a clear purpose-first opening and concise follow-up sentences about default behavior and return format. No filler or redundancy.
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?
The tool is simple, and the description covers the primary workflow and return shape. Minor gaps like incomplete status handling and dest_dir specifics remain, but the output schema and brevity reduce the overall completeness gap.
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 schema has 0% description coverage, so the description must compensate. It adds important semantics for artifact_id (None means latest) and implies dest_dir's role via 'download to disk'. However, dest_dir itself is not explicitly explained, and notebook_id is left to the reader.
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 identifies the tool's action: check status and download an artifact to disk. It also specifies the default behavior when artifact_id is None, making the tool's scope unambiguous and distinct from siblings.
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 clear context for when to use the tool, including the option to omit artifact_id to fetch the most recent artifact. It doesn't mention alternatives or exclusions, but the use case is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_createA
Create a brand-new, empty notebook. Returns { id, title, url }.
Uses NotebookLM's CCqFvf RPC, which always creates a fresh notebook
(unlike the idempotent "get recent draft" endpoint). title is
accepted but NotebookLM's create RPC produces an untitled notebook;
it will auto-title once sources are added.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool always creates a fresh notebook (non‑idempotent) and explains the surprising behavior that the provided title is ignored until sources are added, resulting in an untitled notebook. It also mentions the return format, giving a clear expectation of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core action and return value. The second paragraph adds necessary nuance about the RPC behavior and title handling. The RPC name ('CCqFvf') is slightly extra but not excessive; overall it is efficient and well-structured.
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?
For a simple creation tool with one optional parameter, the description covers the essential aspects: what it does, what it returns, and the notable title quirk. Though it lacks explicit notes on prerequisites or errors, the tool is simple enough that the description is sufficiently complete for an agent to select and invoke it correctly.
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 compensates by explaining the only parameter, title. It clearly states that title is accepted but not used directly—the notebook will auto‑title later. This adds meaning beyond the schema's plain type/default information.
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 opens with a specific verb+resource: 'Create a brand-new, empty notebook.' It also states the return shape ({ id, title, url }), which further clarifies the tool's purpose. This clearly distinguishes it from sibling tools like notebook_list, notebook_delete, and notebook_query.
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 usage context by contrasting this tool with the idempotent 'get recent draft' endpoint, indicating when to use this non‑idempotent creation method. However, it doesn't explicitly address when to choose this over the listed sibling tools, though the purpose itself makes that fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_deleteA
Delete a notebook permanently. Returns { id, deleted: True }.
Irreversible — NotebookLM has no trash/undo. Caller confirms.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It explicitly states the permanent, irreversible nature, notes that NotebookLM has no trash/undo, and specifies the return value, adding meaningful context beyond the action itself.
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 two concise sentences that front-load the action, provide the return value, and add a critical warning. Every sentence earns its place with no redundancy.
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?
For a simple single-parameter delete tool, the description covers the essential behavioral context: the irreversible action, the confirmation requirement, and the expected return. The output schema presumably documents the response structure, and the absence of detailed error handling is acceptable for this complexity.
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 schema has 0% description coverage for the only parameter, notebook_id, and the description does not explain its format, origin, or constraints. The parameter is self-descriptive, but the description fails to compensate for the lack of schema documentation, such as referencing notebook_list.
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 uses a specific verb 'Delete' and a clear resource 'a notebook', specifying 'permanently' to distinguish it from any soft-delete or other notebook operations. Sibling tools like notebook_create and notebook_list are clearly different operations.
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 clear context that deletion is irreversible and requires caller confirmation, implying it should only be used after user consent. However, it doesn't explicitly name alternative tools or specify prerequisites like listing notebooks to obtain the ID, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_listA
List notebooks visible to the signed-in Google account.
Returns { id, title, icon, source_count, updated_at, url, ownership }.
ownership is "mine" (user-created) or "shared" (subscribed/public).
Known limitation: wXbhsf returns the user's most-recent owned notebook
only. Bulk pagination for many owned notebooks isn't yet discovered.
| 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?
With no annotations, the description carries the full burden. It discloses the return fields, the meaning of 'ownership' values, and a specific known limitation (wXbhsf returns only the most-recent owned notebook). This is strong transparency, though it does not explicitly mention authentication requirements or error behavior.
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 compact and well-structured: three short paragraphs each serving a distinct purpose (purpose, output, limitation). There is no redundant information 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?
For a zero-parameter list tool with an output schema, the description covers purpose, output format, and a notable limitation. This is sufficient for an agent to select and invoke the tool correctly without additional 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?
The tool has zero parameters, so the schema already covers parameter semantics (trivially). Per the baseline rule for tools with no parameters, a score of 4 is appropriate; no additional descriptive compensation is needed.
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 function: 'List notebooks visible to the signed-in Google account.' It uses a specific verb ('List') and resource ('notebooks'), scoped to the signed-in account, which distinguishes it from sibling tools like notebook_create or notebook_query.
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 implies a simple listing use case but does not explicitly state when to use this tool over alternatives such as notebook_query. The known limitation about pagination hints at when it might not be suitable, but no alternative tool is referenced or exclusion is clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notebook_queryA
Ask a question inside a notebook and return the grounded answer.
The exchange is persisted in the NotebookLM web UI's chat history. Returns { answer, source_count, session_ids, chunks }.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits on its own. It does reveal a side effect (the exchange is persisted in NotebookLM's chat history) and previews the return shape, which is useful. However, it does not address whether the operation is read-only, if it requires special authentication, or if there are rate limits or costs, leaving a partial transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose, followed by the key side effect and return fields. No fluff, every sentence earns its place.
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?
For a two-parameter tool with an output schema, the description covers the core operation, side effect, and return shape. It is concise and complete enough for straightforward use, though it lacks explicit guidance on when to use it or how it differs from related tools.
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 should compensate by explaining the parameters. The phrase 'inside a notebook' hints at notebook_id and 'Ask a question' hints at question, but it does not clarify formats, constraints, or relationships. It adds minimal meaning beyond the parameter names.
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 ('Ask a question') and resource ('inside a notebook'), and specifies the outcome ('return the grounded answer'). It distinguishes itself from siblings like cross_notebook_query and research_and_ask by focusing on a single notebook and a chat-persisted exchange.
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 implies usage: you use this tool when you need to ask a question within a specific notebook. However, it does not explicitly say when to prefer this over alternatives like cross_notebook_query or research_and_ask, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipelineA
Run a sequence of tool invocations. Each step: { tool, params }.
Output of step N is available as $prev inside step N+1's params.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the sequential execution and the $prev mechanism, which is valuable behavioral context. However, it does not mention error handling, potential side effects of invoking other tools, or whether the pipeline can be aborted. This is moderate transparency but leaves important gaps.
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 extremely concise, consisting of two sentences. It front-loads the core purpose and adds a necessary detail about $prev without any wasted words. Every sentence earns its place.
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 (a meta-tool that runs other tools), the description explains the essential mechanics but omits important context such as error handling, behavior on step failure, and what the final output actually is (though an output schema exists). It is adequate for basic understanding but incomplete for robust usage.
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 schema provides no description for the 'steps' parameter (0% coverage). The description compensates by explaining the expected structure of each step as '{ tool, params }' and by describing the $prev data flow. This adds significant meaning beyond the bare schema, though it could be even more explicit about the 'params' object.
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 function: 'Run a sequence of tool invocations.' It specifies the verb (run), the resource (a sequence of tool invocations), and the structure of each step. It distinguishes from siblings like 'batch' by focusing on sequential execution and data passing, though it does not 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 usage is implied rather than explicitly stated. The description implies this tool should be used when you need to chain tool invocations and pass output between steps ($prev). However, it does not provide explicit when-to-use/when-not-to-use guidance or mention alternatives such as 'batch' or direct calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_authA
Re-validate the stored Google session. Returns { logged_in: bool, email?: str }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It states the return shape but does not clarify whether the operation is read-only, whether it refreshes tokens, or what happens on failure. The word 're-validate' hints at a check but lacks side-effect 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 a single, clear sentence plus a return type specification. It is efficient and front-loaded with the action and purpose, with no wasted words.
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 simple nature of this auth-checking tool, the description covers the essential purpose and return value. The presence of an output schema (for the return shape) reduces the need to explain return details. It lacks error handling or failure-mode info but remains adequate for the tool's simplicity.
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 zero parameters, so the baseline is 4. The description adds no conflicting or extra parameter info, and since there are no parameters, no further semantic explanation is needed.
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 re-validates the stored Google session, using a specific verb and resource. It is distinct from the sibling tools, which focus on notebooks, sources, research, etc., so no confusion arises.
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 does not specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It implies a session check but lacks explicit context for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_and_askA
One-shot: create ephemeral notebook → research → import sources → Q&A.
Full workflow wrapped in a single call:
Create a fresh empty notebook.
research_start(topic)→ candidate URLs.Import the top
max_sourcesURLs as sources.For each question in
questions, runnotebook_query.If
keep_notebookis False (default), delete the notebook.
Returns { notebook_id, # str if kept, None if deleted topic, sources_imported, # [{url, title, word_count}, ...] qa, # [{question, answer, source_count, chunks}, ...] kept, # bool }
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| questions | Yes | ||
| max_sources | No | ||
| keep_notebook | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does so well: it discloses the ephemeral notebook lifecycle, deletion behavior (default keep_notebook=False), and the return fields including notebook_id=None when deleted. It exposes the primary side effect (notebook deletion) clearly.
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 efficiently structured: a one-line summary, numbered steps, and a compact return block. Every line adds value, and the format makes the workflow easy to follow without 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?
For a composite tool with 4 parameters and multiple side effects, the description is highly complete. It covers the full workflow, default behavior, deletion consequences, and the return structure in detail—especially valuable given the lack of annotation support and zero schema descriptions.
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%, but the description adds meaning for all four parameters: 'topic' seeds research, 'questions' drives notebook_query, 'max_sources' controls how many URLs are imported, and 'keep_notebook' determines deletion. This compensates well for the schema's lack of descriptions.
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 identifies a composite workflow: create ephemeral notebook, research, import sources, and answer questions. It uses specific verbs and resource names, and the 'One-shot' framing distinguishes it from granular sibling tools like research_start and notebook_query.
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 conveys when to use this tool: as a one-shot wrapper for a multi-step research and Q&A workflow. It does not explicitly state when not to use it or mention alternatives for more granular control, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_startA
Kick off NotebookLM's Discover (Fast Research) flow on a topic.
Returns { query, sources: [{ url, title, description }, ...] }.
The candidate sources are NOT automatically added to the notebook.
Use source_add(kind="url", value=<chosen_url>) to import selected ones.
Requires an EMPTY notebook — NotebookLM disables Discover once the
notebook has content. Create one with notebook_create first if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| notebook_id | Yes | ||
| timeout_sec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly states that candidate sources are NOT automatically added, that the notebook must be empty, and it specifies the return shape. These are non-obvious, important behaviors that materially affect invocation and follow-up actions.
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 four sentences, front-loaded with the main purpose, then the return format, then crucial caveats. Every sentence carries meaningful information without repetition or filler.
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?
The description provides enough context to invoke the tool correctly: purpose, output format, prerequisite, and next-step action. It lacks a comparison to research_and_ask and does not describe error behavior or timeout handling, but for a non-destructive research starter with a simple output shape, it is largely complete.
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 schema has 0% description coverage, so the description must compensate. It clarifies that query is the topic and that notebook_id must refer to an empty notebook, but it never explains timeout_sec or its default behavior. This is partial compensation at best, leaving one parameter semantically undocumented.
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 uses a specific verb+resource: 'Kick off NotebookLM's Discover (Fast Research) flow on a topic.' It clearly states the tool starts a research discovery process and returns candidate sources, which distinguishes it from notebook querying or source management tools like research_and_ask or source_add.
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 gives clear usage context: it requires an empty notebook, advises creating one with notebook_create if needed, and directs the agent to use source_add to import selected sources. However, it does not explicitly compare this to research_and_ask or other research-related tools, so it stops short of full when-to-use vs. alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_addA
Add a source to a notebook and return { id, title, word_count }.
kind="text":
valueis the raw text to paste.titledefaults to "붙여넣은 텍스트" (NotebookLM's own default).kind="url":
valueis a webpage URL. NotebookLM fetches + extracts the content server-side;titleis ignored (NotebookLM uses the page's own ).
Not yet implemented: drive, file.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| title | No | ||
| value | Yes | ||
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses server-side fetching for URLs, the ignored title for URLs, the default title for text, and the return object shape. It does not mention authentication, side effects, or error behavior, but covers the key behavioral nuances for the implemented kinds.
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, well-structured, and front-loaded with purpose and return. The bullet points break down kind-specific behavior efficiently, and every sentence adds value without redundancy.
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 presence of an output schema and four parameters, the description covers the essential context: return shape, kind-based behavior, and limitations. It does not explain notebook_id or potential errors, but the tool is simple enough that the description is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description compensates by explaining `value` semantics for text vs url, and the behavior of `title` for each. It doesn't explain `notebook_id`, but that is a common and obvious parameter. The warning that drive/file are not implemented also clarifies the `kind` enum beyond the schema.
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 states a specific action ('Add a source to a notebook') and specifies the return shape. It clearly differentiates between supported kinds (text and url) and lists unimplemented ones, making its purpose unambiguous relative to siblings like source_get_content or source_sync_drive.
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 clear context for when to use text vs url kinds, including how title is handled for each. It explicitly warns that drive and file are not implemented, which prevents misuse. However, it does not explicitly compare against alternative tools like source_get_content, though the name makes it fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_get_contentB
Return the extracted text/metadata of a single source.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must bear all responsibility for behavioral disclosure. It only says 'Return' with no mention of potential errors (e.g., missing source, permissions) or any side effects. While it implies a read operation, it does not explicitly state that it is non-destructive or requires existing data.
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, efficient sentence with no wasted words. It front-loads the action and object, making it 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?
The tool is simple (2 parameters, output schema exists), so the description is arguably sufficient for the core purpose. However, it lacks any usage context, such as when to use this against notebook_query or source_add, and does not mention any behavioral prerequisites (e.g., source already processed). This makes it minimally viable but not complete.
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 does not explain 'source_id' or 'notebook_id' beyond their names, nor how they relate. For a tool with two self-explanatory parameters, this is acceptable but still lacks semantic context (e.g., that source_id is scoped by notebook_id).
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 returns extracted text/metadata of a single source, using a specific verb ('Return') and resource ('source'). This distinguishes it from sibling tools like source_add (which adds sources) and source_sync_drive (which syncs drive content).
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 does not mention prerequisites (e.g., source must be added first) or compare it to sibling tools like source_add or source_sync_drive. This is a clear gap for an agent deciding between related source tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_sync_driveB
Refresh Drive-linked sources. If source_id is None, refresh all.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | No | ||
| notebook_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It only mentions 'refresh' and the source_id parameter effect, but does not reveal what 'refresh' entails—whether it overwrites data, requires permissions, or has side effects. This is insufficient for a mutation-type operation.
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 sentence, front-loaded with the action and resource, and contains no filler. Every word is functional, making it appropriately concise.
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?
Despite having an output schema, the description is too terse for a tool that performs a mutation. It does not explain what 'refresh' means, what prerequisites exist (e.g., authentication or existing Drive link), or what the output represents. The required notebook_id parameter is not documented, leaving the tool incomplete for straightforward use.
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 does add meaning for source_id ('If source_id is None, refresh all'), but it fails to explain notebook_id, a required parameter. With two parameters, half are undocumented, leaving a significant gap 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: 'Refresh Drive-linked sources.' It specifies the action (refresh), the resource (Drive-linked sources), and includes a scope condition ('If source_id is None, refresh all') which adds specificity and distinguishes it from sibling tools like source_add or source_get_content.
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 implies when to use the tool (when you want to refresh Drive-linked sources) and even clarifies behavior for a specific parameter, but it does not provide explicit alternatives or when-not-to-use guidance. Sibling tools like source_get_content or source_add are not referenced, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_createA
Start generating a Studio artifact (audio/podcast by default).
Returns immediately with { artifact_id, status, title } — generation is
asynchronous and typically takes 2-5 minutes. Poll download_artifact
to check progress and retrieve the file when complete.
Currently implemented: audio (Audio Overview / podcast). Other artifact types (video, slides, etc.) raise NotImplementedError.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact | No | audio | |
| language | No | en | |
| notebook_id | Yes | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the async behavior (returns immediately, 2-5 min generation), points to download_artifact for polling, and explicitly warns that non-audio artifact types raise NotImplementedError. This is transparent and sets correct expectations.
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?
Three sentences, front-loaded with the main action. Each sentence adds value: action, async/return/poll, and limitation. No redundancy.
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?
The description covers the core behavior (create, async, poll, limitation) and return format. It is missing parameter definitions and explicit alternative guidance (studio_revise), but for a tool with an output schema, the description is largely sufficient.
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 only mentions the default audio artifact type; it does not explain notebook_id, language, or instructions. The schema provides some semantics (enum, defaults) but the description adds almost no parameter meaning.
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 opens with a specific verb+resource: 'Start generating a Studio artifact (audio/podcast by default).' It clearly distinguishes this from sibling studio_revise (revision) and download_artifact (retrieval), and explicitly notes the default artifact type and unimplemented types.
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?
It explains the async workflow: returns immediately, poll download_artifact to check progress and retrieve. This gives clear usage context. However, it does not explicitly contrast with studio_revise or state when NOT to use this tool (beyond the NotImplementedError for non-audio types). It also doesn't mention prerequisites like needing an existing notebook id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_reviseA
Revise an existing slide deck (and any revisable artifact) with new instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_id | Yes | ||
| notebook_id | Yes | ||
| instructions | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It indicates a mutation ('revise') but does not state side effects, reversibility, permissions, or what 'revisable artifact' entails. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It delivers the core purpose immediately, though the parenthetical is slightly vague. Overall, it is highly concise and well-structured.
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?
The description covers the basic purpose and clarifies the instructions parameter, but lacks parameter details and behavioral context. With an output schema present and only 3 required params, it is borderline adequate. The absence of annotations and low schema coverage leaves gaps, so a 3 is appropriate.
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 clarity to the 'instructions' parameter ('with new instructions') but does not explain notebook_id or artifact_id. Since schema coverage is 0%, the description should compensate more, but the parameter names are self-explanatory. Partial compensation leads to a mid-range 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 uses a specific verb 'Revise' with a clear resource: 'an existing slide deck (and any revisable artifact)'. This distinguishes it from sibling tools like studio_create, which creates new artifacts. The scope is clearly stated.
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 implies usage context: for revising an existing artifact, not for creating new ones. However, it does not explicitly mention alternatives or when not to use, so it lacks explicit exclusions. The context is clear enough, hence 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tagA
Add/remove tags on one or more notebooks. mode in {"add","remove","set"}.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | add | |
| tags | Yes | ||
| notebook_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It reveals the three modes but does not explain the effect of 'set' (e.g., does it replace all existing tags?), consequences of removal, reversibility, or permission requirements. For a mutation-capable tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main action and target. Every phrase is informative, with no filler or redundancy.
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?
The presence of an output schema lowers the need to describe return values, and the parameters are simple. However, the lack of annotations and the ambiguous 'set' mode leave the description incomplete for a mutation tool, especially regarding side effects and failure behavior. It 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?
With 0% schema description coverage, the description must compensate; it adds the allowed mode values and clarifies that tags are applied to one or more notebooks. However, it leaves 'set' semantics and potential constraints on tag values or duplicate handling unaddressed, so it only partially compensates.
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 uses a specific verb ('Add/remove') and names the resource ('tags on one or more notebooks'), clearly distinguishing this tool from siblings that handle notebooks, sources, or research. The mention of modes ('add','remove','set') further clarifies its scope.
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 implies usage for managing tags on notebooks, but it gives no explicit when-to-use guidance or mentions alternatives. It is self-evident enough for a tagging operation, yet lacks exclusions or context about when it should be preferred over related notebook tools.
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. Dates show when Glama detected each change.
19 tool updates
v0.2.0- First observed
batch - First observed
cross_notebook_query - First observed
download_artifact - First observed
notebook_create - First observed
notebook_delete - First observed
notebook_list - First observed
notebook_query - First observed
notebook_share_invite - First observed
notebook_share_public - First observed
pipeline - First observed
refresh_auth - First observed
research_and_ask - First observed
research_start - First observed
source_add - First observed
source_get_content - First observed
source_sync_drive - First observed
studio_create - First observed
studio_revise - First observed
tag
TDQS
Most tools target distinct resources and actions: notebook lifecycle, source management, research, and studio are clearly separated. Potential confusion exists between research_start and research_and_ask (both initiate research) and between studio_create and studio_revise (both generate artifacts), but descriptions clarify the workflow differences.
Resource-based tools follow a consistent <resource>_<action> pattern (notebook_*, source_*, studio_*), but several tools deviate: download_artifact, refresh_auth, batch, pipeline, tag, and research_and_ask break the convention. The naming is readable and accessible, though mixed styles reduce overall predictability.
At 19 tools, the set is on the heavier side but justified by NotebookLM's broad feature surface: notebooks, sources, research, studio, sharing, and meta-orchestration all receive coverage. The number is not excessive and each tool serves a distinct purpose.
Core lifecycle operations are covered for notebooks (create, list, delete, query) and sources (add, sync, get_content), and research/studio workflows are complete. Notable gaps include lack of notebook update/rename, source deletion, and source listing, but these are minor and workaroundable.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides CLI and MCP server to programmatically access Google NotebookLM, enabling AI assistants to create notebooks, add sources, generate podcasts, and more, with support for both personal and enterprise accounts.41MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for querying Google NotebookLM notebooks, enabling AI assistants to list notebooks, read sources, and ask questions about them.MIT
- FlicenseBqualityBmaintenanceA production-ready, fully asynchronous MCP server that bridges AI agents with Google NotebookLM, enabling notebook creation, source management, audio generation, and more through natural language.12-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives Claude (and any MCP-compatible agent) full access to Google NotebookLM — create notebooks, upload sources, ask questions, and generate audio overviews, quizzes, flashcards, mind maps, slide decks, videos, and reports.1MIT
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/gracelee087/notebooklm-mcp-lisa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server