Skip to main content
Glama
facebook-mcp

facebook-mcp

by IvanBBaev

Page Report

facebook_get_page_report
Read-onlyIdempotent

Generate a Facebook Page performance report comparing a chosen window with the preceding period, including follower changes, reach, views, engagement, and top posts.

Instructions

One-call Page performance report over a window (default last 28 days, [since, until) in Pacific Time) compared with the preceding window of equal length: followers (stock change reconciled with daily follows − unfollows), reach, views, engagement and Page views, each with its derivation (method) and a period-over-period delta ({abs, pct}; pct null when the previous value is 0), plus the top posts published in the window with lifetime post insights. Reach is a unique audience read from Meta's rolling 7- or 28-day window — other spans report reach as unavailable instead of summing daily uniques. eligible:false means every insights metric came back empty (usually a Page under 100 followers or a token without read_insights), not zero activity. For raw series use facebook_page_insights.

Input Schema

NameRequiredDescriptionDefault
sinceNoOnly with window "custom" (required there). Inclusive, YYYY-MM-DD.
untilNoOnly with window "custom" (required there). Exclusive, YYYY-MM-DD; span ≤ 90 days.
top_byNoengagement = reactions + comments + shares.engagement
windowNoPreset windows end at today 00:00 Pacific (exclusive), so the partial current day is excluded. "custom" needs since + until.last_28_days
compareNoAlso read the immediately preceding window of equal length.
profileNoPage profile key (e.g. "brand-a") or a raw Page ID. Omitted ⇒ the default Page (FB_PAGE_ID).
top_postsNoHow many top posts to list (0 skips the post scan).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive/openWorld, and the description layers on substantive context that annotations cannot convey: Pacific Time boundaries with an exclusive end so the partial current day is dropped, comparison-window semantics, and `delta.pct` being null when the previous value is 0. The reach caveat (unique audience from Meta's rolling 7/28-day window; other spans report unavailable rather than summing daily uniques) and the `eligible:false` explanation (empty metrics usually meaning <100 followers or a token without read_insights) are exactly the non-obvious failure modes an agent needs.

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?

A single dense paragraph, but it is front-loaded with the purpose and deliverable before the caveats, and each sentence contributes something (metric list, method/delta shape, reach limitation, eligible flag, sibling escape hatch). It is near the upper bound of readable length; breaking the reach and eligible notes into short clauses would improve scanning without losing content.

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?

There is no output schema, so the description must describe the return shape and it does: named metrics, each with a `method` derivation and a `delta` of {abs, pct}, plus top posts with lifetime insights and the `eligible` flag. Combined with 100% schema coverage for all 7 optional parameters, an agent has everything needed to call this correctly and interpret the result.

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 description coverage is 100%, so the schema already carries the per-parameter burden and baseline is 3. The description adds real value on top by explaining the interaction between `window` and `compare` (the comparison window is the immediately preceding window of equal length) and by making the [since, until) half-open interval and its Pacific Time basis explicit.

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 opening clause names a specific resource and deliverable — a one-call Page performance report over a window, compared against a preceding equal-length window — and enumerates the metrics returned (followers, reach, views, engagement, Page views, top posts). It closes by explicitly distinguishing itself from facebook_page_insights, so an agent can separate it from the sibling analytics tools 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 Guidelines4/5

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

The final sentence routes the agent explicitly: "For raw series use facebook_page_insights," which is a concrete alternative with a selecting condition. Defaults for window (last 28 days) and the custom-window requirement are stated. It lacks an explicit when-not clause (e.g., don't use for per-post analysis, use facebook_post_insights), so it stops short of full routing guidance.

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