Get message
get_messageRetrieve a message by its msg_... id, with its delivery timeline.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id (msg_...) |
get_messageRetrieve a message by its msg_... id, with its delivery timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message id (msg_...) |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds that the response includes a 'delivery timeline', which is useful beyond annotations, but it does not describe pagination, error behavior, auth requirements, or the timeline's contents.
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?
It is a single front-loaded sentence with no wasted words. The core action, identifier requirement, and returned detail are all stated immediately.
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 single-parameter read tool, the description plus annotations and full schema coverage are sufficient to invoke it correctly. It also hints that the return includes a delivery timeline, though it could be slightly more complete by noting how to obtain the id or what the timeline contains.
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%, and the sole parameter is already documented as 'Message id (msg_...)'. The description restates the same id format but adds no additional syntax or semantic meaning beyond the schema, which matches the baseline of 3 when schema coverage is high.
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?
States a specific verb ('Retrieve') and resource ('message'), including the identifier form ('msg_... id') and an extra return detail ('delivery timeline'). It is distinguishable from list_messages by the 'by id' phrasing, but it does not explicitly distinguish itself from sibling get_scheduled_message or other message-related tools.
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 description implies you should use it when you already have a message id, but it gives no explicit when-to-use guidance versus alternatives such as list_messages or get_scheduled_message. There are no exclusions or routing conditions.
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.