Skip to main content
Glama

Mark my notifications as read

mark_notifications_read
DestructiveIdempotent

Mark some of the signed-in user’s notifications as read (ids from list_notifications), or all of them. Only notifications this connection can read are affected.

Instructions

Mark some of the signed-in user’s notifications as read (ids from list_notifications), or all of them. Only notifications this connection can read are affected. They cannot be marked unread again, so only do this when the user asked; they approve it on BugSecure first, where the notifications are named.

Input Schema

NameRequiredDescriptionDefault
allNoMark every notification read instead.
idsNoUp to 50 notification ids.

Output Schema

NameRequiredDescriptionDefault
allNo
markedIdsNoWith ids: those marked read.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, and the description earns credit by specifying exactly what is destroyed ('they cannot be marked unread again') and the scope restriction ('Only notifications this connection can read are affected'). It does not address edge behavior such as what happens if both 'all' and 'ids' are supplied or what the output contains, which keeps it just short of a 5.

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?

Two sentences, front-loaded with the action and its modes, followed by the safety gating. Every clause carries distinct weight — provenance, scope, irreversibility, and approval requirement — with no filler.

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 tool has 2 well-described params, a full annotation set, and an output schema, so the description only needs to cover the mutation's semantics and risk; it does both, including the irreversible nature and the external approval step an agent must expect before calling.

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 the non-obvious provenance of 'ids' (from list_notifications) and confirms 'all' means 'all of them'. It adds nothing about precedence between 'all' and 'ids' or about the 50-id cap, which the schema already carries.

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 ('Mark some of the signed-in user's notifications as read') plus the two modes (specific ids or all). It also names the sibling that supplies the ids (list_notifications), so the agent can immediately distinguish this mutator from the reader 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 Guidelines5/5

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

Gives explicit when-to-use ('only do this when the user asked'), a prerequisite ('they approve it on BugSecure first'), and the upstream source of the argument ('ids from list_notifications'). That is are real exclusions and alternatives rather than implied usage.

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