Skip to main content
Glama

Get posting insights

get_analytics_insights
Read-only

Insights computed from the organization's own posting history over the last 12 months: best day/time slots to post (by average lifetime engagement per publication), engagement by content type (text/image/video), weekly posting cadence vs engagement, and averages. In bestTimes, dayOfWeek is 0 = Sunday … 6 = Saturday and slot n covers hours [n×4, (n+1)×4) — e.g. slot 2 is 8:00–12:00 — both in the organization's timezone; topSlots only includes cells with at least 3 samples. Treat thin buckets as hints, and say so when notEnoughData is true. Restrict every block to one platform or one connected account. For one Instagram account the response also carries audienceActivity: {data, reason} with the hours your followers are online (same dayOfWeek/slot cells, avgOnline followers per hour), or the reason it is empty (MISSING_PERMISSION, NOT_OFFERED, BELOW_FOLLOWER_THRESHOLD, NOT_COLLECTED_YET, NO_DATA, CONNECTION_INACTIVE, METRICS_OFF, METRICS_PAUSED) — never read an empty block as zero. For concrete times to schedule at, use suggest_posting_times.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_analytics_insights"
  }
}

Input Schema

NameRequiredDescriptionDefault
platformNoRestrict to one platform
organizationIdNoOrganization to act in — an id from list_organizations. Required when this connection was authorized for more than one organization; omit it when there is only one.
platformConnectionIdNoRestrict to one connected account (id from list_platform_connections) — use this when the organization has several accounts on the same platform. Its platform wins over `platform`; a different one is refused.

Output Schema

NameRequiredDescriptionDefault
cadenceNoPosting frequency vs engagement
averagesNo
platformNoFilter applied, or null for all
timezoneNoIANA zone all bucketing used
bestTimesNoDay-of-week × time-slot cells, plus the top slots
windowStartNo
contentTypesNoAverage engagement by media type
notEnoughDataNoTrue when the sample is too thin to read as signal
audienceActivityNoWhen this Instagram account's followers are online: {timezone, capturedAt, dayCount, slots[{dayOfWeek, slot, avgOnline, sampleCount}]} in the organization's timezone. Present only for one Instagram account
availablePlatformsNo
platformConnectionIdNoConnected-account filter applied, or null for every account

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "YOUTUBE",
      -  "PINTEREST",
      -  "FACEBOOK",
      -  "INSTAGRAM",
      -  "TIKTOK",
      -  "BLUESKY",
      -  "MASTODON"
      -]New value: +[
      +  "YOUTUBE",
      +  "PINTEREST",
      +  "FACEBOOK",
      +  "INSTAGRAM",
      +  "TIKTOK",
      +  "BLUESKY",
      +  "MASTODON",
      +  "TWITTER"
      +]
    • changedOutput schema / properties / audienceActivity / properties / reason / description
      Previous value: -"Why data is null: MISSING_PERMISSION | NOT_OFFERED | BELOW_FOLLOWER_THRESHOLD | NOT_COLLECTED_YET | NO_DATA | CONNECTION_INACTIVE; null when data is present. An empty block is not zero"New value: +"Why data is null: MISSING_PERMISSION | NOT_OFFERED | BELOW_FOLLOWER_THRESHOLD | NOT_COLLECTED_YET | NO_DATA | CONNECTION_INACTIVE | METRICS_OFF | METRICS_PAUSED; null when data is present. An empty block is not zero"
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the readOnly/openWorld annotations: discloses the 12-month lookback, the 3-sample minimum for topSlots, the notEnoughData caveat about thin buckets, the audienceActivity reason codes, and the warning never to read an empty block as zero. That is exactly the kind of interpretive context annotations cannot carry.

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?

Response blocks are front-loaded before encoding details and the caveats come last, and nearly every clause carries information. The long em-dash-chained sentence about slot encoding is dense enough to risk misparsing, which keeps it from a 5.

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?

Despite an output schema, the description supplies the semantic interpretation an agent needs: what dayOfWeek/slot mean, the timezone, the sample threshold, and the meaning of the audienceActivity reason codes. Nothing needed to call or interpret this tool correctly is missing.

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% and already documents platform, organizationId, and platformConnectionId including precedence. The description only echoes the scoping rule ('restrict every block to one platform or one connected account') without adding format or interaction detail beyond the schema, so baseline 3 applies.

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 with scope: insights computed from the organization's own posting history over the last 12 months, enumerating the blocks returned (bestTimes, engagement by content type, cadence, averages). It also distinguishes itself from suggest_posting_times, a nearby sibling, so an agent can pick it without opening schemas.

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?

Explicitly routes the agent elsewhere for actionable scheduling ('For concrete times to schedule at, use suggest_posting_times') and says to restrict every block to one platform or connected account. It does not contrast with the other analytics siblings (get_analytics_summary, get_account_insights, get_post_analytics), which would be needed for a 5.

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.

Resources