Skip to main content
Glama
sean3808

bes-mcp

by sean3808

Show mail sync status

mail_sync_status
Read-onlyIdempotent

Reports the status and timestamps of the most recent email synchronization run, plus the newest stored message timestamp, without starting or changing a sync.

Instructions

Report the state of the most recent synchronization run together with the timestamp of the newest stored message, in one response. Accepts no parameters and never starts or affects a synchronization run. The four fields -- last_sync_started_at, last_sync_ended_at, last_sync_status (never_synced, running, completed, or failed), and latest_message_at -- are always present; a field whose value is unknown is null rather than omitted. Reports facts only: no freshness verdict, staleness duration, or composite score is computed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds substantive guarantees on top: the four fields are always present with null rather than omission for unknown values, and no freshness verdict, staleness duration, or composite score is computed. That last point is important, since it warns the agent the tool will not answer 'is mail stale?' directly.

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?

Three sentences, each earning its place: scope/no-params first, field contract second, computation limits last. The field enumeration overlaps slightly with the output schema, but it carries the null-instead-of-omitted guarantee, so it is not wasted.

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?

Given a zero-parameter, read-only tool with an output schema already present, the description covers everything an agent needs: no side effects, no arguments, guaranteed field presence, null semantics, and the explicit absence of derived judgments. Nothing material 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?

There are zero parameters, so the baseline is 4. The description reinforces this by stating it accepts no parameters, which prevents an agent from hallucinating filter arguments, but there is nothing further to document semantically.

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?

The description names a specific verb and resource — reporting the state of the last synchronization run plus the newest stored message timestamp — which no sibling (mail_search, mail_show, mail_thread, etc.) covers. An agent can identify this as the lone sync-diagnostics tool without inspecting the schema.

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

Usage Guidelines4/5

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

It clearly delimits usage: accepts no parameters and never starts or affects a synchronization run, which tells the agent this is a passive diagnostic read and not a trigger. It stops short of explicit routing language (e.g., 'use this when the user asks whether mail is up to date'), so it is clear context rather than full when/when-not guidance.

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