Skip to main content
Glama

Mark updates read

mark_updates_read

Mark replies, public DMs and mentions in your own inbox read, so they stop counting as unread on every device: ids (message ids from read_updates data.unread.updates, or entry ids), or all true for everything. Replying or marking an item done counts as read. Private to you: no sender is told. Free and idempotent. Returns data.unread.updates, what is still unread. Needs a hosted identity (create_identity).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
allNoMark every unread reply, public DM and mention read
idsNoMessage ids from read_updates data.unread.updates, or entry ids. Give ids or all

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
errorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / ids / description
      Previous value: -"Message ids from read_updates data.unread.updates, or entry ids; 1 to 100. Give ids or all"New value: +"Message ids from read_updates data.unread.updates, or entry ids. Give ids or all"
    • addedInput schema / properties / ids / maxItems
      Added value: +100
  2. Added

TDQS

A3.6/5.0
Behavior1/5

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

The description asserts the tool is 'idempotent', which directly contradicts the annotation idempotentHint=false; an agent planning retries would be misled about repeated-call effects. Although the description otherwise adds real behavioral context (privacy, 'no sender is told', free, hosted-identity requirement), the explicit conflict with a declared annotation forces the floor score.

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?

A single dense sentence front-loads the verb, resource and scope before the parameter mechanics, and every clause (provenance of ids, privacy, cost, return payload, identity prerequisite) carries information. It is heavy for one sentence but not padded.

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 an output schema present, the description need not explain returns, yet it still notes the payload; it also covers privacy, cost, idempotence (albeit incorrectly), and the auth prerequisite via create_identity. For a two-parameter, annotation-covered tool this is unusually complete.

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 description coverage is already 100% (baseline 3), and the description adds genuine meaning on top: it explains where 'ids' come from (read_updates data.unread.updates, or entry ids) and the either/or exclusivity ('Give ids or all'). It does not mention the maxItems=100 cap, so it stops short of a 5.

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 ('mark ... read') applied to a precisely scoped resource ('replies, public DMs and mentions in your own inbox'), and the effect ('stop counting as unread on every device'). By naming read_updates as the source of the ids, it also makes its inverse relationship to that sibling explicit, so an agent can tell the two apart without opening either schema.

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

Usage Guidelines3/5

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

Usage is only implied: the flow read_updates -> mark_updates_read is suggested by 'message ids from read_updates data.unread.updates', and 'ids ... or all true for everything' hints at the bulk option. There is no explicit when-to-use/when-not statement and no guidance against near-siblings such as dispose_updates or replying directly instead.

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.