Skip to main content
Glama
facebook-mcp

facebook-mcp

by IvanBBaev

Set moderation settings

facebook_set_moderation_settings
Idempotent

Update a Facebook Page’s blocked words and profanity filter by adding or removing terms, with a preview before applying changes.

Instructions

Change the Page's blocked words and profanity filter. blocked_words is a DELTA (add / remove) against the current list — the tool computes and writes the full list, so nothing you do not name is dropped. Words are trimmed, compared case-insensitively and cannot contain commas. Applies Page-wide: matching comments are hidden automatically. The preview shows the change and the resulting list size; apply needs its plan_id, and a list changed by someone else in between makes the plan diverge. Needs a PAGE token (scope still being confirmed, probe P-7).

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.
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).
blocked_wordsNoDelta against the current list; the tool computes and writes the full list.
profanity_filterNoOFF, MEDIUM or STRONG.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.1/5.0
Behavior3/5

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

Strong domain-specific disclosure: blocked_words is a DELTA, so unnamed entries survive (consistent with destructiveHint=false), words are trimmed/case-insensitive/comma-free, and matching comments are hidden Page-wide — a side effect the annotations never mention. The auth note ('needs a PAGE token, scope still being confirmed, probe P-7') is unusually candid. However, the description duplicates the preview/apply mechanics already spelled out at length in the apply and plan_id schema descriptions, so its incremental behavioral value over structured data is smaller than the word count suggests.

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 and the delta contract, then validation rules, then the preview/apply flow, then auth. Dense but every sentence carries information; the trailing token/scope caveat is slightly internal-flavored but still actionable.

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 no output schema, the description still tells the agent what a preview returns (the change and resulting list size), what apply requires, and what auth is needed — enough to call it correctly. Minor gaps remain: no statement of what happens if the same word appears in both add and remove, or of failure modes.

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 baseline is 3; the description earns the step up by explaining that plan_id must come from a prior preview of this same tool and that the plan expires/diverges, which the schema only partly says. It adds operational meaning for blocked_words as a computed full-list write rather than a blind patch.

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+resource pair ('Change the Page's blocked words and profanity filter') and names the exact settings surface it owns, which cleanly separates it from the read-side sibling facebook_get_moderation_settings. An agent knows exactly what it mutates without opening the schema.

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?

Gives a clear operating procedure: preview first, then apply with the returned plan_id, and warns that a concurrent list change makes the plan diverge. It does not name the sibling read tool for inspecting current state, so the 'when to inspect vs when to change' routing is left implicit.

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