Skip to main content
Glama

Check research

research_status
Read-onlyIdempotent

Check one or all research tasks in a NotebookLM notebook, returning status, query, summary, and found sources so you can poll progress and import results.

Instructions

Check research tasks in a notebook: one task, or all of them. Returns each task's status (in_progress, completed, imported, import_failed, or unknown for a state this server doesn't recognise), query, summary and found sources (url, title, description, type). Poll until the status is no longer in_progress; a source's position in this list is the index research_import takes.

Input Schema

NameRequiredDescriptionDefault
task_idNotask_id from research_start; omit to list every research task in the notebook
notebook_idYesNotebook ID, as returned by notebook_list or notebook_create

Output Schema

NameRequiredDescriptionDefault
statusYes
messageNoHuman-readable outcome or next step
resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.5.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "message": {
      +      "description": "Human-readable outcome or next step",
      +      "type": "string"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "query": {
      +            "type": "string"
      +          },
      +          "sources": {
      +            "description": "Found sources; a source's position here is its index for research_import",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "description": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "title": {
      +                  "type": "string"
      +                },
      +                "type": {
      +                  "description": "web, google_doc, google_slides, google_sheets, deep_report or unknown",
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "description": "null for results research_import cannot import, such as Drive files",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "url",
      +                "title",
      +                "description",
      +                "type"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "status": {
      +            "enum": [
      +              "in_progress",
      +              "completed",
      +              "imported",
      +              "import_failed",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          },
      +          "summary": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "task_id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "task_id",
      +          "status",
      +          "query",
      +          "summary",
      +          "sources"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "const": "success",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "results"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changedv0.4.0
    • changedInput schema / properties / notebook_id / description
      Previous value: -"The notebook ID"New value: +"Notebook ID, as returned by notebook_list or notebook_create"
    • changedInput schema / properties / task_id / description
      Previous value: -"Specific task ID to check (omit for all)"New value: +"task_id from research_start; omit to list every research task in the notebook"
  3. First observedv0.3.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive. Beyond that, the description discloses the state machine's terminal semantics, the 'unknown' case for unrecognised states, and the positional coupling with research_import — meaningful behavioral context not present in the annotations. No rate-limit or eventual-consistency caveats, so not a 5.

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 purpose in the first clause and packs status values, polling guidance and the cross-tool index link into three dense sentences with little waste. Slightly run-on, but each sentence carries distinct information.

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 summarises the payload shape. With annotations covering the safety profile and the schema covering parameters, nothing an agent needs in order to call this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already fully documented in the schema. The description's 'one task, or all of them' reinforces the task_id omission behavior but adds no syntax or format detail beyond that, making the baseline 3 appropriate.

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 ('Check research tasks in a notebook') plus the scope ('one task, or all of them'), and enumerates the exact status strings returned. The closing reference to research_import's index argument distinguishes it from research_start and research_import without needing to open either 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?

Gives explicit operational guidance ('Poll until the status is no longer in_progress') and tells the agent how to use the result with research_import. It does not explicitly name research_start as the counterpart for initiating a task or state exclusions, so it stops short of full when/when-not guidance.

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