Skip to main content
Glama
DevstackK

Notebooklm-Unofficial-API-MCP

by DevstackK

studio_download

Download generated NotebookLM artifacts such as audio, video, slide decks, reports, or mind maps by notebook name or ID, targeting a specific artifact or type.

Instructions

Download a generated artifact. Accepts a notebook name or ID.

Target the artifact in ONE of two ways (exactly one):

  • artifact — a name-or-id ref (title / id / unique-id-prefix), the form the other artifact_* tools take; resolves to its type + id.

  • artifact_type — a registry-advertised type, optionally with artifact_id (full or unique-prefix) for a specific one; omit artifact_id to get the latest artifact of that type.

output_format overrides the default where the selected artifact type supports it. The tool schema advertises the current type and format enums.

Over stdio the artifact is written to path (required). Over the remote (http) connector the server filesystem is unreachable, so the tool returns a clickable resource_link plus {"status": "download_ready", "url": …} — a short-lived signed URL; path is ignored. A text kind (report/data-table) also returns the body inline (bounded content + char_count + truncated) for link-incapable hosts. On the remote connector an explicit artifact_id (and output_format) is validated up front — an unknown/ambiguous id fails immediately, not as a 400 when opened.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNo
artifactNo
notebookYes
artifact_idNo
artifact_typeNo
output_formatNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations this description carries the full burden and does so richly: it discloses transport-dependent behavior (stdio writes to required path; remote returns a resource_link plus a short-lived signed URL and ignores path), inline text bodies with bounded content/char_count/truncated, and up-front validation of an explicit artifact_id/output_format. These are exactly the behavioral traits structured fields do not provide.

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

Conciseness4/5

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

Front-loads the action and then uses two tight bullets plus compact paragraphs; every sentence conveys a distinct fact. It runs a little long for a download tool and the transport paragraph is dense, but nothing is redundant padding.

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 six-parameter tool with no annotations and no output schema, the description covers input targeting, transport-dependent return shapes, and validation behavior, leaving no essential gap for an agent to call it correctly.

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%, so the description must compensate and it does: notebook (name or ID), artifact (name-or-id ref resolving to type+id), artifact_type with optional artifact_id (full or unique-prefix), output_format as an override, and path as required over stdio but ignored remotely. It also points the reader to the schema enums for type/format, covering all six parameters.

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

Purpose4/5

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

Opens with a specific verb+resource ('Download a generated artifact') and names the required notebook scope, so the purpose is unambiguous against generate/list/status/delete siblings. It references sibling conventions ('the form the other artifact_* tools take') but never contrasts its purpose with those tools directly, so it stops short of full sibling differentiation.

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?

Strong guidance on target selection: exactly one of artifact vs artifact_type (with optional artifact_id), and when to omit artifact_id for the latest artifact. What is missing is explicit when-to-use versus alternatives such as studio_list or studio_status to find an artifact first, so it is clear context without exclusions.

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