Skip to main content
Glama

download_all_artifacts

Bulk-download all completed artifacts from one or every NotebookLM notebook into per-notebook folders. Unfinished or failed items are skipped; existing files can be preserved with skip_existing.

Instructions

Download all completed studio artifacts of one notebook — or every notebook.

Creates a subdirectory of output_dir named after each notebook title and saves every completed artifact there, named after its title with the type's default extension (report → .md, mind_map → .json, video → .mp4, slide_deck → .pdf/.pptx, ...). Artifacts that are still generating or failed are skipped and listed in the result. A failure on one artifact (or one notebook in a sweep) does not stop the others.

Args: notebook_id: Notebook UUID (omit when all_notebooks=True) output_dir: Base directory for the per-notebook folders, relative to the download directory (default: the download directory itself). Paths outside it are refused; see download_artifact. artifact_types: Restrict to these types, e.g. ["video", "slide_deck", "mind_map", "report"]. Default: all types. output_format: For quiz/flashcards only: json|markdown|html slide_deck_format: For slide decks only: pdf (default) or pptx all_notebooks: Sweep every notebook in the account instead of one skip_existing: Skip artifacts whose target file already exists — makes repeated runs incremental

Returns: dict with status, output_dir, and per-artifact items (single notebook) or per-notebook outcomes (sweep), plus downloaded/failed counts

Example: download_all_artifacts(notebook_id="abc123", output_dir="exports") download_all_artifacts(all_notebooks=True, output_dir="exports", skip_existing=True)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
output_dirNo.
notebook_idNo
all_notebooksNo
output_formatNojson
skip_existingNo
artifact_typesNo
slide_deck_formatNopdf

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Addedv0.9.5

TDQS

A4.6/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full behavioral burden and does well by disclosing partial-failure handling, skipped in-progress/failed artifacts, failure isolation across items, and path restrictions. It does not explicitly state whether existing files are overwritten when skip_existing=False, which is a relevant side-effect for a file-writing tool, so it loses a point.

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

Conciseness5/5

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

The description is appropriately detailed for a 7-parameter tool, with a clear opening summary, an Args section that mirrors the schema, a Returns summary, and two examples. Every sentence contributes useful information, and the structure is easy to scan. No filler or repetition.

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

Completeness5/5

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

For a complex, multi-mode download tool with no annotations, the description covers all important aspects: scope selection, directory creation, extension mapping, failure behavior, parameter constraints, and return shape. The examples clarify realistic usage. There is no meaningful gap an agent would need to guess about before calling it.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully documents all 7 parameters with meaningful details: notebook_id vs all_notebooks, output_dir semantics, artifact_types, output_format scoping, slide_deck_format selection, and skip_existing behavior. It even includes examples of default file extensions. This fully compensates for the absent schema descriptions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Download all completed studio artifacts of one notebook — or every notebook.' It clearly distinguishes from the singular sibling download_artifact by emphasizing the bulk scope, and explains the output structure. This leaves no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description provides clear when-to-use context: use a single notebook_id or sweep with all_notebooks, restrict artifact types, and use skip_existing for incremental runs. It even references download_artifact for path-refusal details. It could more explicitly say 'for downloading a single artifact, use download_artifact instead,' but the contrast with the sibling is otherwise clear from the name and scope.

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

Latest Blog Posts

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/jacob-bd/gemini-notebook-mcp-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server