Skip to main content
Glama
facebook-mcp

facebook-mcp

by IvanBBaev

Reply to and hide a comment

facebook_reply_and_hide_comment

Posts a public reply under a Facebook comment and then hides that comment in one approved step, using a preview-first plan for spam or abuse moderation.

Instructions

Post a PUBLIC reply under a comment and then hide that comment, in one approved step — e.g. "We have sent you a DM" under spam or abuse. The reply goes first, so a failed reply hides nothing; a comment that is already hidden only gets the reply. Always previews first: apply needs the plan_id of that preview, and a comment edited or hidden in between makes the apply diverge. Each step reports its own outcome; if the hide fails, finish with facebook_hide_comment. Both steps are reversible (delete the reply, unhide the comment), but the reply is NOT idempotent — never retry blindly. Needs a PAGE token with pages_manage_engagement and the MODERATE task.

Input Schema

NameRequiredDescriptionDefault
applyNoSet true to actually perform the write. Omitted or false ⇒ the server decides from its configured write mode: usually a dry run that returns a plan preview and changes nothing, but a server (or package) configured apply-first performs the write. To be certain nothing happens, read the result: a dry run always reports the plan and says the write was NOT performed.
messageYesThe text to send. Written by you — Facebook rejects an empty message.
plan_idNoThe `planId` returned by a preceding dry-run preview of this same tool. Required for irreversible and spend-tier writes; plans expire a few minutes after they are created.
profileNoPage profile key (e.g. "brand-a") or a raw Page ID. Omitted ⇒ the default Page (FB_PAGE_ID).
attachmentNoOptional photo or GIF for the reply. Pass `url` with image_url / gif_url, `path` with photo_path.
comment_idYesComment ID, e.g. "123456_789012" as returned by facebook_list_comments. Not a post ID.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses ordering semantics (reply first, so a failed reply hides nothing), the already-hidden case, the preview/plan_id divergence rule, non-idempotency ('never retry blindly'), reversibility of both steps, and required token scopes plus MODERATE task. The annotation idempotentHint=false is reinforced and explained rather than merely echoed.

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 the core action and an example, then constraints in roughly priority order. Dense with semicolon-chained clauses, but nearly every clause carries a distinct operational fact, so little is wasted.

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 two-step mutation with no output schema and a nested attachment object, the description covers the preview requirement, per-step outcome reporting, failure fallback, and auth needs — everything an agent needs to invoke it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 real workflow meaning on top by tying `apply` and `plan_id` to the mandatory preview step and warning that a comment changed between preview and apply makes the plan diverge. It does not re-describe message/attachment/comment_id, which the schema handles.

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 compound action — public reply under a comment, then hide that comment — and names the exact outcome ('We have sent you a DM' under spam/abuse). It is clearly distinguishable from siblings facebook_reply_to_comment and facebook_hide_comment because it explicitly describes the combined step.

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 the when (spam or abuse triage), the when-not/escape hatch ('if the hide fails, finish with facebook_hide_comment'), and the prerequisite flow (preview first, then apply with plan_id). Alternatives and conditions are explicit rather than inferred.

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