get_conversation_messages
Retrieve messages from a Bluesky direct message conversation, newest first with cursor pagination. Optionally clear the unread count.
Instructions
Read the messages of a Bluesky direct-message conversation (chat.bsky.convo.getMessages, proxied to the bsky.chat service), newest first with cursor pagination. Read-only by default: the conversation is only marked read (unread count cleared) when markRead is true. Requires authentication with an app password created with "Allow access to your direct messages" enabled. Use list_conversations to find conversation ids and send_direct_message to reply. Subject to per-tool rate limiting.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| convoId | Yes | Id of the conversation to read, from list_conversations or a send_direct_message response. | |
| limit | No | Max messages per page (1-100, default 50). Messages are returned newest first. | |
| cursor | No | Opaque pagination cursor from the previous response cursor field; omit for the newest page. | |
| markRead | No | When true, also mark the conversation read (chat.bsky.convo.updateRead) after fetching, clearing its unread count. Default false: reading is side-effect free. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| success | Yes | Whether the request succeeded. | |
| convoId | Yes | Id of the conversation that was read. | |
| messages | Yes | The messages for this page, newest first. Deleted messages keep their id/sender/timestamp but have no text. | |
| cursor | No | Opaque cursor for the next (older) page; absent when there are no more messages. | |
| hasMore | Yes | Whether another (older) page is available (a cursor was returned). | |
| markedRead | Yes | Whether the conversation was marked read by this call (markRead=true). |