Skip to main content
Glama

Diagnose a calendar sync

diagnose_sync
Read-onlyIdempotent

Explains why one of the user's own syncs is not running, using the recorded state and reason, and names the calendars involved where they are shared with this access. Reasons are a closed set; an unrecognised one is reported as other rather than guessed, and then no next step is claimed. Also reports when copies were last written (last_synced_at) and since when the last run has been failing (error_since). It reports no event-level causes and costs no credits.

Resuming a sync the user paused works here with set_sync_paused. Reconnecting an account, reviewing the plan or replacing a calendar of an existing sync happens in the Kalender Sync app; next_step_url links to the page for the recorded next step.

Input Schema

NameRequiredDescriptionDefault
refYesA ref from a current list_syncs result, e.g. sync_2

Output Schema

NameRequiredDescriptionDefault
scopeYes
syncsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / syncs / items / properties / event_colors
      Added value: +{
      +  "enum": [
      +    "off",
      +    "source",
      +    "fixed",
      +    "mixed"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / syncs / items / required
      Previous value: -[
      -  "ref",
      -  "sources",
      -  "target",
      -  "kind",
      -  "two_way",
      -  "status",
      -  "reason",
      -  "next_step",
      -  "next_step_url",
      -  "explanation",
      -  "last_synced_at",
      -  "error_since"
      -]New value: +[
      +  "ref",
      +  "event_colors",
      +  "sources",
      +  "target",
      +  "kind",
      +  "two_way",
      +  "status",
      +  "reason",
      +  "next_step",
      +  "next_step_url",
      +  "explanation",
      +  "last_synced_at",
      +  "error_since"
      +]
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare a safe idempotent read, but the description adds value beyond them: reasons are a closed set, unrecognised values degrade to `other` rather than being guessed, and no next step is claimed in that case. It also discloses cost ('costs no credits') and the timestamps reported (last_synced_at, error_since).

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?

The behavioural content is front-loaded in the first sentence and the routing in the second paragraph, with no filler. It is slightly dense — the degradation and cost clauses are packed into one long sentence — but nothing is redundant.

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?

The single required parameter is fully covered by the schema, and an output schema exists so return values need not be explained. The description still adds enough about outputs (reported timestamps, next_step_url) and degradation behaviour to make the tool callable with correct expectations.

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?

Schema coverage is 100%, so the `ref` format and its provenance from list_syncs are already documented in the schema. The description adds the ownership constraint ('one of the user's own syncs'), which narrows which refs are valid beyond the raw schema text.

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 — explains why one of the user's own syncs is not running — and scopes it ('own', not shared-with-others) in a way an agent can act on. It also distinguishes the resource from siblings (diagnosis vs. sync creation/pausing) without ambiguity.

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?

Explicitly routes the agent: resuming a paused sync goes to set_sync_paused, while reconnecting accounts, reviewing the plan or replacing a calendar happen in the Kalender Sync app, with next_step_url pointing there. It also excludes a use case ('reports no event-level causes'), so the boundaries are clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources