Skip to main content
Glama
facebook-mcp

facebook-mcp

by IvanBBaev

Comment on post

facebook_comment_on_post

Post a public top-level comment as your Facebook Page on a post, using text, an image URL, or both. Use it for first comments with links; reply to existing comments instead.

Instructions

Post a PUBLIC top-level comment as the Page on a post — e.g. a first comment with a link. Takes message, an https attachment_url photo, or both. To answer a comment use facebook_reply_to_comment instead. @[page-id] mentions are passed through but Facebook reviews them. Reversible by deleting the comment, but NOT idempotent: if the response is lost, verify with facebook_list_comments before retrying, or you will post twice. 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.
messageNoThe 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.
post_idYesThe post ID, normally "{page-id}_{post-id}" as returned by facebook_list_posts. Not a comment ID — reply to a comment with facebook_reply_to_comment.
profileNoPage profile key (e.g. "brand-a") or a raw Page ID. Omitted ⇒ the default Page (FB_PAGE_ID).
attachment_urlNoOptional photo for the comment: a public https:// image URL Facebook fetches itself (no credentials in the URL).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing the PUBLIC visibility of the comment, that it is reversible via deletion, that it is NOT idempotent with a concrete double-post risk and recovery path, and that @[page-id] mentions are subject to Facebook review. The one omission is that it never mentions the apply/plan_id dry-run behavior, so a description-only reader could believe a call always writes — the schema carries that, but it is a notable behavioral gap for a write tool.

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?

Front-loads the action and scope, then packs alternatives, idempotency warning, and auth requirements into four tight sentences with no filler. Dense but every clause carries decision-relevant information.

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?

Covers the alternative tool, idempotency, reversibility, auth scopes, and content constraints for a 6-parameter write tool with no output schema. The remaining gap is the dry-run/apply-first default, which is fully documented in the schema but absent from the description.

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 earns above that by adding the real constraint that `message`, `attachment_url`, or both are needed (the schema only requires `post_id`), by clarifying the attachment is an https image Facebook fetches itself, and by noting mention pass-through semantics.

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 ("Post a PUBLIC top-level comment as the Page on a post") plus the scope distinction that matters most: top-level vs. reply. It names the sibling to use for the other case, so an agent can disambiguate from facebook_reply_to_comment 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?

Explicit routing: "To answer a comment use facebook_reply_to_comment instead." It also gives a concrete recovery procedure (verify with facebook_list_comments before retrying) and the exact permission/task requirements, which is when-to-use guidance at the operational level.

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