Skip to main content
Glama
dougrn

NotebookLM MCP Server

by dougrn

Research Import

research_import

Import sources from a completed research task into a notebook using a poll task ID. Skips duplicate URLs and supports cited-only or capped imports.

Instructions

Import a completed research task's sources into the notebook.

Accepts a notebook name or ID and the poll_task_id to import — the value from research_start / research_status. task_id is a deprecated alias (removed in v0.9.0).

The id pins the task. Timeout-tolerant: a timed-out import reconciles what committed. Idempotent: sources already present (by URL) are skipped as already_present; allow_duplicate re-adds them.

cited_only imports only report-cited sources (all, if none resolve). max_sources caps the count.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idNo
notebookYes
cited_onlyNo
max_sourcesNo
poll_task_idNo
allow_duplicateNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses timeout tolerance and reconciliation of committed imports, idempotency (URL-based skipping as 'already_present'), the allow_duplicate override, cited_only fallback behavior, and max_sources capping. It also flags task_id as a deprecated alias removed in v0.9.0, which is essential migration context.

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?

The purpose leads the description and each subsequent paragraph covers a distinct concern, so it is well front-loaded and mostly earns its space. It is somewhat dense with backticked identifiers, but there is little outright waste.

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

Completeness4/5

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 need not be explained, and the description richly covers behavior for a 6-parameter mutation tool. It omits any note on required permissions or write access to the notebook, which would round out the picture given the absence of annotations.

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?

Despite 0% schema description coverage, the description explains every parameter: notebook (name or ID), poll_task_id (source from research_start/status), the deprecated task_id alias, cited_only semantics including the 'all if none resolve' fallback, max_sources as a cap, and allow_duplicate re-add behavior. It fully compensates for the schema gap.

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?

States a specific verb and resource ('Import a completed research task's sources into the notebook') and pins the scope to a completed research task, clearly distinguishing it from research_start/research_status. An agent can identify the operation without opening the schema.

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?

Explicitly ties usage to the sibling tools by saying poll_task_id is 'the value from research_start / research_status', giving a clear when-to-use context. It stops short of stating when not to use this tool or naming an alternative for other import scenarios, so it does not reach a 5.

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