Skip to main content
Glama

Mark all notifications read

mark_all_notifications_read
Idempotent

Clear your entire OpenProject notification inbox at once, or narrow by reason or project to mark only matching items as read. Use filters first to preview what will be cleared.

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

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
idsNoThe notification ids that were marked; null for the filter-based bulk tool.
readYesTrue when they were marked read, false when marked unread.
markedYesNumber 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.
messageYesHuman-readable confirmation of what happened.
Behavior5/5

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

The description adds significant behavioral context beyond the annotations: there is no undo, the return value `marked` is counted immediately before the bulk update (with a possible race nuance), and the tool deliberately only marks read, with no reverse twin. This goes well beyond the annotations' `readOnlyHint`, `idempotentHint`, and `destructiveHint` by explaining the operational consequences.

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?

The description is long but taut—every sentence earns its place: purpose, use cases, caveat, return semantics, and cross-references. It is front-loaded with the core purpose and structured logically, making it dense with operational guidance without any fluff.

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 the tool's complexity, the rich annotations, and the presence of an output schema, the description covers all bases: when to use it, what it does, what to check beforehand, what it returns, and how to reverse the action. No important context for invocation 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 input schema already provides 100% coverage for `reason` and `project_id` with clear descriptions. The tool description enriches this by explaining that both parameters 'narrow that blast radius' and 'do not create a preview', plus clarifying the default all-notifications behavior when omitted. This adds meaningful nuance beyond the schema, though it doesn't need to redefine the parameter formats.

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 opens with a concrete verb and resource: 'Mark everything matching the filters as read', with the default scope clearly defined as 'the whole inbox'. It distinguishes this bulk operation from the per-id sibling `mark_notifications` and the read-only `list_notifications`, making the tool's purpose unmistakable.

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?

It explicitly states when to use it ('clear my notifications', 'I have dealt with everything in project X') and recommends previewing with `list_notifications(unread_only=true, ...)` using the same filters first. It also directs the reverse operation to `mark_notifications(ids=[...], read=false)` and warns about the lack of undo, giving clear when-to and when-not-to guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kar-thik/openproject-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server