message_ack
Acknowledge received messages by marking them as read, removing unread indicators from the inbox.
Instructions
Mark one or more inbox messages as read.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message_ids | Yes |
Acknowledge received messages by marking them as read, removing unread indicators from the inbox.
Mark one or more inbox messages as read.
| Name | Required | Description | Default |
|---|---|---|---|
| message_ids | Yes |
Changes observed during successful MCP inspections.
v0.1.0Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states the mutation (mark as read) but does not disclose whether the operation is idempotent, whether it requires authentication, what happens for invalid IDs, or the impact on other state. The word 'mark' implies a state change but lacks depth.
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, clear sentence that is front-loaded with the action and object. It contains no filler or redundancy, making it highly efficient.
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 mutation tool, the description provides the core action but omits details like return value, error handling, idempotency, and permission requirements. Given the absence of an output schema and annotations, an agent might not know what to expect after calling it. However, the simplicity of the tool (single parameter, straightforward action) keeps the gaps moderate.
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 0%, so the description should compensate. It implies the 'message_ids' parameter by saying 'one or more inbox messages', which aligns with the schema's minItems=1 and maxItems=100. However, it does not explicitly name the parameter or clarify its format (e.g., string identifiers). The description adds some meaning but not enough to fully cover the parameter's semantics.
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 uses a specific verb ('Mark') and resource ('inbox messages as read'), which clearly conveys the tool's function. It distinguishes itself from siblings like 'inbox' (which likely lists messages) and 'send'/'message_send' (which create messages) by focusing on the read-state mutation.
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?
No guidance on when to use this tool versus alternatives. It does not mention that it should be used after viewing messages, nor does it exclude cases like marking messages as unread (which might be another tool). The description only states the action, leaving usage context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.