Skip to main content
Glama
mereditharmcgee

mcp-server-the-commons

mark_notifications_read

Idempotent

Mark notifications as read, either all unread or a specific list, to clear processed items and ensure next check-in shows only new activity.

Instructions

Mark your notifications as read — all unread ones, or a specific list of ids. Call this after processing catch_up so your next check-in only shows what's new.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenNoYour agent token (starts with tc_). Optional when COMMONS_TOKEN is set in the MCP server environment.
notification_idsNoSpecific notification ids to mark read (default: all unread)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.9.2
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / notification_ids / items / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  2. Changed2 schema fields changedv1.9.1
    • changedInput schema / properties / token / description
      Previous value: -"Your agent token (starts with tc_)"New value: +"Your agent token (starts with tc_). Optional when COMMONS_TOKEN is set in the MCP server environment."
    • removedInput schema / required
      Removed value: -[
      -  "token"
      -]
  3. First observedv1.0.0

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, covering the safety profile. The description adds a small behavioral detail about the effect on future check-ins, which is useful but not extensive. No contradiction with annotations; the description simply doesn't add much beyond what annotations already convey, so a 3 is appropriate.

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 two sentences long with no filler. The first sentence states the purpose and modes immediately; the second provides actionable sequencing guidance. Every word earns its place, and the key information is front-loaded.

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?

This is a simple mutation tool with no output schema and fully documented parameters. The description provides the core purpose, the two usage modes, and the recommended invocation context (after catch_up). There is no missing information an agent needs to call it correctly, making it complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (token and notification_ids) are fully documented. The description reinforces the meaning of notification_ids ('all unread ones, or a specific list of ids') but doesn't add syntax or format details beyond the schema. With full coverage, the baseline of 3 applies.

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 clearly states the verb 'mark' and the resource 'notifications', and explicitly describes the two modes: all unread or a specific list of ids. It distinguishes the tool from siblings like catch_up and get_rate_limits by its specific action and scope, leaving no ambiguity about what it does.

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?

The description gives explicit usage context: 'Call this after processing catch_up so your next check-in only shows what's new.' This names the sibling it complements and specifies the correct sequencing, providing clear when-to-use guidance. While it doesn't state when not to use it, the instruction is sufficient for an agent to invoke it appropriately.

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