Skip to main content
Glama

Read a channel

get_channel_messages

Read messages from a studio channel, oldest first, with author, time, text, and attachment URLs. Use the lastMessageId as 'since' to fetch only new messages for efficient polling.

Instructions

Messages in a studio channel, oldest first, with author, time, text and attachment URLs. Pass the lastMessageId from the previous read as since to get only what is new — that is how a poll avoids re-reading. Attachment links are signed and expire within about a day, so download art when you see it rather than saving the URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoHow many at most. Defaults to 50.
sinceNoOnly messages after this one. A message id, or a time like 2026-08-19T10:00:00Z.
channelIdYesChannel id from list_artist_channels.
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden itself. It reveals ordering semantics, incremental pagination behavior, and the critical caveat that signed attachment URLs expire within about a day. It could briefly mention permission requirements, but the disclosed behavior is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. It front-loads the main purpose, then adds the most operationally important details about incremental reads and expiring attachment URLs.

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?

This is a read tool with no output schema, and the description covers the returned message contents, ordering, pagination pattern, and the signed-URL expiration caveat. That is enough for an agent to select the tool and interpret its response without ambiguity.

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 adds real value for `since` by explaining it should be the lastMessageId from prior reads, which clarifies the polling workflow better than the schema alone.

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 clearly states what the tool returns: messages in a studio channel, oldest first, with author, time, text, and attachment URLs. It is specific enough to distinguish from sibling tools like send_channel_message or get_notification_history.

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?

The description gives a concrete usage pattern: pass lastMessageId from a previous read as `since` to poll only new messages. It does not name alternative tools for comparison, but the guidance makes the appropriate use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Haydebug/whitehat-thumbnails-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server