Skip to main content
Glama

Hide Comment

hide_inbox_comment
DestructiveIdempotent

Hide a comment on the platform so other people no longer see it, where capabilities.canHide is true. Confirm with the user first, naming the comment. A comment that cannot be hidden answers 400 inbox_action_unsupported; stop there. unhide_inbox_comment reverses it. A 403 with code inbox_reconnect_required means the account lacks the platform permission for this channel or action (some channels still wait on platform review) or its token expired: tell the user to reconnect the account in AdaptlyPost and do not retry. 404 inbox_item_not_found means the id is unknown in this workspace. 429 inbox_rate_limited means the platform rate limited the call: wait a while before trying again. 503 inbox_platform_error means the platform failed: try again later. Needs the inbox.reply permission, which Admin and Editor hold (403 permission_denied otherwise), and an active plan.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "hide_inbox_comment"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe comment id, from list_inbox_comments
workspaceIdNoWorkspace to act in: an id from list_workspaces. Omit to act in the workspace list_workspaces marks current. Use the same workspaceId for every call about the same workspace, since ids from one workspace (accounts, posts, uploads) do not exist in another

Output Schema

NameRequiredDescriptionDefault
resultYesThe comment with isHidden: true. An InboxComment: id, accountId, platform, accountName, postId (the AdaptlyPost post id, null when the post was not published through AdaptlyPost), platformPostId, postText, postPermalink, platformCommentId, parentPlatformCommentId (null for a top-level comment), isReply, author { id, name, username, avatarUrl }, text, permalink, likeCount, createdAt, status (UNREAD, READ or DONE), isHidden, isOwn, replied (the account has a reply under it, sent from AdaptlyPost or the platform app), repliedAt, likedByAccount and capabilities { canReply, canHide, canDelete, canLike }.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / result / additionalProperties
      Added value: +true
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "accountId": {
      +    "description": "The account `id` from GET /social-accounts",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "accountName": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "author": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "properties": {
      +          "avatarUrl": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "The platform user id",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "username": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "capabilities": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "properties": {
      +          "canDelete": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "canHide": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "canLike": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "canReply": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "createdAt": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "id": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "isHidden": {
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "isOwn": {
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "isReply": {
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "likeCount": {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  "likedByAccount": {
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "parentPlatformCommentId": {
      +    "description": "Null for a top-level comment",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "permalink": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "platform": {
      +    "description": "One of: FACEBOOK, INSTAGRAM, THREADS, TIKTOK, TWITTER, BLUESKY, LINKEDIN, PINTEREST, YOUTUBE, MASTODON, TELEGRAM, GOOGLE_BUSINESS, TUMBLR, WORDPRESS",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "platformCommentId": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "platformPostId": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "postId": {
      +    "description": "The AdaptlyPost post id, null when the post was not published through AdaptlyPost",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "postPermalink": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "postText": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "replied": {
      +    "description": "True when your account has a reply under it, sent from AdaptlyPost or from the platform's own app",
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "repliedAt": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "status": {
      +    "description": "One of: UNREAD, READ, DONE",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "text": {
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedOutput schema / properties / result / type
      Added value: +"object"
    • addedOutput schema / required
      Added value: +[
      +  "result"
      +]
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say non-readonly, destructive, idempotent, open-world; the description goes well beyond by disclosing the permission needed (inbox.reply, held by Admin and Editor), the active-plan requirement, the confirmation requirement before mutating, and a full failure taxonomy with per-code instructions (do not retry on inbox_reconnect_required, wait on 429, retry later on 503). The no-retry and reconnect guidance is exactly the kind of operational context annotations cannot carry.

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-loaded with purpose, then confirmation, then the error catalog, so the most decision-relevant content comes first. The dense run-on of error codes (403/404/429/503) is justified but is the least readable part and slightly compresses permission details into the same sentence.

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?

For a destructive mutation with an output schema already covering return values, the description supplies everything an agent needs: prerequisite permission, plan state, user-confirmation policy, capability gate, and recovery behavior for each documented failure. Nothing about correct invocation is left to inference.

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% and both parameters (id, workspaceId) already document their source tools and the workspace-consistency rule. The description adds no parameter-level detail — such as accepted id formats or what happens if workspaceId is omitted — so it only meets the baseline for a fully documented schema.

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 ("Hide a comment on the platform") plus the observable effect ("so other people no longer see it") and the capability gate (capabilities.canHide). It also names the inverse sibling unhide_inbox_comment, so an agent can distinguish the pair without opening 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 Guidelines5/5

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

Gives an explicit procedural rule — confirm with the user first, naming the comment — and an explicit stop condition when the comment cannot be hidden (400 inbox_action_unsupported). It also points to unhide_inbox_comment as the reverse operation, so when-to-use and when-not-to-act are both covered.

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