Skip to main content
Glama
spa77k

mcp-icloud-mail

by spa77k

get_message

Read-only

Read one iCloud Mail message by UID, returning headers, plain-text body, and attachment list without marking it as read.

Instructions

Read one message by UID: headers, plain-text body and attachment list. Does not mark it as read.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYes
mailboxNoINBOX
maxCharsNoTruncate the body to this many characters

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, but the description adds a genuinely non-obvious side-effect disclosure: retrieving the message 'does not mark it as read.' That is exactly the kind of state-changing behavior an agent needs to know before calling a read tool. It stops short of covering error cases (invalid UID, nonexistent mailbox) or truncation behavior.

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?

Two tight sentences, front-loaded with the operation and payload, followed by the side-effect caveat. No filler or redundancy.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does outline headers, body, and attachments. It is adequate for a simple single-message read, though the mailbox default and error behavior remain unexplained.

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 only 33% (only maxChars is documented), so the description must compensate; it clarifies that uid identifies the single message being fetched, but says nothing about the mailbox parameter or its 'INBOX' default. Partial compensation warrants a baseline 3.

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

Purpose5/5

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

States a specific verb and resource ('Read one message by UID') and enumerates the returned payload (headers, plain-text body, attachment list). The singular scope plus the UID key cleanly separates it from list_messages/search_messages without needing to name them.

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?

No when-to-use or when-not-to-use guidance, and no mention of alternatives or prerequisites (e.g., that the UID must first come from list_messages or search_messages). The intended use is only inferable from the verb.

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