Skip to main content
Glama

Get Inbox Summary

get_inbox_summary
Read-onlyIdempotent

Unread counts for the workspace inbox and what each connected account can do in it. The inbox holds comments on the account's posts (Facebook, Instagram, Threads, YouTube, Bluesky, Mastodon and LinkedIn), mentions (Facebook, Instagram, Threads, Bluesky and Mastodon), direct messages (Facebook, Instagram, Bluesky and Mastodon) and Google Business Profile reviews; TikTok and X have no inbox. Each account lists comments, mentions, messages and reviews as AVAILABLE, RECONNECT_REQUIRED (the account lacks the platform permission, some of which still wait on platform review, or its token expired: tell the user to reconnect it in AdaptlyPost) or UNSUPPORTED. Returns { unread, accounts }: unread comment, mention, conversation and review counts, and one entry per account with each channel's access. Call it first when the user asks what is new or why a channel is empty. The inbox syncs every 10 minutes per account; refresh_inbox asks for a sync now. Needs the inbox.read permission, which every role holds. Takes only the optional workspaceId.

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_inbox_summary"
  }
}

Input Schema

NameRequiredDescriptionDefault
workspaceIdNoWorkspace to act in: an id from list_workspaces. Omit to act in the workspace list_workspaces marks current. Use the same workspaceId for every call about the same workspace, since ids from one workspace (accounts, posts, uploads) do not exist in another

Output Schema

NameRequiredDescriptionDefault
resultYesAn object with unread { comments, mentions, conversations, reviews } and accounts: one { accountId, platform, accountName, avatarUrl, needsReconnect, lastSyncedAt, lastErrorCode, comments, mentions, messages, reviews } per account, each channel AVAILABLE, RECONNECT_REQUIRED or UNSUPPORTED.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedOutput schema / properties / result / properties / accounts / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "accountId": {
      -          "description": "The account `id` from GET /social-accounts",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "accountName": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "avatarUrl": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "comments": {
      -          "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lastErrorCode": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lastSyncedAt": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "mentions": {
      -          "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "messages": {
      -          "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "needsReconnect": {
      -          "type": [
      -            "boolean",
      -            "null"
      -          ]
      -        },
      -        "platform": {
      -          "description": "One of: FACEBOOK, INSTAGRAM, THREADS, TIKTOK, TWITTER, BLUESKY, LINKEDIN, PINTEREST, YOUTUBE, MASTODON, TELEGRAM, GOOGLE_BUSINESS, TUMBLR, WORDPRESS",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "reviews": {
      -          "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / result / properties / accounts / description
      Added value: +"One entry per connected account, with what each inbox channel can do"
    • addedOutput schema / properties / result / properties / accounts / items
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "accountId": {
      +      "description": "Account id from list_accounts",
      +      "type": "string"
      +    },
      +    "accountName": {
      +      "description": "Account name as shown on the platform",
      +      "type": "string"
      +    },
      +    "avatarUrl": {
      +      "description": "Profile picture URL; null when there is none",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "comments": {
      +      "description": "Whether the comments channel works for this account: AVAILABLE, RECONNECT_REQUIRED (reconnect the account in AdaptlyPost) or UNSUPPORTED",
      +      "type": "string"
      +    },
      +    "lastErrorCode": {
      +      "description": "Error from the last sync; null when it succeeded",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "lastSyncedAt": {
      +      "description": "ISO 8601 time of the last inbox sync; null before the first",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "mentions": {
      +      "description": "Whether the mentions channel works for this account: AVAILABLE, RECONNECT_REQUIRED (reconnect the account in AdaptlyPost) or UNSUPPORTED",
      +      "type": "string"
      +    },
      +    "messages": {
      +      "description": "Whether the messages channel works for this account: AVAILABLE, RECONNECT_REQUIRED (reconnect the account in AdaptlyPost) or UNSUPPORTED",
      +      "type": "string"
      +    },
      +    "needsReconnect": {
      +      "description": "True when the account must be reconnected in AdaptlyPost",
      +      "type": "boolean"
      +    },
      +    "platform": {
      +      "description": "Platform name, such as INSTAGRAM",
      +      "type": "string"
      +    },
      +    "reviews": {
      +      "description": "Whether the reviews channel works for this account: AVAILABLE, RECONNECT_REQUIRED (reconnect the account in AdaptlyPost) or UNSUPPORTED",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "accountId",
      +    "platform",
      +    "accountName",
      +    "avatarUrl",
      +    "needsReconnect",
      +    "lastSyncedAt",
      +    "lastErrorCode",
      +    "comments",
      +    "mentions",
      +    "messages",
      +    "reviews"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / properties / accounts / type
      Added value: +"array"
    • addedOutput schema / properties / result / properties / unread / additionalProperties
      Added value: +true
    • removedOutput schema / properties / result / properties / unread / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "comments": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "conversations": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "mentions": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "reviews": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / result / properties / unread / description
      Added value: +"Unread counts across the workspace inbox"
    • addedOutput schema / properties / result / properties / unread / properties
      Added value: +{
      +  "comments": {
      +    "description": "Unread comments",
      +    "type": "integer"
      +  },
      +  "conversations": {
      +    "description": "Direct-message conversations with unread messages",
      +    "type": "integer"
      +  },
      +  "mentions": {
      +    "description": "Unread mentions",
      +    "type": "integer"
      +  },
      +  "reviews": {
      +    "description": "Unread Google Business Profile reviews",
      +    "type": "integer"
      +  }
      +}
    • addedOutput schema / properties / result / properties / unread / required
      Added value: +[
      +  "comments",
      +  "mentions",
      +  "conversations",
      +  "reviews"
      +]
    • addedOutput schema / properties / result / properties / unread / type
      Added value: +"object"
    • addedOutput schema / properties / result / required
      Added value: +[
      +  "unread",
      +  "accounts"
      +]
  2. Changed4 schema fields changed
    • addedOutput schema / properties / result / additionalProperties
      Added value: +true
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "accounts": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "accountId": {
      +              "description": "The account `id` from GET /social-accounts",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "accountName": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "avatarUrl": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "comments": {
      +              "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "lastErrorCode": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "lastSyncedAt": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "mentions": {
      +              "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "messages": {
      +              "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "needsReconnect": {
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "platform": {
      +              "description": "One of: FACEBOOK, INSTAGRAM, THREADS, TIKTOK, TWITTER, BLUESKY, LINKEDIN, PINTEREST, YOUTUBE, MASTODON, TELEGRAM, GOOGLE_BUSINESS, TUMBLR, WORDPRESS",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "reviews": {
      +              "description": "One of: AVAILABLE, RECONNECT_REQUIRED, UNSUPPORTED",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "unread": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "properties": {
      +          "comments": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "conversations": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "mentions": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "reviews": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  }
      +}
    • addedOutput schema / properties / result / type
      Added value: +"object"
    • addedOutput schema / required
      Added value: +[
      +  "result"
      +]
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is low, yet the description adds substantial context: a 10-minute per-account sync cadence, the existence of refresh_inbox to force a sync, the inbox.read permission requirement with the note that every role holds it, and the meaning of each access status including pending platform review and expired tokens. It also tells the agent what action to recommend (have the user reconnect the account in AdaptlyPost).

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 the return payload and purpose, then platform coverage, then status semantics, then usage rules — a sensible ordering. It is on the long side, with the platform lists enumerated twice (channel types and the per-platform parenthesis groups) and a return-shape sentence that partly duplicates the output schema, but no sentence is truly wasted.

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?

Covers everything an agent needs before calling: when to call it first, what it returns, platform and channel coverage, status semantics, permissions, and freshness expectations. With an output schema present it needn't explain the response further, and the single optional parameter is fully handled by the 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 description coverage is 100% and the single workspaceId parameter is already well documented in the schema, including id-vs-current-workspace behavior. The description only adds the fact that workspaceId is the sole and optional parameter, so the 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 resource and output (unread counts for the workspace inbox plus per-account channel access) and enumerates exactly which platforms and channel types feed it, including which platforms have no inbox at all. This is enough to distinguish it from list_inbox_comments, get_inbox_conversation and the other inbox siblings without opening a schema.

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

Usage Guidelines5/5

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

"Call it first when the user asks what is new or why a channel is empty" gives an explicit entry-point rule and a diagnostic use case, and the description names refresh_inbox as the alternative when the user wants a sync now rather than a summary. The AVAILABLE/RECONNECT_REQUIRED/UNSUPPORTED vocabulary further tells the agent how to interpret an empty channel.

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