Get a message
stream_get_messageFetch a single message by its id. GET /api/v2/chat/messages/{id}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id. | |
| show_deleted | No | Include the message even if soft-deleted. Default false. |
stream_get_messageFetch a single message by its id. GET /api/v2/chat/messages/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id. | |
| show_deleted | No | Include the message even if soft-deleted. Default false. |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the HTTP GET method and endpoint, which reinforces idempotence, but it does not disclose additional behavioral details such as error behavior or soft-deletion handling; that is left to the show_deleted parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose and immediately provides the endpoint. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only fetch with fully documented parameters and a readOnlyHint annotation, the description provides the necessary endpoint and intent. It does not describe the return payload, but no output schema exists and the tool's behavior is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (id and show_deleted) are already documented in the schema. The description does not add meaning beyond restating that a single message is fetched by ID, which is the baseline when the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch a single message by its id') and names the resource and identifier requirement. It clearly distinguishes this from sibling tools like stream_search_messages or stream_get_replies by emphasizing a single message fetch by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by its id' implies the tool should be used when the caller already has a message ID and needs that specific message. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named, so it does not fully support selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a distinct resource and action: app info, channel state, messages, reactions, replies, unread counts, and various query types. Even similar tools like get_channel vs query_channels are clearly separated by single-item vs list operations.
All tools follow the consistent pattern stream_<verb>_<resource> (e.g., stream_get_message, stream_query_channels, stream_send_message). Verb usage is coherent across the set.
With 13 tools, the set is well-scoped for a chat API server, covering core read, query, search, and write operations without excessive fragmentation.
Core chat workflows are covered: app info, channel access, messaging, reactions, threads, unread counts, and user/channel queries. Missing mutations like channel/message update or delete are notable but not severe, as the get-or-create channel behavior and send actions cover primary use cases.