Skip to main content
Glama

List Inbox Conversations

list_inbox_conversations
Read-onlyIdempotent

List direct message conversations, most recent message first, on Facebook (Messenger), Instagram, Bluesky and Mastodon. Returns { conversations, total, hasMore, nextCursor }; each conversation has the account, the other participant, the last message text and time, its inbox status, replyWindowEndsAt and capabilities.canReply, but not the messages themselves, which get_inbox_conversation returns. Page with cursor while hasMore is true. An account whose messages show RECONNECT_REQUIRED in get_inbox_summary returns none until the user reconnects it in AdaptlyPost. The inbox syncs every 10 minutes per account; refresh_inbox asks for a sync now. Needs the inbox.read permission, which every role holds.

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": "list_inbox_conversations"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoItems per page (default 25)
sinceNoISO 8601 date-time. Only items created on the platform at or after it; for conversations, only those with a message at or after it. Omit for items of any date
cursorNonextCursor from the previous page. Omit for the first page; nextCursor is null on the last page
searchNoFree text to search the items for
statusesNoOnly items with these inbox statuses. Omit for every status
platformsNoOnly these platforms
accountIdsNoOnly these accounts, by the id from list_accounts. Omit for every account
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 conversations, total, hasMore and nextCursor (null on the last page). Each conversation is An InboxConversation: id, accountId, platform, accountName, participant { id, name, username, avatarUrl }, lastMessageText, lastMessageAt, lastMessageIsOwn, status, repliedAt, replyWindowEndsAt (the end of the 24-hour Facebook and Instagram reply window, else null), maxMessageLength and capabilities { canReply }.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / accountIds / description
      Previous value: -"Only these accounts, by the id from list_accounts, up to 50. Omit for every account"New value: +"Only these accounts, by the id from list_accounts. Omit for every account"
    • changedInput schema / properties / limit / description
      Previous value: -"Items per page, 1 to 100 (default 25)"New value: +"Items per page (default 25)"
    • changedInput schema / properties / search / description
      Previous value: -"Free text to search for, up to 200 characters"New value: +"Free text to search the items for"
    • changedInput schema / properties / since / description
      Previous value: -"ISO 8601 date-time; only items created on the platform at or after it"New value: +"ISO 8601 date-time. Only items created on the platform at or after it; for conversations, only those with a message at or after it. Omit for items of any date"
    • changedInput schema / properties / statuses / description
      Previous value: -"Only these statuses: UNREAD, READ or DONE. Omit for all"New value: +"Only items with these inbox statuses. Omit for every status"
    • addedOutput schema / properties / result / additionalProperties
      Added value: +true
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "conversations": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "accountId": {
      +              "description": "The account `id` from GET /social-accounts",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "accountName": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "capabilities": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": true,
      +                  "properties": {
      +                    "canReply": {
      +                      "type": [
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "id": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "lastMessageAt": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "lastMessageIsOwn": {
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "lastMessageText": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "maxMessageLength": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "participant": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": true,
      +                  "properties": {
      +                    "avatarUrl": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "id": {
      +                      "description": "The platform user id",
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "name": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "username": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "platform": {
      +              "description": "One of: FACEBOOK, INSTAGRAM, THREADS, TIKTOK, TWITTER, BLUESKY, LINKEDIN, PINTEREST, YOUTUBE, MASTODON, TELEGRAM, GOOGLE_BUSINESS, TUMBLR, WORDPRESS",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "repliedAt": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "replyWindowEndsAt": {
      +              "description": "When the FACEBOOK and INSTAGRAM 24-hour reply window closes; null on other platforms",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "status": {
      +              "description": "One of: UNREAD, READ, DONE",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "hasMore": {
      +    "type": [
      +      "boolean",
      +      "null"
      +    ]
      +  },
      +  "nextCursor": {
      +    "description": "Pass as `cursor` for the next page. Null on the last page",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "total": {
      +    "description": "Items matching the filters across every page",
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  }
      +}
    • addedOutput schema / properties / result / type
      Added value: +"object"
    • addedOutput schema / required
      Added value: +[
      +  "result"
      +]
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent and closed-world, but the description adds real behavioral context beyond them: the 10-minute sync cadence per account, the RECONNECT_REQUIRED empty-result case, the inbox.read permission, and what happens when a cursor is exhausted.

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 purpose and ordering, then return shape, then pagination, then operational caveats and permission. It is dense but every sentence carries information; the return-shape sentence is long and lists fields the output schema already declares, which is the only real redundancy.

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?

Given eight optional parameters, rich output schema and an open-world flag of false, the description covers the residual unknowns: pagination loop, cross-tool routing, empty-result causes, sync lag, and permission. Nothing an agent needs to call this correctly is missing.

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; the description goes one step further by describing pagination semantics ('page with cursor while hasMore is true') in a way that ties cursor to hasMore/nextCursor across calls. It does not add meaning to since, search, statuses or platforms beyond the schema, so it falls short of 5.

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 description gives a specific verb and resource ('List direct message conversations') with explicit ordering ('most recent message first'), the platforms covered, and explicitly distinguishes itself from get_inbox_conversation ('but not the messages themselves'). An agent can pick between the list, the detail, and the sibling comment/mention/review lists immediately.

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?

It states when to page ('Page with cursor while hasMore is true'), where to go for message bodies (get_inbox_conversation), and what to do when an account is stale (refresh_inbox asks for a sync now). The RECONNECT_REQUIRED caveat tells the agent when this tool will legitimately return nothing.

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