Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jacob-bd/notebooklm-mcp-cli/llms.txt

Use this file to discover all available pages before exploring further.

The NotebookLM MCP server registers 39 tools that any MCP-compatible AI assistant can call on your behalf. This page documents every tool: what it does, the parameters it accepts, and a usage example. Tools are organized by category — use the accordions below to explore each group. For setup instructions, see the MCP Overview.
Several tools are unified — a single tool that handles multiple related operations via a source_type, artifact_type, or action parameter. Prefer these over chaining multiple single-purpose calls; they save context and reduce round-trips.

Notebooks

List all NotebookLM notebooks in your account.
max_results
integer
default:"100"
Maximum number of notebooks to return.
notebook_list()
notebook_list(max_results=50)
Create a new, empty notebook.
title
string
Optional display title for the new notebook.
notebook_create(title="AI Strategy Research")
Retrieve full details for a notebook, including its ID, title, URL, source count, and a list of all sources.
notebook_id
string
required
Notebook UUID.
notebook_get(notebook_id="abc123")
Ask NotebookLM to generate an AI-written summary of the notebook’s contents and return a list of suggested discussion topics.
notebook_id
string
required
Notebook UUID.
Returns summary (markdown) and suggested_topics (list of strings).
notebook_describe(notebook_id="abc123")
Change the display title of an existing notebook.
notebook_id
string
required
Notebook UUID.
new_title
string
required
New display title.
notebook_rename(notebook_id="abc123", new_title="Q3 Competitive Research")
Permanently delete a notebook and all its contents. This action cannot be undone. The AI must ask the user to confirm before setting confirm=True.
notebook_id
string
required
Notebook UUID.
confirm
boolean
default:"false"
Must be True after explicit user approval. The tool returns an error if this is False.
notebook_delete(notebook_id="abc123", confirm=True)

Sources

Add any type of source to a notebook. This single tool replaces separate URL, text, file, and Drive add operations.
notebook_id
string
required
Notebook UUID.
source_type
string
required
Type of source: url, text, file, or drive.
url
string
Web page or YouTube URL. Used when source_type=url.
urls
array
List of URLs to add in bulk. Alternative to url for batch URL imports.
text
string
Raw text content to paste as a source. Used when source_type=text.
title
string
Optional display title (primarily for text sources).
file_path
string
Absolute path to a local file. Used when source_type=file. Supported formats: PDF, TXT, MD, DOCX, CSV, EPUB, MP3, M4A, WAV, AAC, OGG, OPUS, MP4, JPG, JPEG, PNG, GIF, WEBP.
document_id
string
Google Drive document ID. Used when source_type=drive.
doc_type
string
default:"doc"
Drive document type: doc, slides, sheets, or pdf. Only used when source_type=drive.
wait
boolean
default:"false"
If True, block until the source finishes processing before returning.
wait_timeout
number
default:"120.0"
Maximum seconds to wait when wait=True.
# Add a URL
source_add(notebook_id="abc123", source_type="url", url="https://example.com/article")

# Add multiple URLs at once
source_add(notebook_id="abc123", source_type="url", urls=["https://a.com", "https://b.com"])

# Add a URL and wait for processing to complete
source_add(notebook_id="abc123", source_type="url", url="https://example.com", wait=True)

# Add pasted text
source_add(notebook_id="abc123", source_type="text", text="Key findings from the meeting...", title="Meeting Notes")

# Upload a local PDF
source_add(notebook_id="abc123", source_type="file", file_path="/home/user/report.pdf", wait=True)

# Add a Google Drive document
source_add(notebook_id="abc123", source_type="drive", document_id="1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", doc_type="doc")
List all sources in a notebook and their Drive sync status (fresh or stale). Call this before source_sync_drive to identify which sources need updating.
notebook_id
string
required
Notebook UUID.
source_list_drive(notebook_id="abc123")
Re-sync one or more Google Drive sources so they reflect the latest document content. Call source_list_drive first to get the IDs of stale sources.
source_ids
array
required
List of source UUIDs to sync.
confirm
boolean
default:"false"
Must be True after user approval.
source_sync_drive(source_ids=["src_uuid_1", "src_uuid_2"], confirm=True)
Change the display title of an existing source in a notebook.
notebook_id
string
required
Notebook UUID containing the source.
source_id
string
required
Source UUID to rename.
new_title
string
required
New display title for the source.
source_rename(notebook_id="abc123", source_id="src_uuid_1", new_title="Q3 Earnings Report")
Permanently delete one or more sources. This action cannot be undone.
source_id
string
Single source UUID to delete.
source_ids
array
List of source UUIDs for bulk deletion. Alternative to source_id.
confirm
boolean
default:"false"
Must be True after explicit user approval.
source_delete(source_id="src_uuid_1", confirm=True)
source_delete(source_ids=["src_uuid_1", "src_uuid_2"], confirm=True)
Get an AI-generated summary of a source, including extracted keyword chips. Returns summary (markdown with bold keywords) and keywords (list).
source_id
string
required
Source UUID.
source_describe(source_id="src_uuid_1")
Retrieve the raw indexed text of a source without any AI processing. Much faster than notebook_query for content export. Works for PDFs, web pages, pasted text, and YouTube transcripts.Returns content, title, source_type, and char_count.
source_id
string
required
Source UUID.
source_get_content(source_id="src_uuid_1")

Querying

Ask the NotebookLM AI a question about the sources already in a notebook. Responses are grounded in the notebook’s sources and include citations. Note: This tool is for querying existing content — use research_start to find new sources on the web or in Drive.All queries sent through this tool automatically persist in your NotebookLM web UI chat history.
notebook_id
string
required
Notebook UUID.
query
string
required
The question to ask.
source_ids
array
Restrict the query to specific sources. Defaults to all sources.
conversation_id
string
Pass the conversation_id from a previous response to ask follow-up questions in the same thread.
timeout
number
default:"120.0"
Request timeout in seconds. Overrides NOTEBOOKLM_QUERY_TIMEOUT env var.
# Basic query
notebook_query(notebook_id="abc123", query="What are the three most important takeaways?")

# Follow-up in the same conversation
notebook_query(notebook_id="abc123", query="Can you expand on point two?", conversation_id="conv_xyz")

# Query specific sources only
notebook_query(notebook_id="abc123", query="What does this source say about security?", source_ids=["src_1", "src_2"])
Set the AI chat goal and response length for a notebook. Changes affect all future notebook_query calls on that notebook.
notebook_id
string
required
Notebook UUID.
goal
string
default:"default"
Chat goal preset: default, learning_guide, or custom.
custom_prompt
string
Custom system instructions. Required when goal=custom. Maximum 10,000 characters.
response_length
string
default:"default"
Desired response length: default, longer, or shorter.
chat_configure(notebook_id="abc123", goal="learning_guide", response_length="longer")
chat_configure(notebook_id="abc123", goal="custom", custom_prompt="Always respond in bullet points.")
Start a notebook query asynchronously. Use this instead of notebook_query when querying notebooks with many sources (50+) where the response may exceed 60 seconds. Returns immediately with a query_id. Poll notebook_query_status until the result is ready.
notebook_id
string
required
Notebook UUID.
query
string
required
The question to ask.
source_ids
array
Restrict the query to specific sources. Defaults to all sources.
conversation_id
string
Pass the conversation_id from a previous response to ask follow-up questions in the same thread.
timeout
number
default:"120.0"
Request timeout in seconds. Overrides NOTEBOOKLM_QUERY_TIMEOUT env var.
result = notebook_query_start(notebook_id="abc123", query="Summarize all findings")
# result["query_id"] → poll with notebook_query_status
Check the status of an async query started with notebook_query_start. Poll every few seconds until status is completed or error.
query_id
string
required
The query ID returned by notebook_query_start.
notebook_query_status(query_id="qry_abc123")

Studio

Create any type of NotebookLM studio artifact. This is the unified creation tool that replaces nine separate create operations. Requires user confirmation before proceeding.
notebook_id
string
required
Notebook UUID.
artifact_type
string
required
Type of artifact to create. One of: audio, video, report, quiz, flashcards, mind_map, slide_deck, infographic, data_table.
confirm
boolean
default:"false"
Must be True after user approval. Without confirmation the tool returns a preview of the settings.
source_ids
array
Source IDs to include. Defaults to all sources in the notebook.
Audio options (artifact_type=audio):
audio_format
string
default:"deep_dive"
deep_dive, brief, critique, or debate.
audio_length
string
default:"default"
short, default, or long.
Video options (artifact_type=video):
video_format
string
default:"explainer"
explainer, brief, or cinematic.
visual_style
string
default:"auto_select"
auto_select, custom, classic, whiteboard, kawaii, anime, watercolor, retro_print, heritage, or paper_craft.
video_style_prompt
string
Custom style description when visual_style=custom.
Infographic options (artifact_type=infographic):
orientation
string
default:"landscape"
landscape, portrait, or square.
detail_level
string
default:"standard"
concise, standard, or detailed.
infographic_style
string
default:"auto_select"
auto_select, sketch_note, professional, bento_grid, editorial, instructional, bricks, clay, anime, kawaii, or scientific.
Slide deck options (artifact_type=slide_deck):
slide_format
string
default:"detailed_deck"
detailed_deck or presenter_slides.
slide_length
string
default:"default"
short or default.
Report options (artifact_type=report):
report_format
string
default:"Briefing Doc"
Briefing Doc, Study Guide, Blog Post, or Create Your Own.
custom_prompt
string
Custom instructions. Used when report_format=Create Your Own.
Quiz options (artifact_type=quiz):
question_count
integer
default:"2"
Number of questions to generate.
Shared options (most artifact types):
difficulty
string
default:"medium"
For flashcards and quiz: easy, medium, or hard.
language
string
BCP-47 language code (e.g. en, es, fr, de, ja). Defaults to NOTEBOOKLM_HL env var or en.
focus_prompt
string
Optional free-text focus instruction applied to all artifact types.
# Audio podcast (deep dive format)
studio_create(notebook_id="abc123", artifact_type="audio", audio_format="deep_dive", confirm=True)

# Video with cinematic style
studio_create(notebook_id="abc123", artifact_type="video", video_format="cinematic", visual_style="watercolor", confirm=True)

# Briefing doc report
studio_create(notebook_id="abc123", artifact_type="report", report_format="Briefing Doc", confirm=True)

# Study quiz with 10 questions
studio_create(notebook_id="abc123", artifact_type="quiz", question_count=10, difficulty="hard", confirm=True)

# Flashcards
studio_create(notebook_id="abc123", artifact_type="flashcards", difficulty="medium", confirm=True)

# Professional infographic
studio_create(notebook_id="abc123", artifact_type="infographic", orientation="landscape", infographic_style="professional", confirm=True)

# Slide deck
studio_create(notebook_id="abc123", artifact_type="slide_deck", slide_format="detailed_deck", confirm=True)
After calling studio_create, poll studio_status until the artifact’s status shows completed. Generation typically takes 1–5 minutes depending on artifact type.
Check the status of all studio artifacts in a notebook. Also supports renaming an artifact or listing all supported artifact types.
notebook_id
string
required
Notebook UUID.
action
string
default:"status"
status (default), rename, or list_types.
artifact_id
string
Required when action=rename.
new_title
string
Required when action=rename.
Returns artifacts list (each with artifact_id, title, type, status, and url) and a summary with counts.
# Poll until all artifacts are completed
studio_status(notebook_id="abc123")

# Rename an artifact
studio_status(notebook_id="abc123", action="rename", artifact_id="art_xyz", new_title="Weekly Podcast Ep 12")

# List all artifact types and their options
studio_status(notebook_id="abc123", action="list_types")
Permanently delete a studio artifact. Call studio_status first to list artifact IDs.
notebook_id
string
required
Notebook UUID.
artifact_id
string
required
Artifact UUID (from studio_status).
confirm
boolean
default:"false"
Must be True after explicit user approval.
studio_delete(notebook_id="abc123", artifact_id="art_xyz", confirm=True)
Apply targeted revisions to individual slides in an existing slide deck. Creates a new artifact — the original is not modified. Only slide decks support revision. Poll studio_status after calling to wait for the new deck.
notebook_id
string
required
Notebook UUID.
artifact_id
string
required
UUID of the existing slide deck to revise (from studio_status).
slide_instructions
array
required
List of revision instructions. Each item must have a slide (1-based slide number) and instruction (description of the change).
confirm
boolean
default:"false"
Must be True after user approval.
studio_revise(
    notebook_id="abc123",
    artifact_id="art_xyz",
    slide_instructions=[
        {"slide": 1, "instruction": "Make the title larger and bolder"},
        {"slide": 3, "instruction": "Replace the bullet list with a comparison table"}
    ],
    confirm=True
)

Downloads

Download a completed studio artifact to a local file. This unified tool replaces nine separate download commands. Ensure studio_status shows completed before downloading.
notebook_id
string
required
Notebook UUID.
artifact_type
string
required
Type of artifact: audio, video, report, mind_map, slide_deck, infographic, data_table, quiz, or flashcards.
output_path
string
required
Local file path where the artifact should be saved (e.g. podcast.mp3, slides.pdf).
artifact_id
string
Specific artifact UUID. Uses the most recent completed artifact of artifact_type if not provided.
output_format
string
default:"json"
For quiz and flashcards only: json, markdown, or html.
slide_deck_format
string
default:"pdf"
For slide_deck only: pdf or pptx.
# Download audio podcast
download_artifact(notebook_id="abc123", artifact_type="audio", output_path="podcast.mp3")

# Download slide deck as PowerPoint
download_artifact(notebook_id="abc123", artifact_type="slide_deck", output_path="slides.pptx", slide_deck_format="pptx")

# Download quiz as HTML
download_artifact(notebook_id="abc123", artifact_type="quiz", output_path="quiz.html", output_format="html")

# Download a specific artifact by ID
download_artifact(notebook_id="abc123", artifact_type="video", artifact_id="art_xyz", output_path="overview.mp4")

Exports

Export a completed studio artifact to Google Docs or Google Sheets. Useful for reports, data tables, and other text-based artifacts. Returns the URL to the created Google Doc or Sheet.
notebook_id
string
required
Notebook UUID.
artifact_id
string
required
Artifact UUID (from studio_status).
export_type
string
required
Destination format: docs (Google Docs) or sheets (Google Sheets). Data tables export to sheets; reports export to docs.
title
string
Optional title for the exported document.
# Export a report to Google Docs
export_artifact(notebook_id="abc123", artifact_id="art_xyz", export_type="docs", title="My Report")

# Export a data table to Google Sheets
export_artifact(notebook_id="abc123", artifact_id="art_xyz", export_type="sheets")

Research

Launch a research task that searches the web or your Google Drive for sources relevant to a query. Returns immediately with a task_id. Poll research_status to wait for results, then call research_import to add the discovered sources to the notebook.
query
string
required
What to search for (e.g. "quantum computing breakthroughs 2025").
source
string
default:"web"
Where to search: web or drive.
mode
string
default:"fast"
Research depth: fast (~30 seconds, ~10 sources) or deep (~5 minutes, ~40 sources, web only).
notebook_id
string
Existing notebook to attach results to. Creates a new notebook if not provided (requires title).
title
string
Title for the new notebook to create. Used when notebook_id is not provided.
# Start deep web research
research_start(query="enterprise AI ROI metrics", mode="deep", notebook_id="abc123")

# Fast research with auto-created notebook
research_start(query="cloud marketplace trends", mode="fast", title="Cloud Research")
Block until a research task completes or the timeout is reached. Returns a summary report and list of discovered sources.
notebook_id
string
required
Notebook UUID.
max_wait
integer
default:"300"
Maximum seconds to wait. Set to 0 for a single non-blocking poll.
poll_interval
integer
default:"30"
Seconds between status checks.
task_id
string
Specific task ID to poll (from research_start).
query
string
Optional query string for fallback task matching when task_id is unavailable (deep research).
compact
boolean
default:"true"
Truncate the report and limit sources shown to save tokens. Set to False for full details.
research_status(notebook_id="abc123", max_wait=300)
research_status(notebook_id="abc123", task_id="task_xyz", max_wait=600, compact=False)
Import sources discovered by a completed research task into the notebook. Call after research_status returns status="completed".
notebook_id
string
required
Notebook UUID.
task_id
string
required
Research task ID (from research_start or research_status).
cited_only
boolean
default:"false"
If True, import only the sources that were actually cited in the research report. Overrides source_indices.
source_indices
array
Specific source indices to import. Defaults to all discovered sources. Ignored when cited_only=True.
timeout
number
default:"300.0"
Import timeout in seconds. Increase for large notebooks.
# Import only cited sources (recommended for quality filtering)
research_import(notebook_id="abc123", task_id="task_xyz", cited_only=True)

# Import all discovered sources
research_import(notebook_id="abc123", task_id="task_xyz", timeout=600)

# Import specific sources by index
research_import(notebook_id="abc123", task_id="task_xyz", source_indices=[0, 1, 2, 5])

Notes

Create, list, update, and delete notes in a notebook. All note operations go through this single unified tool.
notebook_id
string
required
Notebook UUID.
action
string
required
Operation to perform: create, list, update, or delete.
note_id
string
Note UUID. Required for update and delete.
content
string
Note body text. Required for create, optional for update.
title
string
Note display title. Optional for create and update.
confirm
boolean
default:"false"
Must be True for action=delete.
note(notebook_id="abc123", action="list")
note(notebook_id="abc123", action="create", content="Key insight from today's meeting.", title="Meeting Insight")
note(notebook_id="abc123", action="update", note_id="note_xyz", content="Updated insight text.")
note(notebook_id="abc123", action="delete", note_id="note_xyz", confirm=True)

Sharing

Retrieve the current sharing configuration for a notebook, including whether it is public, the access level, the public link (if any), and the list of collaborators.
notebook_id
string
required
Notebook UUID.
notebook_share_status(notebook_id="abc123")
Invite someone to collaborate on a notebook by email address.
notebook_id
string
required
Notebook UUID.
email
string
required
Email address of the person to invite.
role
string
default:"viewer"
Collaboration role: viewer or editor.
notebook_share_invite(notebook_id="abc123", email="colleague@example.com", role="editor")
Invite multiple collaborators to a notebook in a single request. Requires user confirmation before proceeding.
notebook_id
string
required
Notebook UUID.
recipients
array
required
List of recipient objects, each with an email key (string) and an optional role key (viewer or editor, defaults to viewer).
confirm
boolean
default:"false"
Must be True after explicit user approval.
notebook_share_batch(
    notebook_id="abc123",
    recipients=[
        {"email": "alice@example.com", "role": "editor"},
        {"email": "bob@example.com", "role": "viewer"}
    ],
    confirm=True
)

Auth

Reload authentication tokens from disk. Call this after running nlm login in a terminal so the MCP server picks up the fresh cookies without a restart. Also attempts headless browser re-authentication if a saved Chrome profile exists.
refresh_auth()
refresh_auth() reloads tokens from disk but cannot revive expired credentials. If your Google session has fully expired, run nlm login in a terminal first.
Save NotebookLM cookies directly from a browser cookie header. This is a fallback method — prefer nlm login (automated CLI) first.
cookies
string
required
Cookie header string copied from Chrome DevTools Network tab.
request_body
string
Optional raw POST body from a NotebookLM network request. Used to auto-extract the CSRF token.
request_url
string
Optional request URL from a NotebookLM network request. Used to auto-extract the session ID and build label.
save_auth_tokens(
    cookies="SID=xxx; HSID=xxx; SSID=xxx; APISID=xxx; SAPISID=xxx; ...",
    request_body="at=ABC123&...",
    request_url="https://notebooklm.google.com/...?f.sid=XYZ&bl=ABC..."
)

Server

Return the currently installed version, the latest version on PyPI, whether an update is available, and the current authentication status. The AI assistant will suggest updating if update_available is True.
server_info()
Returns:
  • version — installed version string
  • latest_version — latest PyPI version (or null if check failed)
  • update_availabletrue if a newer version exists
  • auth_statusconfigured, stale, unverified, not_configured, or error
  • update_commanduv tool upgrade notebooklm-mcp-cli

Batch & Cross-Notebook

Perform the same operation across multiple notebooks at once. Target notebooks by name, by tag, or by using all=True for all notebooks.
action
string
required
Operation to perform: query, add_source, create, delete, or studio.
notebook_names
string
Comma-separated notebook names or IDs to target.
tags
string
Comma-separated tags to select target notebooks.
all
boolean
default:"false"
Apply the action to all notebooks.
query
string
Question to ask each notebook. Required for action=query.
source_url
string
URL to add to each notebook. Required for action=add_source.
titles
string
Comma-separated titles for new notebooks. Required for action=create.
artifact_type
string
default:"audio"
Artifact type for action=studio: audio, video, report, etc.
confirm
boolean
default:"false"
Required for action=delete. Must be True after user approval.
# Query multiple notebooks
batch(action="query", query="What are the key findings?", notebook_names="AI Research, Dev Tools")

# Add the same URL to all tagged notebooks
batch(action="add_source", source_url="https://example.com/report", tags="ai,research")

# Create three notebooks at once
batch(action="create", titles="Project A, Project B, Project C")

# Delete notebooks by name (requires confirm)
batch(action="delete", notebook_names="Old Draft, Temp Notes", confirm=True)

# Generate audio podcasts for all tagged notebooks
batch(action="studio", artifact_type="audio", tags="research", confirm=True)
Ask the same question across multiple notebooks and receive aggregated answers with per-notebook citations. Useful for synthesis and comparison tasks.
query
string
required
Question to ask across all targeted notebooks.
notebook_names
string
Comma-separated notebook names or IDs.
tags
string
Comma-separated tags to select target notebooks.
all
boolean
default:"false"
Query all notebooks.
cross_notebook_query(query="Compare the main approaches discussed", notebook_names="Notebook A, Notebook B")
cross_notebook_query(query="Summarize the main conclusions", tags="ai,research")
cross_notebook_query(query="What are the recurring themes?", all=True)

Pipelines

Run automated multi-step workflows that chain multiple tools together. Built-in pipelines cover common end-to-end tasks.
action
string
required
list to see available pipelines, or run to execute one.
notebook_id
string
Target notebook UUID. Required for action=run.
pipeline_name
string
Name of the pipeline to run. Required for action=run.
input_url
string
Input URL for the pipeline (used by ingest-and-podcast and research-and-report).
Built-in pipelines:
  • ingest-and-podcast — Add a URL source and generate an audio podcast
  • research-and-report — Run deep research and generate a briefing doc
  • multi-format — Generate audio, slide deck, and briefing doc in one pass
# List available pipelines
pipeline(action="list")

# Run ingest-and-podcast end-to-end
pipeline(action="run", notebook_id="abc123", pipeline_name="ingest-and-podcast", input_url="https://example.com/article")

# Run research-and-report
pipeline(action="run", notebook_id="abc123", pipeline_name="research-and-report", input_url="https://example.com")

Labels

Organize sources in a notebook into thematic categories using AI-generated or manually managed labels. Requires at least 5 sources for auto-labeling. Sources can belong to multiple labels simultaneously.
notebook_id
string
required
Notebook UUID.
action
string
required
Operation to perform: auto, list, reorganize, create, rename, set_emoji, move_source, or delete.
label_id
string
Label UUID. Required for rename, set_emoji, move_source, and delete.
label_ids
array
List of label UUIDs for batch delete. Alternative to label_id for action=delete.
name
string
Label display name. Required for create and rename.
emoji
string
Emoji character to set on a label (e.g. "📊"). Use "" to clear. Required for set_emoji.
source_id
string
Source UUID to assign to a label. Required for move_source.
unlabeled_only
boolean
default:"false"
For reorganize: if True, only label sources not yet assigned to any label (no confirmation needed). If False, replaces all existing labels from scratch (requires confirm=True).
confirm
boolean
default:"false"
Required for delete and for reorganize with unlabeled_only=False.
# AI auto-label all sources
label(notebook_id="abc123", action="auto")

# List current labels
label(notebook_id="abc123", action="list")

# Re-categorize everything from scratch
label(notebook_id="abc123", action="reorganize", confirm=True)

# Only label sources not yet in any category
label(notebook_id="abc123", action="reorganize", unlabeled_only=True)

# Create a new label with an emoji
label(notebook_id="abc123", action="create", name="Research", emoji="📚")

# Rename a label
label(notebook_id="abc123", action="rename", label_id="lbl_xyz", name="Core Research")

# Set an emoji on a label
label(notebook_id="abc123", action="set_emoji", label_id="lbl_xyz", emoji="🎯")

# Assign a source to a label
label(notebook_id="abc123", action="move_source", label_id="lbl_xyz", source_id="src_abc")

# Delete a label (sources are preserved)
label(notebook_id="abc123", action="delete", label_id="lbl_xyz", confirm=True)
action=delete permanently removes the label. Sources assigned to the label are not deleted — they remain in the notebook.

Tags

Add tags to notebooks for organization, list tagged notebooks, and use smart select to find notebooks relevant to a query by tag matching.
action
string
required
Operation: add, remove, list, or select.
notebook_id
string
Notebook UUID. Required for add and remove.
tags
string
Comma-separated tag names. Required for add and remove.
query
string
Natural language query for smart tag matching. Used with action=select.
# Add tags to a notebook
tag(action="add", notebook_id="abc123", tags="ai,research,llm")

# Remove a tag
tag(action="remove", notebook_id="abc123", tags="llm")

# List all tagged notebooks
tag(action="list")

# Find notebooks relevant to a query by tag
tag(action="select", query="ai research papers")

Build docs developers (and LLMs) love