Skip to main content
Glama

Unlike Comment

unlike_inbox_comment
DestructiveIdempotent

Take back the account's like on a comment, on Facebook, Bluesky, Mastodon and LinkedIn. A comment whose capabilities.canLike is false answers 400 inbox_action_unsupported; stop there. 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": "unlike_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 likedByAccount: false. 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.2/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, destructive=true, idempotent=true, openWorld=true), the description adds required permission (inbox.reply, Admin/Editor), an active-plan prerequisite, and per-error-code semantics with retry policy. That is substantial added context, though it does not state what the like removal affects beyond the comment itself.

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?

Purpose is front-loaded in the first sentence, followed by a compact error-code playbook; each clause carries actionable information (stop, reconnect, wait, retry). No filler or repetition of the schema.

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?

With rich annotations, a fully documented schema, and an output schema present, the description covers auth, plan, failure modes, and retry guidance — enough to call it correctly. The only thin spot is that it never ties the operation back to like_inbox_comment as its counterpart.

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 both id and workspaceId are already documented in the input schema, including the workspace-consistency note. The description only incidentally reinforces them ('the id is unknown in this workspace'), adding no format or sourcing detail beyond the 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?

The description states a specific verb+resource ('Take back the account's like on a comment') and enumerates the supported platforms, making the inverse relationship to like_inbox_comment obvious without naming it. An agent can distinguish this from like_inbox_comment, hide_inbox_comment, or delete_inbox_comment from the text alone.

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?

It gives explicit stop conditions ('A comment whose capabilities.canLike is false ... stop there') and tells the agent not to retry on 403, which is real when-not-to-use guidance. It does not name a sibling alternative (e.g., like_inbox_comment to reverse the action), so it falls short of full alternative routing.

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