Skip to main content
Glama

Comments

comment
Read-only

Fastio comments on files (read): list a file's comments, all comments in a workspace or share, comment details, a comment's attachments. Writes are on comment_manage. action='describe' gives the full action/param reference.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoDefault -created (newest first).
limitNoPage size 2-200.
actionYesOperation. Use 'describe' for full action reference.
detailNoterse|standard|full (best-effort). Defaults: terse for list/list-all, full for details.
offsetNoOffset for pagination.
node_idNoFile node opaque ID.
share_idNoAlias for profile_id; implies profile_type=share.
comment_idNoComment opaque ID.
context_idNoAlias for profile_id (either name works)
profile_idNoWorkspace, share or File Share ID (pair with profile_type).
context_typeNoAlias for profile_type (either name works)
profile_typeNoProfile type.
workspace_idNoAlias for profile_id; implies profile_type=workspace.
display_limitNolist-all only: comments to return (default 10, max 200), trimmed after fetch.
include_totalNoInclude total count in response.
reference_typeNoFilter by anchor type.
include_deletedNoInclude soft-deleted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "list",
      -  "list-all",
      -  "details"
      -]New value: +[
      +  "describe",
      +  "list",
      +  "list-all",
      +  "details",
      +  "attachment-list"
      +]
    • changedInput schema / properties / profile_id / description
      Previous value: -"Workspace or share ID (pair with profile_type)."New value: +"Workspace, share or File Share ID (pair with profile_type)."
    • changedInput schema / properties / profile_type / enum
      Previous value: -[
      -  "workspace",
      -  "share"
      -]New value: +[
      +  "workspace",
      +  "share",
      +  "fileshare"
      +]
  2. Changed14 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "list",
      -  "list-all",
      -  "add",
      -  "edit",
      -  "delete",
      -  "bulk-delete",
      -  "details",
      -  "reaction-add",
      -  "reaction-remove"
      -]New value: +[
      +  "describe",
      +  "list",
      +  "list-all",
      +  "details"
      +]
    • removedInput schema / properties / comment_ids
      Removed value: -{
      -  "description": "Array of comment opaque IDs.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedInput schema / properties / detail / description
      Previous value: -"Per-comment verbosity for list/list-all/details. Defaults: terse for list/list-all (compact rows), full for details (drill-down). See action='describe' for per-level field lists."New value: +"terse|standard|full (best-effort). Defaults: terse for list/list-all, full for details."
    • changedInput schema / properties / display_limit / description
      Previous value: -"list-all only — ignored on the markdown list action. Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache warmth (JSON only). Trims post-fetch only."New value: +"list-all only: comments to return (default 10, max 200), trimmed after fetch."
    • removedInput schema / properties / emoji
      Removed value: -{
      -  "description": "Single emoji character.",
      -  "type": "string"
      -}
    • changedInput schema / properties / node_id / description
      Previous value: -"Storage tree node opaque ID. Both files and folders are nodes — use this name regardless of which."New value: +"File node opaque ID."
    • removedInput schema / properties / parent_comment_id
      Removed value: -{
      -  "description": "Parent comment ID for reply (single-level threading).",
      -  "type": "string"
      -}
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also context_id. 19-digit profile ID."New value: +"Workspace or share ID (pair with profile_type)."
    • removedInput schema / properties / properties
      Removed value: -{
      -  "description": "Arbitrary key-value JSON object metadata (edit action only). Accepts a native object or a JSON string. Merged into the comment's stored properties; server-managed keys (reactions, version, version_hash, edited_at, content_filtered, mentions) supplied here are ignored.",
      -  "type": "string"
      -}
    • removedInput schema / properties / reference
      Removed value: -{
      -  "description": "Anchor: image region, A/V timestamp, PDF page, or text selection.",
      -  "properties": {
      -    "end_offset": {
      -      "description": "Selection end char offset.",
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "exact": {
      -      "description": "Verbatim selected text (max 500 characters).",
      -      "maxLength": 1000,
      -      "type": "string"
      -    },
      -    "page": {
      -      "description": "PDF page (1-based).",
      -      "maximum": 9007199254740991,
      -      "minimum": 1,
      -      "type": "integer"
      -    },
      -    "prefix": {
      -      "description": "~30-50 chars before selection (max 100 characters).",
      -      "maxLength": 200,
      -      "type": "string"
      -    },
      -    "region": {
      -      "description": "Spatial region for image/video/PDF — CORNERS on a 0-100 PERCENT scale: {x1,y1,x2,y2}, not {x,y,width,height} and not 0-1 normalized.",
      -      "properties": {
      -        "x1": {
      -          "description": "Left edge, 0-100 PERCENT.",
      -          "maximum": 100,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "x2": {
      -          "description": "Right edge, 0-100 PERCENT (must be > x1).",
      -          "maximum": 100,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "y1": {
      -          "description": "Top edge, 0-100 PERCENT.",
      -          "maximum": 100,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "y2": {
      -          "description": "Bottom edge, 0-100 PERCENT (must be > y1).",
      -          "maximum": 100,
      -          "minimum": 0,
      -          "type": "number"
      -        }
      -      },
      -      "required": [
      -        "x1",
      -        "y1",
      -        "x2",
      -        "y2"
      -      ],
      -      "type": "object"
      -    },
      -    "start_offset": {
      -      "description": "Selection start char offset.",
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "suffix": {
      -      "description": "~30-50 chars after selection (max 100 characters).",
      -      "maxLength": 200,
      -      "type": "string"
      -    },
      -    "text_snippet": {
      -      "description": "Selected PDF text snippet.",
      -      "type": "string"
      -    },
      -    "timestamp": {
      -      "description": "Seconds (video/audio).",
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "type": {
      -      "description": "Anchor content type. 'document' covers PDF and text; 'text' aliases 'document'.",
      -      "enum": [
      -        "image",
      -        "video",
      -        "audio",
      -        "pdf",
      -        "document",
      -        "text",
      -        "general"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • changedInput schema / properties / share_id / description
      Previous value: -"Alias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted)."New value: +"Alias for profile_id; implies profile_type=share."
    • changedInput schema / properties / sort / description
      Previous value: -"Sort: 'created' or '-created' (default newest first)."New value: +"Default -created (newest first)."
    • removedInput schema / properties / text
      Removed value: -{
      -  "description": "Max 8192 body / 500 DISPLAY text (mention markup discounted) — the 500 usually BINDS. Both count CHARACTERS — CJK and emoji cost one each, same as ASCII. Mentions count toward 8192 only. A separate 2048-BYTE budget applies to the JSON-encoded `reference` anchor, where each non-ASCII character costs SIX bytes.",
      -  "type": "string"
      -}
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Alias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted)."New value: +"Alias for profile_id; implies profile_type=workspace."
  3. Changed13 schema fields changed
    • changedInput schema / properties / reference / properties / region / description
      Previous value: -"Spatial region for image/video/PDF."New value: +"Spatial region for image/video/PDF — CORNERS on a 0-100 PERCENT scale: {x1,y1,x2,y2}, not {x,y,width,height} and not 0-1 normalized."
    • removedInput schema / properties / reference / properties / region / properties / height
      Removed value: -{
      -  "description": "Height (0-1).",
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / reference / properties / region / properties / width
      Removed value: -{
      -  "description": "Width (0-1).",
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / reference / properties / region / properties / x
      Removed value: -{
      -  "description": "X (0-1 normalized).",
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • addedInput schema / properties / reference / properties / region / properties / x1
      Added value: +{
      +  "description": "Left edge, 0-100 PERCENT.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / reference / properties / region / properties / x2
      Added value: +{
      +  "description": "Right edge, 0-100 PERCENT (must be > x1).",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / properties / reference / properties / region / properties / y
      Removed value: -{
      -  "description": "Y (0-1 normalized).",
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • addedInput schema / properties / reference / properties / region / properties / y1
      Added value: +{
      +  "description": "Top edge, 0-100 PERCENT.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / reference / properties / region / properties / y2
      Added value: +{
      +  "description": "Bottom edge, 0-100 PERCENT (must be > y1).",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / reference / properties / region / required
      Previous value: -[
      -  "x",
      -  "y"
      -]New value: +[
      +  "x1",
      +  "y1",
      +  "x2",
      +  "y2"
      +]
    • changedInput schema / properties / reference / properties / type / enum
      Previous value: -[
      -  "image",
      -  "video",
      -  "audio",
      -  "pdf",
      -  "document",
      -  "text"
      -]New value: +[
      +  "image",
      +  "video",
      +  "audio",
      +  "pdf",
      +  "document",
      +  "text",
      +  "general"
      +]
    • changedInput schema / properties / reference_type / enum
      Previous value: -[
      -  "image",
      -  "video",
      -  "audio",
      -  "pdf",
      -  "document",
      -  "text"
      -]New value: +[
      +  "image",
      +  "video",
      +  "audio",
      +  "pdf",
      +  "document",
      +  "text",
      +  "general"
      +]
    • changedInput schema / properties / text / description
      Previous value: -"Max 8192 body / 500 DISPLAY text (mention markup discounted) — the 500 usually BINDS. Servers count BYTES today, so non-ASCII trips it sooner: ~500 English but ~166 Japanese. Mentions count toward 8192 only. A separate 2048-BYTE budget applies to the JSON-encoded `reference` anchor, where each non-ASCII character costs SIX bytes."New value: +"Max 8192 body / 500 DISPLAY text (mention markup discounted) — the 500 usually BINDS. Both count CHARACTERS — CJK and emoji cost one each, same as ASCII. Mentions count toward 8192 only. A separate 2048-BYTE budget applies to the JSON-encoded `reference` anchor, where each non-ASCII character costs SIX bytes."
  4. Changed11 schema fields changed
    • changedInput schema / properties / detail / description
      Previous value: -"Per-comment verbosity for list/list-all/details. Defaults: terse for list/list-all (compact rows), full for details (drill-down). See action='describe' for…"New value: +"Per-comment verbosity for list/list-all/details. Defaults: terse for list/list-all (compact rows), full for details (drill-down). See action='describe' for per-level field lists."
    • changedInput schema / properties / display_limit / description
      Previous value: -"list-all only — ignored on the markdown list action. Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache…"New value: +"list-all only — ignored on the markdown list action. Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache warmth (JSON only). Trims post-fetch only."
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…"New value: +"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also context_id. 19-digit profile ID."
    • changedInput schema / properties / properties / description
      Previous value: -"Arbitrary key-value JSON object metadata (edit action only). Accepts a native object or a JSON string. Merged into the comment's stored properties;…"New value: +"Arbitrary key-value JSON object metadata (edit action only). Accepts a native object or a JSON string. Merged into the comment's stored properties; server-managed keys (reactions, version, version_hash, edited_at, content_filtered, mentions) supplied here are ignored."
    • changedInput schema / properties / reference / properties / exact / description
      Previous value: -"Verbatim selected text."New value: +"Verbatim selected text (max 500 characters)."
    • changedInput schema / properties / reference / properties / exact / maxLength
      Previous value: -500New value: +1000
    • changedInput schema / properties / reference / properties / prefix / description
      Previous value: -"~30-50 chars before selection."New value: +"~30-50 chars before selection (max 100 characters)."
    • changedInput schema / properties / reference / properties / prefix / maxLength
      Previous value: -100New value: +200
    • changedInput schema / properties / reference / properties / suffix / description
      Previous value: -"~30-50 chars after selection."New value: +"~30-50 chars after selection (max 100 characters)."
    • changedInput schema / properties / reference / properties / suffix / maxLength
      Previous value: -100New value: +200
    • changedInput schema / properties / text / description
      Previous value: -"Comment body (max 8192 chars; max 500 display chars with mention tags stripped). Supports @[profile|user|file:...] mentions."New value: +"Max 8192 body / 500 DISPLAY text (mention markup discounted) — the 500 usually BINDS. Servers count BYTES today, so non-ASCII trips it sooner: ~500 English but ~166 Japanese. Mentions count toward 8192 only. A separate 2048-BYTE budget applies to the JSON-encoded `reference` anchor, where each non-ASCII character costs SIX bytes."
  5. Changed4 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "list",
      -  "list-all",
      -  "add",
      -  "edit",
      -  "delete",
      -  "bulk-delete",
      -  "details",
      -  "reaction-add",
      -  "reaction-remove",
      -  "link",
      -  "unlink",
      -  "linked"
      -]New value: +[
      +  "describe",
      +  "list",
      +  "list-all",
      +  "add",
      +  "edit",
      +  "delete",
      +  "bulk-delete",
      +  "details",
      +  "reaction-add",
      +  "reaction-remove"
      +]
    • changedInput schema / properties / detail / description
      Previous value: -"Per-comment verbosity for list/list-all/details/linked. Defaults: terse for list/list-all/linked (compact rows), full for details (drill-down). See…"New value: +"Per-comment verbosity for list/list-all/details. Defaults: terse for list/list-all (compact rows), full for details (drill-down). See action='describe' for…"
    • removedInput schema / properties / linked_entity_id
      Removed value: -{
      -  "description": "Task opaque ID.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / linked_entity_type
      Removed value: -{
      -  "description": "Linked entity type — only 'task' is supported today.",
      -  "enum": [
      -    "task"
      -  ],
      -  "type": "string"
      -}
  6. Changed3 schema fields changed
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit profile ID."New value: +"Polymorphic context ID (pair with profile_type=workspace|share). Typed aliases let you omit profile_type: workspace_id (⇒ workspace) / share_id (⇒ share); also…"
    • addedInput schema / properties / share_id
      Added value: +{
      +  "description": "Alias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).",
      +  "type": "string"
      +}
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "Alias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).",
      +  "type": "string"
      +}
  7. Changed7 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "list",
      -  "list-all",
      -  "add",
      -  "delete",
      -  "bulk-delete",
      -  "details",
      -  "reaction-add",
      -  "reaction-remove",
      -  "link",
      -  "unlink",
      -  "linked"
      -]New value: +[
      +  "describe",
      +  "list",
      +  "list-all",
      +  "add",
      +  "edit",
      +  "delete",
      +  "bulk-delete",
      +  "details",
      +  "reaction-add",
      +  "reaction-remove",
      +  "link",
      +  "unlink",
      +  "linked"
      +]
    • changedInput schema / properties / detail / description
      Previous value: -"Per-comment verbosity for list/list-all/details/linked. Defaults: terse for list/list-all/linked (compact rows), full for details (drill-down). See action='describe' for per-level field lists."New value: +"Per-comment verbosity for list/list-all/details/linked. Defaults: terse for list/list-all/linked (compact rows), full for details (drill-down). See…"
    • changedInput schema / properties / display_limit / description
      Previous value: -"Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache warmth — applies to list-all (JSON only). Trims post-fetch only."New value: +"list-all only — ignored on the markdown list action. Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache…"
    • changedInput schema / properties / linked_entity_id / description
      Previous value: -"Task or approval opaque ID."New value: +"Task opaque ID."
    • changedInput schema / properties / linked_entity_type / description
      Previous value: -"Workflow entity type."New value: +"Linked entity type — only 'task' is supported today."
    • changedInput schema / properties / linked_entity_type / enum
      Previous value: -[
      -  "task",
      -  "approval"
      -]New value: +[
      +  "task"
      +]
    • addedInput schema / properties / properties
      Added value: +{
      +  "description": "Arbitrary key-value JSON object metadata (edit action only). Accepts a native object or a JSON string. Merged into the comment's stored properties;…",
      +  "type": "string"
      +}
  8. Changed43 schema fields changed
    • removedInput schema / properties / display_limit / anyOf
      Removed value: -[
      -  {
      -    "maximum": 200,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / display_limit / maximum
      Added value: +200
    • addedInput schema / properties / display_limit / minimum
      Added value: +1
    • addedInput schema / properties / display_limit / type
      Added value: +"integer"
    • removedInput schema / properties / limit / anyOf
      Removed value: -[
      -  {
      -    "maximum": 200,
      -    "minimum": 2,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / limit / maximum
      Added value: +200
    • addedInput schema / properties / limit / minimum
      Added value: +2
    • addedInput schema / properties / limit / type
      Added value: +"integer"
    • removedInput schema / properties / offset / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • addedInput schema / properties / offset / type
      Added value: +"integer"
    • removedInput schema / properties / reference / properties / end_offset / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / end_offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / reference / properties / end_offset / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / end_offset / type
      Added value: +"integer"
    • removedInput schema / properties / reference / properties / page / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / page / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / reference / properties / page / minimum
      Added value: +1
    • addedInput schema / properties / reference / properties / page / type
      Added value: +"integer"
    • removedInput schema / properties / reference / properties / region / properties / height / anyOf
      Removed value: -[
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / region / properties / height / maximum
      Added value: +1
    • addedInput schema / properties / reference / properties / region / properties / height / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / region / properties / height / type
      Added value: +"number"
    • removedInput schema / properties / reference / properties / region / properties / width / anyOf
      Removed value: -[
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / region / properties / width / maximum
      Added value: +1
    • addedInput schema / properties / reference / properties / region / properties / width / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / region / properties / width / type
      Added value: +"number"
    • removedInput schema / properties / reference / properties / region / properties / x / anyOf
      Removed value: -[
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / region / properties / x / maximum
      Added value: +1
    • addedInput schema / properties / reference / properties / region / properties / x / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / region / properties / x / type
      Added value: +"number"
    • removedInput schema / properties / reference / properties / region / properties / y / anyOf
      Removed value: -[
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / region / properties / y / maximum
      Added value: +1
    • addedInput schema / properties / reference / properties / region / properties / y / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / region / properties / y / type
      Added value: +"number"
    • removedInput schema / properties / reference / properties / start_offset / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / start_offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / reference / properties / start_offset / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / start_offset / type
      Added value: +"integer"
    • removedInput schema / properties / reference / properties / timestamp / anyOf
      Removed value: -[
      -  {
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / reference / properties / timestamp / minimum
      Added value: +0
    • addedInput schema / properties / reference / properties / timestamp / type
      Added value: +"number"
  9. Changed63 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Operation to perform"New value: +"Operation. Use 'describe' for full action reference."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "list",
      -  "list-all",
      -  "add",
      -  "delete",
      -  "bulk-delete",
      -  "details",
      -  "reaction-add",
      -  "reaction-remove",
      -  "link",
      -  "unlink",
      -  "linked"
      -]New value: +[
      +  "describe",
      +  "list",
      +  "list-all",
      +  "add",
      +  "delete",
      +  "bulk-delete",
      +  "details",
      +  "reaction-add",
      +  "reaction-remove",
      +  "link",
      +  "unlink",
      +  "linked"
      +]
    • changedInput schema / properties / comment_id / description
      Previous value: -"Opaque ID of a comment (required for: delete, details, reaction-add, reaction-remove, link, unlink)"New value: +"Comment opaque ID."
    • changedInput schema / properties / comment_ids / description
      Previous value: -"Array of comment opaque IDs (required for: bulk-delete)"New value: +"Array of comment opaque IDs."
    • changedInput schema / properties / detail / description
      Previous value: -"Detail level: terse|standard|full (default: standard) (used by: list)"New value: +"Per-comment verbosity for list/list-all/details/linked. Defaults: terse for list/list-all/linked (compact rows), full for details (drill-down). See action='describe' for per-level field lists."
    • addedInput schema / properties / display_limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 200,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "pattern": "^-?\\d+$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Number of comments to return to the agent (default 10, max 200). Backend page_size unchanged for cache warmth — applies to list-all (JSON only). Trims post-fetch only."
      +}
    • changedInput schema / properties / emoji / description
      Previous value: -"Single emoji character to react with (required for: reaction-add)"New value: +"Single emoji character."
    • changedInput schema / properties / include_deleted / description
      Previous value: -"If true, include soft-deleted comments in results (used by: list, list-all)"New value: +"Include soft-deleted."
    • changedInput schema / properties / include_total / description
      Previous value: -"If true, include total comment count in response (used by: list, list-all)"New value: +"Include total count in response."
    • addedInput schema / properties / limit / anyOf
      Added value: +[
      +  {
      +    "maximum": 200,
      +    "minimum": 2,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / limit / description
      Previous value: -"Number of comments to return (2-200, default server-determined) (used by: list, list-all)"New value: +"Page size 2-200."
    • removedInput schema / properties / limit / maximum
      Removed value: -200
    • removedInput schema / properties / limit / minimum
      Removed value: -2
    • removedInput schema / properties / limit / type
      Removed value: -"integer"
    • changedInput schema / properties / linked_entity_id / description
      Previous value: -"Opaque ID of the task or approval to link (required for: link, linked; optional for: add)"New value: +"Task or approval opaque ID."
    • changedInput schema / properties / linked_entity_type / description
      Previous value: -"Workflow entity type to link: \"task\" or \"approval\" (required for: link, linked; optional for: add)"New value: +"Workflow entity type."
    • changedInput schema / properties / node_id / description
      Previous value: -"Storage node opaque ID (the file or folder to comment on) (required for: list, add)"New value: +"Storage tree node opaque ID. Both files and folders are nodes — use this name regardless of which."
    • addedInput schema / properties / offset / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / offset / description
      Previous value: -"Number of comments to skip for offset-based pagination (used by: list, list-all)"New value: +"Offset for pagination."
    • removedInput schema / properties / offset / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / offset / minimum
      Removed value: -0
    • removedInput schema / properties / offset / type
      Removed value: -"integer"
    • changedInput schema / properties / parent_comment_id / description
      Previous value: -"Parent comment ID to reply to (single-level threading only — replies to replies are flattened) (used by: add)"New value: +"Parent comment ID for reply (single-level threading)."
    • changedInput schema / properties / profile_id / description
      Previous value: -"19-digit profile (workspace or share) ID (also accepted as context_id) (required for: list, list-all, add)"New value: +"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit profile ID."
    • changedInput schema / properties / profile_type / description
      Previous value: -"Entity type: \"workspace\" or \"share\" (also accepted as context_type) (required for: list, list-all, add)"New value: +"Profile type."
    • changedInput schema / properties / reference / description
      Previous value: -"Anchor the comment to a specific position: image region, video/audio timestamp, PDF page, or text selection in markdown/notes"New value: +"Anchor: image region, A/V timestamp, PDF page, or text selection."
    • addedInput schema / properties / reference / properties / end_offset / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / end_offset / description
      Previous value: -"Character offset for end of selection (text anchoring hint)"New value: +"Selection end char offset."
    • removedInput schema / properties / reference / properties / end_offset / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / reference / properties / end_offset / minimum
      Removed value: -0
    • removedInput schema / properties / reference / properties / end_offset / type
      Removed value: -"integer"
    • changedInput schema / properties / reference / properties / exact / description
      Previous value: -"Selected text verbatim (text-anchored comments on markdown/notes)"New value: +"Verbatim selected text."
    • addedInput schema / properties / reference / properties / page / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / page / description
      Previous value: -"Page number (PDF, 1-based)"New value: +"PDF page (1-based)."
    • removedInput schema / properties / reference / properties / page / type
      Removed value: -"number"
    • changedInput schema / properties / reference / properties / prefix / description
      Previous value: -"~30-50 chars context before selection (text anchoring)"New value: +"~30-50 chars before selection."
    • changedInput schema / properties / reference / properties / region / description
      Previous value: -"Spatial region for image/video/PDF anchoring"New value: +"Spatial region for image/video/PDF."
    • addedInput schema / properties / reference / properties / region / properties / height / anyOf
      Added value: +[
      +  {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / region / properties / height / description
      Previous value: -"Height (0-1 normalized)"New value: +"Height (0-1)."
    • removedInput schema / properties / reference / properties / region / properties / height / type
      Removed value: -"number"
    • addedInput schema / properties / reference / properties / region / properties / width / anyOf
      Added value: +[
      +  {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / region / properties / width / description
      Previous value: -"Width (0-1 normalized)"New value: +"Width (0-1)."
    • removedInput schema / properties / reference / properties / region / properties / width / type
      Removed value: -"number"
    • addedInput schema / properties / reference / properties / region / properties / x / anyOf
      Added value: +[
      +  {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / region / properties / x / description
      Previous value: -"X coordinate (0-1 normalized)"New value: +"X (0-1 normalized)."
    • removedInput schema / properties / reference / properties / region / properties / x / type
      Removed value: -"number"
    • addedInput schema / properties / reference / properties / region / properties / y / anyOf
      Added value: +[
      +  {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / region / properties / y / description
      Previous value: -"Y coordinate (0-1 normalized)"New value: +"Y (0-1 normalized)."
    • removedInput schema / properties / reference / properties / region / properties / y / type
      Removed value: -"number"
    • addedInput schema / properties / reference / properties / start_offset / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / start_offset / description
      Previous value: -"Character offset from document start (text anchoring hint)"New value: +"Selection start char offset."
    • removedInput schema / properties / reference / properties / start_offset / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / reference / properties / start_offset / minimum
      Removed value: -0
    • removedInput schema / properties / reference / properties / start_offset / type
      Removed value: -"integer"
    • changedInput schema / properties / reference / properties / suffix / description
      Previous value: -"~30-50 chars context after selection (text anchoring)"New value: +"~30-50 chars after selection."
    • changedInput schema / properties / reference / properties / text_snippet / description
      Previous value: -"Selected text snippet (PDF text selection)"New value: +"Selected PDF text snippet."
    • addedInput schema / properties / reference / properties / timestamp / anyOf
      Added value: +[
      +  {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^-?\\d+(?:\\.\\d+)?$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / reference / properties / timestamp / description
      Previous value: -"Timestamp in seconds (video/audio)"New value: +"Seconds (video/audio)."
    • removedInput schema / properties / reference / properties / timestamp / type
      Removed value: -"number"
    • changedInput schema / properties / reference / properties / type / description
      Previous value: -"Content type for anchoring. Use \"document\" for both PDF page anchoring and text-anchored comments on markdown/notes. \"text\" is accepted as an alias for \"document\""New value: +"Anchor content type. 'document' covers PDF and text; 'text' aliases 'document'."
    • changedInput schema / properties / reference_type / description
      Previous value: -"Filter comments by reference/anchor type (used by: list, list-all). \"document\" covers both PDF and text-anchored comments; \"text\" is an alias for \"document\""New value: +"Filter by anchor type."
    • changedInput schema / properties / sort / description
      Previous value: -"Sort order: \"created\" (oldest first) or \"-created\" (newest first, default) (used by: list, list-all)"New value: +"Sort: 'created' or '-created' (default newest first)."
    • changedInput schema / properties / text / description
      Previous value: -"Comment body text (max 8,192 chars including mention tags, max 500 chars display text with mention tags stripped). Supports @[profile:id], @[user:opaqueId:Name], @[file:fileId:name.ext] mention tags. (required for: add)"New value: +"Comment body (max 8192 chars; max 500 display chars with mention tags stripped). Supports @[profile|user|file:...] mentions."
  10. Changed1 schema field changed
    • changedInput schema / properties / text / description
      Previous value: -"Comment body text (max 8,192 chars including mention tags, max 2,048 chars display text). Supports @[profile:id], @[user:opaqueId:Name], @[file:fileId:name.ext] mention tags. (required for: add)"New value: +"Comment body text (max 8,192 chars including mention tags, max 500 chars display text with mention tags stripped). Supports @[profile:id], @[user:opaqueId:Name], @[file:fileId:name.ext] mention tags. (required for: add)"
  11. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds context beyond that: it makes the read/write division of labor with comment_manage explicit and points to action='describe' for a full action/param reference, which is genuinely useful self-documentation behavior.

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?

Two tightly written sentences: the read scope and its four operations are front-loaded, and routing to the write sibling plus the describe hint follow. No filler, every clause earns its place.

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?

For a 17-parameter tool with no output schema, the description covers the essentials: scope, the operation set, and a pointer to action='describe' for the full reference. It doesn't explain the alias relationships (e.g., context_id/share_id/workspace_id vs profile_id), but the schema documents those, and no output schema means return values needn't be described.

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 coverage is 100% with 17 documented parameters and 6 enums, so the schema already carries parameter meaning. The description only reinforces the 'action' parameter via action='describe' and adds no syntax or alias guidance beyond what the schema provides, so the baseline 3 is 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+resource ('comments on files (read)') and enumerates the four concrete operations: list a file's comments, all comments in a workspace or share, comment details, and a comment's attachments. It also explicitly differentiates itself from the write sibling comment_manage, so an agent can distinguish the two without opening schemas.

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?

'Writes are on comment_manage' explicitly routes mutation intent to the correct sibling, and the parenthetical '(read)' plus the enumerated action list make the read context clear. It stops short of per-action selection guidance (e.g., when to choose list vs list-all), but the main when-to-use/when-not split is legible.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources