Google Sheets
GoogleSheets_ListSpreadsheetComments
List a spreadsheet's comment threads, or the full replies of a single comment. In 'comments' mode each comment includes up to a few trimmed reply previews plus the total reply_count; use 'thread' mode for a comment's complete reply list. Without filters/ordering, pagination walks every comment. Client-side filters (has_replies, resolved) and order_by are applied only within a bounded scan of the first 500 comments, so on larger sheets drop them and page through everything with the native (unbounded) pagination. Each comment's Drive anchor is returned when it was cell/range-anchored in the Sheets UI; comments created via the API are file-level. Filtering, ordering, and offset pagination are best-effort: results can drift if comments are added or removed between paginated calls.
Remote (network-hosted)
Other tools also called GoogleSheets_ListSpreadsheetComments?
See providers with this name
Input Schema
{
"type": "object",
"properties": {
"mode": {
"enum": [
"comments",
"thread"
],
"type": "string",
"description": "'comments' (default) lists top-level comments, each with a capped reply preview and a reply_count. 'thread' lists the FULL replies of one comment (set comment_id)."
},
"limit": {
"type": "integer",
"description": "Max comments (or replies, in thread mode) to return. Clamped to [1, 50]."
},
"order_by": {
"enum": [
"created_time_asc",
"created_time_desc",
"modified_time_asc",
"modified_time_desc"
],
"type": "string",
"description": "Client-side ordering (comments mode) by created/modified time, ascending or descending. Defaults to Drive's native order."
},
"resolved": {
"type": "boolean",
"description": "Client-side filter (comments mode): keep only resolved (True) or unresolved (False) comments."
},
"comment_id": {
"type": "string",
"description": "Required when mode='thread': the comment whose replies to list."
},
"max_length": {
"type": "integer",
"description": "Cap each returned comment/reply body (and quoted text) at this many characters. A longer body becomes '<prefix>…(+N chars)' (suffix not counted; N = hidden chars). Pass 0 for full, untruncated text; a positive value below the floor (or negative) clamps up to the floor. Filtering still matches the FULL text. Defaults to 280."
},
"page_token": {
"type": "string",
"description": "Opaque token from a previous call's page_token to fetch the next page."
},
"comment_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fetch exactly these comments by id (comments mode), instead of paging. Replaces a dedicated get tool. At most 50 ids per call, and not combined with page_token."
},
"has_replies": {
"type": "boolean",
"description": "Client-side filter (comments mode): keep only comments that have (True) or lack (False) replies."
},
"modified_after": {
"type": "string",
"description": "Server-side filter: only comments modified at/after this RFC3339 time (e.g. '2025-01-01T00:00:00Z'). Comments mode only."
},
"spreadsheet_id": {
"type": "string",
"description": "The id of the spreadsheet whose comments to list."
},
"include_deleted": {
"type": "boolean",
"description": "Include deleted comments/replies (their bodies are blank). Defaults to False."
}
}
}