Skip to main content
Glama

icloud_check_health

Read-only

Check iCloud Mail, Calendar, Contacts, and Mac helper in one read-only pass to see which services are reachable, how long each took, and why any sign-in or connection failed.

Instructions

Test every enabled area live in one call (mail sign-in, calendar list, address book, Mac helper) and report which work, how long each took and why any failed.

Use when: a tool failed with a sign-in, connection or timeout error, before telling the owner a service is down. Not for the Mac helper alone (icloud_get_helper_status is instant and shows its queue) or for the time (use icloud_get_time). Parameters: none; it always checks every area enabled on this server. Behavior: read-only. It signs in to IMAP afresh and opens INBOX read-only, lists calendars over CalDAV, reads one address-book entry over CardDAV and reads the helper's status. Areas run in parallel, so it takes as long as the slowest. Failures are reported in the result, never raised. It still answers while the owner has paused the server. Returns: {ok, since_start_seconds, areas, safety_warnings_since_start}, plus paused and a note when paused.

  • ok is true only when every area passed. Disabled areas are absent from areas.

  • Each area has ok, ms and, on failure, error (credentials masked).

  • Per area: mail adds inbox_messages, calendar the calendar count, contacts the contact count, mac_helper its online status.

  • mail, calendar and contacts add connections: whether kept connections were warm before the check.

  • safety_warnings_since_start counts how often third-party text looked hostile.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "title": "icloud_check_healthDictOutput",
      -  "type": "object"
      -}New value: +null
  2. Changed1 schema field changedv0.7.0
    • removedInput schema / title
      Removed value: -"icloud_check_healthArguments"
  3. Addedv0.4.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses that IMAP sign-in is fresh, INBOX is opened read-only, CalDAV/CardDAV calls are made, areas run in parallel (latency = slowest area), failures are reported rather than raised, and it still answers while the server is paused. That is exactly the operational context annotations cannot convey.

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

Conciseness4/5

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

Front-loaded purpose followed by clearly labelled Use when / Parameters / Behavior / Returns sections, so it scans well. It is dense and includes some scannable bullet detail that a shorter description could have compressed, but nothing is irrelevant to calling or interpreting the tool.

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

Completeness5/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 fully documents the return shape (ok, since_start_seconds, areas, safety_warnings_since_start, paused) including per-area fields, error masking and the connections/warmth signal. Nothing needed to interpret results is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; the description still states 'Parameters: none; it always checks every area enabled on this server', which usefully clarifies that scope is server-configured rather than caller-controlled.

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?

Opens with a precise verb+resource+scope: 'Test every enabled area live in one call (mail sign-in, calendar list, address book, Mac helper)'. It names the constituent checks and what it reports, which cleanly separates it from the granular mail/calendar/contacts siblings.

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

Usage Guidelines5/5

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

Explicit 'Use when:' trigger (a sign-in, connection or timeout error, before telling the owner a service is down) plus two named exclusions routing to icloud_get_helper_status and icloud_get_time. When-to-use, when-not-to-use and alternatives are all present.

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