message_thread
Read one conversation you are part of, oldest message first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | Conversation id from message_inbox |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Read one conversation you are part of, oldest message first.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | Conversation id from message_inbox |
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load; it does disclose an access constraint ('you are part of') and a deterministic ordering ('oldest message first'), which are real behavioral facts. It is silent on pagination/limits, whether reading marks messages as read, and how long threads are truncated.
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?
One short sentence with zero waste; the scope and ordering guarantee are front-loaded so an agent can act after a single read.
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?
An output schema exists, so return values need no explanation, and the single param is fully documented in the schema. However, for a read tool with no annotations, missing pagination or size-bound behavior leaves a meaningful gap for an agent planning retrieval.
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 coverage is 100% and the single parameter's schema description already explains the id's origin ('Conversation id from message_inbox'). The description adds no additional meaning about the id format or behavior beyond that, so the baseline 3 is appropriate.
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 (Read) and resource (one conversation), plus the ordering guarantee 'oldest message first'. This is clearly distinct from the sibling message_inbox (list of threads) and message_send (write), though the description never names those alternatives explicitly.
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?
Usage is only implied: you read a thread you are part of, and the schema property description ties thread_id back to message_inbox, which hints at the workflow. There is no explicit when-to-use/when-not statement or comparison with message_inbox or message_send.
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.