Skip to main content
Glama

Account insights

get_insights
Read-onlyIdempotent

Engagement over a window: totals, per platform, per format. coverage says how much of the window the totals rest on: with_metrics + unreportable + awaiting = deliveries. Stories are never reported on by Instagram or Facebook, so format: "story" totals are zero however many went out. ever_delivered separates an empty window from an empty history.

Input Schema

NameRequiredDescriptionDefault
formatNoFilter to one format (feed post / reel / story)
platformNoFilter to one platform, e.g. instagram
since_daysNoWindow in days (default 30)

Output Schema

NameRequiredDescriptionDefault
okNoPresent and false only on a refusal.
errorNoWhat was refused, in a sentence, when `ok` is false.
postsNo
totalsNo
coverageNoHow much of the window the totals actually cover. with_metrics + unreportable + awaiting === deliveries.
by_formatNo
retriableNoFalse when asking again cannot change the answer.
deliveriesNo
error_codeNoMachine reason for a refusal.
since_daysNo
by_platformNo
replaced_byNoThe id the post has now, when you asked with one an edit retired. An edit gives a post a new id: get_delivery_receipt and get_post_metrics answer for this current version (and `asked_for` is the id you sent); update_post and delete_post refuse with error_code `replaced`. Use this id from here on.
median_sampleNoHow many deliveries the median came from. Under a handful it is a coin toss.
median_engagementNoThe baseline one post has to be read against — a raw total says nothing on its own.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / replaced_by / description
      Previous value: -"With error_code `replaced`: the id the post has now. An edit gives a post a new id; use this one."New value: +"The id the post has now, when you asked with one an edit retired. An edit gives a post a new id: get_delivery_receipt and get_post_metrics answer for this current version (and `asked_for` is the id you sent); update_post and delete_post refuse with error_code `replaced`. Use this id from here on."
  2. Changed1 schema field changed
    • addedOutput schema / properties / replaced_by
      Added value: +{
      +  "description": "With error_code `replaced`: the id the post has now. An edit gives a post a new id; use this one.",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it defines the coverage equation (with_metrics + unreportable + awaiting = deliveries) and warns that story formats always yield zero totals because Instagram/Facebook don't report them. It also explains ever_delivered as the signal separating an empty window from an empty account history — exactly the context needed to interpret results correctly.

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?

Four sentences, each carrying a distinct load — scope first, then the coverage definition, then the story-format trap, then the empty-vs-history distinction. Dense but front-loaded and waste-free, despite the backtick-heavy notation.

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?

An output schema exists so return values needn't be spelled out, and the description still adds the interpretive keys (coverage, ever_delivered) an agent needs. The remaining gap is competitive positioning among 16 siblings — nothing says when this beats get_post_metrics or get_top_posts.

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, but the description adds genuine meaning beyond the schema: it tells the agent that format: "story" will produce zero totals regardless of volume, which prevents a misread of the parameter's effect. Window semantics for since_days are only lightly reinforced.

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+resource with scope: engagement aggregated over a window, broken out as totals, per platform and per format. That distinguishes it in spirit from get_post_metrics/get_top_posts, but it never names a sibling or says explicitly that it is the aggregate endpoint.

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?

Usage is implied by the window/filter framing and the caveats about story formats, but there is no explicit when-to-use or when-not guidance, and no routing to alternatives like get_post_metrics for per-post detail or get_best_times for timing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.