Skip to main content
Glama
DevstackK

Notebooklm-Unofficial-API-MCP

by DevstackK

chat_status

Read-only

Poll detached chat tasks or inspect a notebook's live generation session. Batch multiple task IDs in one call to monitor progress and retry failures.

Instructions

Poll detached asks, or inspect a notebook's live generation session.

Detached-task mode: task_id accepts one id, a list, or a comma-separated string — poll a whole batch in ONE call and re-invoke every ~20–30s while anything is pending. Per-task statuses:

  • pending (state: queued waiting for a generation slot, or generating) — re-invoke; polling never restarts a generation.

  • completed — the full chat_ask-shaped payload, plus queued_s / generation_s timings.

  • failed — error: {code, message, retriable, ...}; a retriable code is worth one chat_start retry (which re-runs the generation).

  • unknown — no such task, or its result expired; chat_start again.

A single string id returns that task's status dict; a list (even of one) returns {"tasks": [...]} in input order. At most 64 ids per call.

Live-session mode: pass notebook instead of task_id to inspect Google's current chat session. conversation_id is optional and defaults to that notebook's most-recent conversation. The result is idle or generating and includes the generation token when Google supplies one. The two modes are mutually exclusive.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idNo
notebookNo
conversation_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description goes well beyond that: it discloses side-effect safety ('polling never restarts a generation'), result expiry under 'unknown', batch limits (64 ids), ordering guarantees, and timing fields returned on completion. This is the kind of behavioral context agents cannot infer from annotations.

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?

Long but dense and front-loaded: the two modes are announced in the first sentence, then elaborated in labeled blocks with a status bullet list. Every sentence contributes either a decision rule, a format guarantee, or a constraint; there is no filler.

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?

An output schema exists so return values need not be re-explained, yet the description still maps each status value to its shape and follow-up action, and documents edge cases (expired results, input-order preservation, mode exclusivity). Nothing needed to call this tool correctly is missing.

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 carries the full burden and does: task_id accepts one id, a list, or a comma-separated string (a format the schema's anyOf does not convey), returns a bare dict vs. a {"tasks": [...]} wrapper depending on input shape, capped at 64. It also explains notebook vs. conversation_id, including the default-to-most-recent behavior of conversation_id.

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 opening line states a specific verb pair ('poll' / 'inspect') mapped to two clearly named resources (detached asks, a notebook's live generation session). It explicitly distinguishes its two modes and positions itself against siblings like chat_start and chat_ask, which it names directly.

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

Usage Guidelines5/5

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

Gives explicit when-to-use guidance: re-invoke every ~20-30s while anything is pending, retry chat_start only for a retriable 'failed' code, start fresh on 'unknown'. It also states that the two modes are mutually exclusive and that polling never restarts a generation, removing the main ambiguity an agent would face.

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