mark_message
Mark an inbox item read or unread (read defaults true). Requires handle + secret.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| read | No | ||
| handle | Yes | ||
| secret | No | ||
| item_id | Yes |
Mark an inbox item read or unread (read defaults true). Requires handle + secret.
| Name | Required | Description | Default |
|---|---|---|---|
| read | No | ||
| handle | Yes | ||
| secret | No | ||
| item_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false; the description adds the default for the 'read' parameter and the authentication requirement, but does not elaborate on behavioral traits like side effects or error conditions beyond what annotations provide.
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, front-loaded sentence that efficiently conveys the core purpose and a key default, with no unnecessary words.
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 toggle tool with no output schema, the description covers the main action and authentication context, but omits details on the return value, handling of invalid item_id, and the precise role of the 'secret' parameter.
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 must compensate. It provides defaults for 'read' but misstates that 'secret' is required (schema lists it as optional) and does not explain 'item_id'. This ambiguity reduces reliability.
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 clearly states the action ('mark an inbox item read or unread'), includes the default behavior ('read defaults true'), and differentiates it from sibling tools like 'archive_message' or 'read_message' by specifying the precise action on read status.
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 mentions the prerequisite 'requires handle + secret' but does not provide explicit guidance on when to use this tool versus alternatives (e.g., archive_message) or when not to use it.
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.
Many tools serve similar purposes (e.g., web_read vs browse_read, web_discover vs browse_discover, research vs web_search + browse). Descriptions help differentiate, but the overlap is notable.
Most tools use a consistent verb_noun snake_case pattern (e.g., archive_message, browse_navigate). Minor deviations like standalone 'browse' and 'identity' are acceptable.
57 tools is very high for a single server, even with discover_tools. The broad domain coverage does not justify the count; it feels overloaded.
Covers identity, memory, browsing, human tasks, errands, messaging, and research comprehensively. Minor gaps might exist (e.g., no explicit agent-to-agent contract tools), but core workflows are well-supported.