notebooklm-skill
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-skillResearch https://example.com and summarize findings"
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-skill
Source-grounded NotebookLM automation for terminals and AI agents.
notebooklm-skill gives humans and MCP clients one consistent interface for Google
NotebookLM. It creates notebooks from URLs, raw text, and local files; asks grounded
questions with citation metadata; completes fast or deep web research; and generates
or downloads NotebookLM artifacts.
The project is built around notebooklm-py 0.7.x and includes:
a JSON-first core CLI;
five end-to-end research pipelines;
a 13-tool FastMCP server;
profile-aware authentication and Skill installers;
one shared compatibility layer, so CLI, pipelines, and MCP use the same behavior.
This is an unofficial integration with NotebookLM's web API. Google can change the service, availability, quotas, or artifact behavior without notice.
Quick start
Isolated source install
The installer creates a dedicated virtual environment, installs Chromium, links five
commands into ~/.local/bin, and installs the Claude Code Skill using the standard
directory layout.
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill
./install.sh
notebooklm-auth setup
notebooklm-skill listEnsure ~/.local/bin is on PATH.
PyPI or uvx
# Persistent virtual environment
python3 -m venv .venv
source .venv/bin/activate
python -m pip install notebooklm-skill
python -m playwright install chromium
notebooklm-auth setup
# Or run without a persistent install
uvx --from notebooklm-skill notebooklm-auth setup
uvx --from notebooklm-skill notebooklm-skill listDirect upstream login is also available:
uvx --from notebooklm-py notebooklm loginSessions are profile-aware. Select one with --profile NAME before a CLI
subcommand, or set NOTEBOOKLM_PROFILE.
To use the locally installed Google Chrome instead of bundled Chromium:
notebooklm-auth setup --browser chrome --freshRelated MCP server: NotebookLM MCP
Core CLI
All successful commands print structured JSON to stdout. Diagnostics go to stderr; authentication errors return exit code 4 and argument errors return exit code 2.
# Mixed-source ingestion with truthful per-source outcomes
notebooklm-skill create \
--title "Research" \
--sources https://example.com/article \
--files ./paper.pdf \
--text-sources "Interview notes" \
--strict
notebooklm-skill ask \
--notebook "Research" \
--query "Which conclusions have the strongest evidence?"
notebooklm-skill research \
--notebook "Research" \
--query "Recent independent evaluations" \
--mode deep --max-sources 10
notebooklm-skill generate \
--notebook "Research" \
--type slides --lang zh-TW \
--output ./output/deck.pptx --output-format pptx
notebooklm-skill list-artifacts --notebook "Research" --type slidesCommands resolve an exact ID, unique title, or unique title substring. Use IDs for
repeatable automation. Deletes require --yes; downloads refuse existing files or
symlinks unless an explicit safe overwrite is requested with --force.
Artifact types
Type | Default download | Notes |
| M4A | deep-dive, brief, critique, or debate |
| MP4 | explainer/brief and multiple visual styles |
| MP4 | cinematic video workflow |
| PDF or PPTX | |
| Markdown | briefing, study guide, blog, or custom |
| Markdown | report shortcut |
| JSON | JSON, Markdown, or HTML |
| JSON | JSON, Markdown, or HTML |
| JSON | immediate generation result |
| PNG | orientation, detail, and style options |
| CSV | structured extraction |
Use notebooklm-skill generate --help for the live option matrix. Long-running
generations support --no-wait, and later downloads can select --artifact-id.
Pipelines
notebooklm-pipeline research-to-article \
--sources https://example.com/a https://example.com/b \
--title "Evidence review" --audience "engineers"
notebooklm-pipeline research-to-social \
--files ./brief.pdf --platform linkedin --variants 3
notebooklm-pipeline batch-digest \
--rss https://example.com/feed.xml --max-entries 20 --qa-count 5
notebooklm-pipeline generate-all \
--files ./paper.pdf --types audio slides report mind-map \
--output-dir ./output --artifact-concurrency 2trend-to-content requires the optional trend-pulse command. Pipelines return
drafts and local artifacts; they do not publish to social platforms or remote CMSs.
MCP server
The default stdio transport is suitable for Claude Code, Cursor, and other MCP clients:
{
"mcpServers": {
"notebooklm": {
"command": "uvx",
"args": ["--from", "notebooklm-skill", "notebooklm-mcp"]
}
}
}The 13 tools cover notebook CRUD, mixed sources, grounded chat, summaries, artifact
generation/list/download, full research lifecycles, research pipelines, and trend
research. Notebook deletion requires confirm=true.
Optional HTTP mode is deliberately loopback-only:
notebooklm-mcp --http --host 127.0.0.1 --port 8765Do not expose it directly to a network. See SECURITY.md.
Additional commands
Command | Purpose |
| Setup, verify, or clear a selected auth profile |
| Install |
notebooklm-install-skill --scope project
notebooklm-auth --profile work verifyDevelopment
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'
ruff check .
ruff format --check .
mypy scripts mcp_server
pytest --cov --cov-report=term-missing
python -m build
twine check dist/*More detail: setup guide, Skill instructions, API compatibility notes, and changelog.
License
Available Tools
13 toolsnlm_add_sourceC
Add exactly one URL, text, or local file source to a notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| text | No | ||
| notebook | Yes | ||
| file_path | No | ||
| text_title | No |
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 carries the full burden. It only states the action (adds a source) without disclosing side effects, behavioral traits like whether additions are appended or replace, error handling, or return behavior beyond what the output schema may show.
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, front-loaded sentence with no wasted words. However, it is too brief; it could include more guidance without becoming verbose.
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?
With 5 parameters, no annotations, no schema coverage, and an output schema not described, the description is incomplete. It fails to convey the mutual exclusivity of source parameters, the role of text_title, and the essential notebook parameter. The tool's usage is underspecified for safe invocation.
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 add value. It correctly maps 'URL, text, local file' to url, text, file_path parameters but does not explain text_title, the required notebook parameter, or the mutual exclusivity of the source types (exactly one should be provided).
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 (Add), resource (source to a notebook), and enumerates the types (URL, text, local file). It distinguishes from sibling tools like nlm_list_sources which list sources, and nlm_ask which asks questions.
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, nor does it mention prerequisites, mutual exclusivity of source types, or what happens if the notebook does not exist. Sibling tool names are present but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_askC
Ask a source-grounded question and return answer citations.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| notebook | 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 carries full burden. It states the tool returns answer citations but does not disclose whether it is read-only, what happens if the notebook is missing, or any side effects. The behavioral transparency is minimal.
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 that efficiently conveys the core purpose. While it could add more detail without sacrificing conciseness, it avoids excessive 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?
With no annotations, no parameter details, and only a high-level outcome, the description is insufficient for complex usage. Although an output schema exists (not shown), the lack of behavioral context and parameter guidance leaves the agent underinformed.
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 2 parameters (query, notebook) with 0% description coverage. The description adds no meaning beyond the parameter names—e.g., it doesn't explain what a notebook is or how to format the query. This leaves the agent guessing about input requirements.
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 ('Ask'), the resource ('source-grounded question'), and the outcome ('return answer citations'). This distinguishes it from sibling tools like nlm_summarize (which summarizes) or nlm_generate (which generates text).
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 (e.g., nlm_summarize, nlm_research). It fails to specify prerequisites or context, leaving the agent to infer usage without differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_create_notebookA
Create a notebook with optional URL, raw-text, and local-file sources.
Returns per-source outcomes and truthful requested/succeeded/failed counts.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| sources | No | ||
| file_sources | No | ||
| text_sources | 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 carries the full burden. It discloses that the tool returns per-source outcomes and truthful counts, adding value beyond the schema. However, it does not mention side effects or permissions.
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 sentences, front-loaded with the core action and result. Every sentence is informative 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?
An output schema exists, so return values are partially covered. The description covers purpose and returns but lacks details on parameter usage, preconditions, or error handling.
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 mentions optional sources (URL, raw-text, local-file) but does not map them to specific parameters. Given 0% schema description coverage, the description adds some context but not enough to fully compensate.
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 notebook') and the resource, and distinguishes from siblings like nlm_list, nlm_delete, or nlm_add_source by focusing on creation rather than listing, deletion, or adding to existing notebooks.
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 vs alternatives (e.g., nlm_add_source for adding sources to an existing notebook). No guidance on prerequisites or when not to use is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_deleteC
Permanently delete a notebook only when confirm is true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| notebook | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses permanent deletion and conditionality on confirm, but lacks details on auth needs, side effects (e.g., cascade to artifacts), recovery options, or latency. With no annotations, the description should provide richer behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no redundancy. While efficient, it may be too terse—adding a second sentence could improve clarity without being wordy.
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 (not shown), the description omits return value details, prerequisites, and edge cases (e.g., what happens if notebook doesn't exist). Given tool complexity (2 params, no annotations), more completeness is needed.
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%, and description only adds meaning to confirm (must be true). The 'notebook' parameter remains unspecified (e.g., expected format, required scope). Does not compensate for missing schema 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?
Description clearly states the action (permanently delete) and resource (notebook) with a condition (confirm must be true). However, it does not differentiate from sibling tools like nlm_download (which might also modify state) or provide context about what 'delete' means relative to other tools.
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?
No explicit guidance on when to use this tool vs alternatives. The description implies a prerequisite (confirm true) but does not mention when deletion is appropriate, reversible alternatives, or consequences of misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_downloadB
Download an exact artifact ID (or latest) to a local path.
Existing files and symlinks are rejected unless the safe overwrite rules permit the path. Formats: slides=pdf/pptx; quiz/flashcards=json/markdown/html.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| force | No | ||
| notebook | Yes | ||
| artifact_id | No | ||
| output_path | Yes | ||
| output_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It discloses rejection of existing files/symlinks unless overwrite rules permit, but omits details on default behavior, error handling, authentication needs, or what happens with force parameter.
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 concise sentences, front-loaded with action, no unnecessary words. Every sentence adds value.
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?
Output schema exists, so return values are covered. But description lacks details on error conditions, behavior of force, and interaction between parameters. Adequate but incomplete.
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%, yet description only partially explains artifact_id (exact or latest) and hints at format mapping for type. Does not explain notebook, output_path, force, or output_format syntax, leaving significant gaps.
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 downloads an artifact (exact ID or latest) to a local path, with specific verb and resource. It distinguishes from sibling tools like nlm_list_artifacts or nlm_delete.
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?
Implies usage for downloading artifacts, but no explicit when-to-use or when-not-to-use compared to siblings. Mentions safe overwrite rules but doesn't guide on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_generateA
Generate an artifact, optionally waiting for completion.
type supports audio, video, cinematic, slides, report, study-guide,
quiz, flashcards, mind-map, infographic, and data-table. options may
contain type-specific keys such as audio_format, audio_length,
video_format, video_style, slide_format, slide_length, report_format,
custom_prompt, quantity, difficulty, orientation, detail_level, or style.
Set wait=false to return the task ID immediately for long media jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | en | |
| type | Yes | ||
| wait | No | ||
| options | No | ||
| timeout | No | ||
| notebook | Yes | ||
| source_ids | No | ||
| instructions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: optional waiting, type-specific options, and returning a task ID. However, lacks details on error handling, success states, or side effects, which is acceptable given no annotations.
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?
Description is concise with no irrelevant information. Key points are front-loaded. The list of types and options is dense but necessary.
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?
Covers the core generation behavior and wait flag, but misses several parameters (lang, timeout, source_ids, instructions) and does not detail the output schema (though it exists separately). Adequate for a tool with many params but could be more 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?
Adds meaning for 'type' and 'options' parameters by listing supported values and keys, but leaves 'lang', 'timeout', 'source_ids', and 'instructions' unexplained. With 0% schema coverage, more parameter documentation would be helpful.
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 'Generate' and resource 'artifact', listing specific supported types. It distinguishes itself from siblings like nlm_list_artifacts and nlm_create_notebook by focusing on generation.
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?
Provides some guidance on using the wait parameter for long jobs but does not explicitly state when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_listA
List NotebookLM notebooks with IDs, titles, and source counts.
| 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?
The description accurately describes the tool as a read operation that returns a list of notebooks with specific fields. With no annotations provided, the description fully discloses the behavioral traits relevant to selection and invocation.
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 efficiently conveys the tool's purpose. There is no wasted text, and every word 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 has zero parameters and an output schema (not shown but referenced), the description is complete. It clearly states what the tool does, leaving no questions about its functionality.
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 the tool has no parameters, the description provides all necessary semantic context. The baseline for zero-parameter tools is 4, and the description adds no conflicting or missing 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 clearly states the action (list), the resource (NotebookLM notebooks), and the returned fields (IDs, titles, source counts). It effectively distinguishes from sibling tools like nlm_list_artifacts and nlm_list_sources, which list different resources.
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 use when you need an overview of notebooks, but it does not provide explicit guidance on when to use this tool versus alternatives such as nlm_list_artifacts. No exclusions or when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_list_artifactsC
List actual generated artifacts, optionally filtered by canonical type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| notebook | 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 behavior. It only mentions optional filtering but omits whether listing is read-only, if authentication is needed, pagination, or any 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?
Single sentence is concise but lacks necessary detail. Could be expanded to include notebook context without losing 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 has two parameters, one required and unexplained, and the output schema exists but is not referenced, the description is insufficient for correct invocation.
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 has 0% description coverage. Description only explains 'type' as canonical filter, but the required 'notebook' parameter is not explained at all, despite being mandatory.
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?
Clearly identifies the tool as listing 'actual generated artifacts' with an optional filter, distinguishing it from siblings like nlm_list_sources. However, 'actual' is ambiguous.
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?
No guidance on when to use this tool versus alternatives (e.g., nlm_list, nlm_list_sources). The description does not specify context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_list_sourcesC
List ingested sources with current kind and processing status.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | 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 carry the burden of disclosure. It only states the basic function, lacking any behavioral traits such as authentication needs, error conditions, or 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 a single concise sentence, but it lacks structure (no front-loading of key info) and does not provide any supplementary details.
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?
With only one parameter and an output schema, the description is minimal. It does not cover the relationship between sources and notebook, nor any edge cases. For a simple list tool, it is barely 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?
Schema description coverage is 0%, and the description does not mention the 'notebook' parameter at all. It fails to explain what the parameter represents or how to use it.
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 the resource 'ingested sources', specifying that it returns 'current kind and processing status'. This distinguishes it from siblings like nlm_list_artifacts and nlm_list.
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 over alternatives, no prerequisites, and no exclusions. It simply states the function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_researchC
Run pinned web research, wait for a terminal state, and import findings.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | fast | |
| wait | No | ||
| query | Yes | ||
| timeout | No | ||
| notebook | Yes | ||
| max_sources | No | ||
| import_results | No |
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. The description mentions waiting and importing findings but does not disclose side effects, data mutation, authorization needs, or error behavior. The tool's mutability is unclear.
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, which is concise, but it omits essential details. It is front-loaded but at the cost of clarity and completeness.
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 7 parameters, 2 required, no schema descriptions, no annotations, and an output schema that is not explained, the description is severely incomplete for a tool likely performing complex research operations.
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%, and the description adds no meaning for any of the 7 parameters. The agent gains no insight into what each parameter does beyond its name and type.
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: running pinned web research, waiting for a terminal state, and importing findings. It clearly identifies the verb 'run research' and resource 'pinned web', but the term 'pinned' is not explained, and sibling differentiation is weak.
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?
No guidance on when to use this tool versus alternatives like nlm_trend_research or nlm_research_pipeline. There are no exclusions or context cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_research_pipelineC
Create a notebook, ingest URLs, ask questions, and assemble content.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| sources | Yes | ||
| questions | Yes | ||
| output_format | No | article |
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 but fails to mention side effects, permissions, or atomicity. The tool creates resources and processes data, but the description does not warn about potential costs, limits, or the scope of the pipeline.
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, but it is under-specified for the tool's complexity. It lacks structure and omits important details, making it ineffective despite being brief.
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 (4 parameters, many siblings, no annotations), the description is incomplete. It does not explain the pipeline's steps, the relationship between inputs and outputs, or what the returned artifact represents, even though an output schema exists.
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% and the description adds no parameter details. It does not explain what 'sources' (URLs?), 'questions' (text?), or 'output_format' (article/thread/report) mean, leaving the agent without semantic guidance beyond the schema types.
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 lists actions ('Create a notebook, ingest URLs, ask questions, and assemble content') but does not specify the primary purpose or how it differs from sibling tools like nlm_create_notebook or nlm_research. The verb-resource combination is unclear and lacks 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?
No guidance on when to use this tool vs alternatives such as separate calls to nlm_create_notebook, nlm_add_source, nlm_ask, and nlm_generate. The description does not provide context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_summarizeD
Return the NotebookLM-generated summary for a notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | 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 only says 'return the summary' without explaining side effects, required notebook state, or whether it's read-only. This is insufficient for a mutation-aware agent.
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, which is concise but at the expense of completeness. It lacks any structure or additional details that would help an agent. Under-specification detracts from 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 (one parameter, output schema exists but not shown), the description fails to provide essential context such as what the returned summary looks like, when it's available, or error conditions. It is incomplete even for a simple 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?
The input schema has one parameter 'notebook' with 0% description coverage. The description does not explain what the parameter represents (e.g., ID vs title, required format), adding no value beyond the schema definition.
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 it returns a summary from NotebookLM, which is a clear verb+resource. However, it does not differentiate from sibling tools like nlm_ask, which might also return information. The purpose is clear but lacks 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. No context about prerequisites or when not to use it is given, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nlm_trend_researchC
Fetch trend-pulse topics, research/import each, and create grounded drafts.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | TW | |
| count | No | ||
| platform | No | threads |
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 carries the full burden. It mentions a multi-step process (fetch, research, create) but does not elaborate on side effects, authentication needs, rate limits, or what 'grounded drafts' imply. The description is too brief to be transparent.
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 of 10 words, which is concise. However, it lacks structure and front-loads the actions without separating the steps clearly. It could be improved by listing the phases.
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 three parameters (including an enum and defaults) and the availability of an output schema, the description is insufficient. It does not explain the returned data, parameter choices, or the expected workflow. The output schema likely covers the return, but description should still summarize key points.
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%, and the description does not mention any of the three parameters (geo, count, platform). The description fails to add meaning beyond the schema, leaving agents without guidance on parameter usage.
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 fetches trend-pulse topics, researches/imports them, and creates grounded drafts. The verb 'Fetch' and action 'research/import' and 'create' specify what the tool does, but 'trend-pulse topics' is vague. It implies trending content, distinguishing it from general research tools like nlm_research.
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?
No guidance on when to use this tool versus alternatives like nlm_research or nlm_research_pipeline. The description does not mention prerequisites, when not to use, or specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All tools have clearly distinct purposes: creating, listing, deleting notebooks; adding/list sources; asking questions; summarizing; generating artifacts; downloading; and various research pipelines. No significant overlap.
All tools use 'nlm_' prefix with snake_case verbs (e.g., nlm_list, nlm_ask) or verb_noun phrases (e.g., nlm_create_notebook). Minor inconsistency: some are just verbs while others include nouns, but pattern is predictable.
13 tools is appropriate for a notebook management and research service. Each tool covers a distinct operation without redundancy.
Covers core CRUD for notebooks, source management, Q&A, summary, artifact generation, and download. Missing minor operations like source deletion or notebook renaming.
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
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Extract structured insights from videos, podcasts, articles, and PDFs with multi-model AI
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables interaction with Google's NotebookLM through natural language to create and manage notebooks, add sources from URLs/YouTube/Drive, perform AI-powered research and analysis, and generate audio overviews, videos, infographics, and slide decks from research content.326MIT
- FlicenseNot gradedqualityFmaintenanceIntegrates Google NotebookLM into Claude to allow users to manage notebooks, add sources, and generate diverse content like podcasts, slides, and reports. It enables natural language interaction with notebook sources across Claude Desktop and Claude Code.47
- AlicenseNot gradedqualityCmaintenanceBridges Claude Code/Cowork with Google NotebookLM for AI-powered research, source analysis, chat, and content generation through a structured tool interface.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Google NotebookLM notebooks directly from Claude Desktop (MCP) and Claude Code (CLI), providing citation-backed answers from Gemini.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/claude-world/notebooklm-skill'
If you have feedback or need assistance with the MCP directory API, please join our Discord server