Skip to main content
Glama

mail_mark

Change an Apple Mail message's read state to read or unread using its Message-ID or .emlx path, with dry_run preview.

Instructions

Mark an email as read or unread.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoNew read state (default read)
confirmNoRequired for deletes and multi-recipient sends; without it the call only previews
dry_runNoPreview only: report what would happen and change nothing (default false)
file_pathNoAlternative to message_id: the .emlx file_path from mail_search, resolved to its Message-ID
message_idNoRFC822 Message-ID of the email (from mail_search / mail_read results)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.8

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether the change is reversible, what permissions are needed, whether it affects only the local index or the server, or that the call can preview rather than apply. The confirm/dry_run preview semantics exist only in the schema, not in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler, appropriately sized for a narrowly scoped state-toggle tool. Nothing in it is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with no annotations and no output schema, the description is too thin. It never explains the target-identification choice between message_id and file_path, nor the preview/confirm behavior, both of which an agent needs to call it correctly without opening the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (status, confirm, dry_run, file_path, message_id) is documented in the schema itself, so the baseline of 3 applies. The description adds no meaning beyond the schema – it does not explain the status default or the message_id/file_path alternative.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Mark') and resource ('an email') plus the effect dimension ('as read or unread'), so the operation is unambiguous. It does not, however, distinguish itself from siblings like mail_archive or mail_trash, which also mutate message state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus mail_archive, mail_trash, or mail_read, and no mention of prerequisites or when marking is preferred over leaving a message unread. The single sentence is pure purpose, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.