Skip to main content
Glama

Mark all notifications read

mark_all_notifications_read
Idempotent

Mark all matching unread notifications as read to clear your inbox or a project after review. Narrow by reason/project, and preview with list_notifications first because there is no undo.

Instructions

Mark everything matching the filters as read — the whole inbox by default.

Use it for "clear my notifications" or "I have dealt with everything in project X". Called with no arguments it marks every unread notification of the token owner as read, across all projects; reason and project_id narrow that blast radius, they do not create a preview. Check what is about to disappear with list_notifications(unread_only=true, ...) using the same filters first — there is no undo beyond re-marking individual ids unread.

Returns {marked, read, message}, where marked is how many unread notifications matched the filters at the moment of the call (counted immediately before the bulk update, so a notification arriving during the call may be counted differently than it was marked).

This tool only ever marks read. There is deliberately no "mark everything unread" twin: that is a mistake with no upside, and the reverse direction stays available per-id through mark_notifications(ids=[...], read=false).

Cross-references: preview or page the inbox with list_notifications; mark a handful of rows with mark_notifications.

Input Schema

NameRequiredDescriptionDefault
reasonNoOnly clear notifications with this trigger (mentioned, assigned, watched, …). Omit to clear every unread notification the filters allow. dateAlert is Enterprise-gated and is rejected with an explanatory hint on Community instances.
project_idNoOnly clear notifications belonging to this project (numeric id or identifier, from list_projects). Omit to clear across all projects.

Output Schema

NameRequiredDescriptionDefault
idsNo
readYes
markedYes
messageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.4.0
    • removedOutput schema / description
      Removed value: -"Outcome of a mark-read/unread call."
    • removedOutput schema / properties / ids / default
      Removed value: -null
    • removedOutput schema / properties / ids / description
      Removed value: -"The notification ids that were marked; null for the filter-based bulk tool."
    • removedOutput schema / properties / marked / description
      Removed value: -"Number of notifications the call covered. For mark_notifications this is the number of ids sent; for mark_all_notifications_read it is how many unread notifications matched the filters when the call ran."
    • removedOutput schema / properties / message / description
      Removed value: -"Human-readable confirmation of what happened."
    • removedOutput schema / properties / read / description
      Removed value: -"True when they were marked read, false when marked unread."
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations: discloses the blast radius of the no-argument call, that filters only narrow it and never produce a preview, that there is no bulk undo beyond re-marking individual ids, and that the tool only ever marks read. It even explains the counting semantics of `marked` relative to concurrent arrivals, which no annotation covers.

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 with the destructive scope in bold and the usage triggers, then the warning, then return values, then rationale and cross-references. Slightly long — the design-rationale paragraph about the absent 'mark everything unread' twin is interesting but not needed to call the tool correctly.

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?

For a zero-required-param bulk mutation, an agent needs to know scope, irreversibility, return shape, and alternatives — all present, and the output fields are explained despite an output schema existing. 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?

Schema coverage is 100%, so the baseline is 3; the description adds genuine meaning by framing both params as narrowing the blast radius rather than scoping a preview, which changes how an agent reasons about them. It does not restate enum values or id formats, leaving that to the schema.

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?

First line states a specific verb (mark as read), resource (notifications), and scope (everything matching filters, whole inbox by default). It explicitly distinguishes itself from its closest siblings by naming list_notifications for previewing and mark_notifications for per-id marking.

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?

Gives concrete usage triggers ("clear my notifications", "I have dealt with everything in project X") and names the alternative route for a handful of rows. It also prescribes a pre-flight step with list_notifications(unread_only=true) using the same filters, which is unambiguous guidance on when and how to use it.

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