discord_read_messages
Fetch messages from a Discord channel or thread in chronological order, with pagination to go beyond the 100-message cap. Returns message content, author, and timestamp.
Instructions
Read messages from a text channel or thread, oldest-to-newest. Page backwards by re-calling with before set to the id of the oldest message you received, which walks a channel past the 100-message per-call cap. Requires the View Channel and Read Message History permissions. Returns { messages: [...] } with id, author, content, timestamp, attachment count, pinned flag. Use discord_search_messages to filter by keyword, or discord_fetch_pinned_messages for pinned messages only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Return only messages newer than this message ID (snowflake). Page forwards by passing the id of the newest message from the previous call. | |
| limit | No | How many messages to fetch per call (1–100). Default 20. | |
| since | No | Return only messages posted after this instant, as an ISO 8601 date or a date-time with an explicit offset (e.g. "2026-08-01" or "2026-08-01T09:00:00Z"). Convenience form of `after`: the call yields the oldest `limit` messages after that instant, so page forwards with `after` set to the newest id received. | |
| around | No | Return messages centered on this message ID (snowflake): Discord splits `limit` either side of it, and an even `limit` puts the extra message on the newer side. Use it to read outward from a known message, such as a discord_search_guild_messages hit. | |
| before | No | Return only messages older than this message ID (snowflake). Page backwards through history by passing the id of the oldest message from the previous call. | |
| channel_id | Yes | ID (snowflake) of the channel or thread to read from. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| messages | Yes |