Mark candidate messages read
mark_hiring_messages_readMark candidate messages read. For messages the employer has seen. A ready-to-read summary is in say.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | ||
| message_ids | No |
mark_hiring_messages_readMark candidate messages read. For messages the employer has seen. A ready-to-read summary is in say.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | ||
| message_ids | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the safety question is answered structurally. The description adds only a scoping hint about which messages qualify; it says nothing about what state changes (unread counters, notification effects) or the odd 'say' output field it references.
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?
Short and front-loaded, which is good. But the closing sentence 'A ready-to-read summary is in `say`' is cryptic and unexplained — it references a return field not present in the schema, so it consumes space without informing the caller.
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?
No output schema exists and both parameters are undocumented, so the description carries the full burden — yet it omits parameter meaning, permission prerequisites, and the effect of marking messages read. For a mutation tool with 0% schema coverage this is insufficient.
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% and neither thread_id nor message_ids appears anywhere in the description. With both parameters technically optional and unexplained in both places, an agent gets no signal on what to pass or whether one is required.
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 and resource ('mark candidate messages read'), and the word 'candidate' positions it on the employer side versus the sibling mark_messages_read. However, it never explicitly names or contrasts that sibling, leaving the distinction to inference.
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?
'For messages the employer has seen' gives a scope condition for when it applies, which is more than nothing. But there is no guidance on when to prefer it over mark_messages_read, no prerequisite (e.g. must the thread be fetched first), and no note on behavior when called with no ids.
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.