Skip to main content
Glama

source_read

Read-onlyIdempotent

Retrieve the full indexed content of a source to quote verbatim, verify what NotebookLM ingested from the PDF or web page, or feed the raw text to another tool. Identify by ID or name.

Instructions

Read a source’s full indexed content — the exact text NotebookLM reasons over, which the web UI only ever shows in fragments.

Use it to quote a source verbatim, to check what was actually ingested from a PDF or web page, or to feed the raw material to another tool. Identify the source by source_id (from list_sources) or by source_name (partial match).

Long sources are paginated by default: you get the first 20,000 characters plus totalChars, nextCursor and a continue instruction telling you exactly how to ask for the rest. Pass cursor to continue, or paginate: false to take the whole document in one call. RPC-backed (no browser).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoWhere to resume: pass the nextCursor from the previous page. Omit for the first page.
formatNotext (default) = the plain-text rendition. html = the HTML rendition, which keeps headings, lists and links but inlines images as base64 and is markedly bigger.
paginateNoReturn one page at a time (default: true). Set false to get the whole document in a single response — fine for a short source, expensive for a book-length one.
max_charsNoPage size in characters (default: 20000). Ignored when paginate is false. The cut is pulled back to the nearest line break so pages do not end mid-word.
source_idNoThe unique ID of the source to read (see list_sources).
notebook_idNoNotebook UUID (alternative to notebook_url).
source_nameNoThe title of the source to read (partial, case-insensitive match).
notebook_urlNoNotebook URL. If not provided, uses the active notebook.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoThe tool payload on success. The exact shape depends on the tool.
errorNoHuman-readable error message, present only when success is false.
successYesWhether the tool call succeeded.
Install Server

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already show readOnlyHint and idempotentHint, and the description adds meaningful behavior beyond those: default pagination to 20,000 characters, totalChars/nextCursor/continue semantics, the ability to pass cursor or disable pagination, the difference between text and HTML renditions, and the fact that this is RPC-backed without a browser. No contradiction exists.

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 dense but well-structured: purpose first, then use cases, then pagination and rendering behavior. Each sentence contributes meaningful guidance without repetition or filler, and the key default behavior is stated early.

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 read tool with an output schema and rich annotations, the description covers all critical aspects: what the tool reads, why it is valuable, how to identify the source, page behavior, formatting choices, and performance considerations for large documents. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, and the schema parameters already carry detailed descriptions. The description adds further value by explaining the pagination model — first page of 20,000 characters, totalChars, nextCursor, the 'continue' instruction, and that cuts pull back to line breaks — which makes the parameter meanings more actionable than the schema alone.

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 identifies a specific verb-resource pair: 'Read a source’s full indexed content' — the exact text NotebookLM reasons over. It clearly distinguishes this from the web UI's fragmented display and from sibling tools like source_add or source_delete by naming the read operation on existing sources.

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 gives explicit usage contexts: quoting verbatim, verifying what was ingested, and feeding raw material to another tool. It references list_sources for finding source_id, providing clear selection guidance, though it does not state when to prefer sibling tools such as source_list or when not to use this tool.

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

Other Tools

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/roomi-fields/notebooklm-mcp'

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