Skip to main content
Glama

comment

Destructive

Comments on files: add/list/delete/react, anchor to image regions, A/V timestamps, PDF pages, or text selections. Call action='describe' for the full action/param reference. Destructive: delete, bulk-delete. Verbosity (detail param): list/list-all default to terse (compact rows). details defaults to full (drill-down). Pass an explicit detail='standard'|'full' to override (best-effort — may be a silent no-op until the comments API honors output=; see describe).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoSort: 'created' or '-created' (default newest first).
textNoMax 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.
emojiNoSingle emoji character.
limitNoPage size 2-200.
actionYesOperation. Use 'describe' for full action reference.
detailNoPer-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.
offsetNoOffset for pagination.
node_idNoStorage tree node opaque ID. Both files and folders are nodes — use this name regardless of which.
share_idNoAlias for profile_id when the profile is a share — implies profile_type=share (so profile_type may be omitted).
referenceNoAnchor: image region, A/V timestamp, PDF page, or text selection.
comment_idNoComment opaque ID.
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic 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.
propertiesNoArbitrary 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.
comment_idsNoArray of comment opaque IDs.
context_typeNoAlias for profile_type (either name works)
profile_typeNoProfile type.
workspace_idNoAlias for profile_id when the profile is a workspace — implies profile_type=workspace (so profile_type may be omitted).
display_limitNolist-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.
include_totalNoInclude total count in response.
reference_typeNoFilter by anchor type.
include_deletedNoInclude soft-deleted.
parent_comment_idNoParent comment ID for reply (single-level threading).

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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."
  2. 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."
  3. 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"
      -}
  4. 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"
      +}
  5. 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"
      +}
  6. 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"
  7. 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."
  8. 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)"
  9. 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 destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavioral context: explicitly stating 'Destructive: delete, bulk-delete' and disclosing that the detail override is 'best-effort — may be a silent no-op until the comments API honors output='. This goes beyond the annotations but doesn't fully describe all behaviors, making 4 appropriate.

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 compact yet information-dense, covering purpose, action discovery, destructive behavior, and verbosity controls in just a few sentences. It is front-loaded with the main purpose and every sentence contributes, with no fluff or repetition.

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?

Given the tool's complexity (23 parameters, 10 actions, nested reference objects), the description does a good job by summarizing scope, pointing to action='describe' for full details, and covering key behavioral nuances. It doesn't explain return values or the full reference structure, but the schema and describe action compensate, so a 4 is fair.

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%, so the baseline is 3. The description adds a small amount of parameter semantics via the verbosity discussion (detail defaults), but this is already present in the schema's detail parameter description. No significant new parameter meaning is introduced, so the baseline score stands.

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 clearly states the tool's purpose: 'Comments on files: add/list/delete/react' and explicitly mentions anchoring to image regions, A/V timestamps, PDF pages, or text selections. This specific verb+resource pairing distinguishes it from all sibling tools, none of which relate to comments.

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 provides clear usage context, such as calling action='describe' for the full reference and explaining verbosity defaults for list/list-all vs details. However, it does not explicitly mention when not to use this tool or compare it to alternatives, so it stops short of a 5.

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