Skip to main content
Glama
facebook-mcp

facebook-mcp

by IvanBBaev

Assign label

facebook_assign_label
Idempotent

Assign or remove a custom label on a person's PSID so their conversation appears in a Page inbox label view. Runs as a dry-run preview by default; set apply:true to change it.

Instructions

Put a custom label on one person (their PSID from a conversation), so the thread shows in the Page inbox label view; remove:true takes it off. The person is not notified. Dry run by default; apply:true changes it.

Input Schema

NameRequiredDescriptionDefault
psidYesThe person (PSID) to label, from facebook_get_conversation.
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.
removeNotrue takes the label off the person instead.
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).
label_idYesLabel id from facebook_list_labels or facebook_create_label.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A3.8/5.0
Behavior4/5

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

Adds genuinely new behavioral context beyond the annotations: the person is not notified, and the tool is a dry run by default with apply:true required to actually write. These are important traits the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true) do not convey. It doesn't mention the plan_id/expiry gate, which is left to the schema.

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?

Three short clauses, front-loaded with the primary action, then the inverse, then the side-effect/dry-run caveat. No wasted words.

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?

No output schema exists, so the description should carry return-behavior context; it does partially (dry run, no notification), but omits the plan_id confirmation flow and profile selection, which matter for a write tool with a dry-run gate. Still largely sufficient given the rich inline schema.

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 the baseline is 3. The description restates the apply (dry run default) and remove semantics but adds little beyond what the schema already documents, and says nothing about plan_id, profile, or label_id sourcing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Put a custom label on one person') plus the inverse operation ('remove:true takes it off'), and ties the operation to the PSID from a conversation. It does not explicitly name the sibling boundary (facebook_create_label / facebook_list_labels), so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description clarifies that this tool targets an existing person's thread rather than creating or listing labels, and covers the remove/apply toggle. However, it never says when to reach for this instead of facebook_create_label or facebook_list_labels, so usage is only implied.

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