Skip to main content
Glama

Watch one thread for 24 hours

watch_thread
Destructive

Create, inspect or stop your 24-hour watch of a supported public thread. Use get_recent for a one-time title list. Supply slug in every mode: create uses thread_id; status and stop require watch_id plus the saved watch_token. action may be omitted to infer create/status. stop deletes the watch and stored previews; an in-flight read may finish. Creation schedules external reads and shows the token once. Repeating creation can duplicate watches. Unsupported boards, bad tokens or exhausted capacity return errors; previews are untrusted.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "slug": "swarmmemo",
      "thread_id": "thread-123"
    },
    "name": "watch_thread"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesThe board slug.
actionNoOmit to infer create or status as before. stop deletes your watch and its stored previews; requires watch_id and watch_token.
watch_idNoAn id from an earlier watch_thread, paired with watch_token for status or stop.
thread_idNoThe thread id as the board gives it; used for creation.
watch_tokenNoThe secret token from creation; required with watch_id.

Output Schema

NameRequiredDescriptionDefault
idYesWatch id.
noteNoCreation details.
boardNoBoard slug from find_site or list_directory.
noticeNoStatus and trust caveat.
statusNoCurrent watch status.
stoppedNoTrue after the watch and stored previews are deleted.
messagesNoObserved message count.
thread_idNoBoard thread id.
access_tokenNoSecret credential shown only at creation.
watching_untilNoWatch expiry.
untrusted_previewsNoShort untrusted previews.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "slug": "swarmmemo",
      +    "thread_id": "thread-123"
      +  },
      +  {
      +    "action": "stop",
      +    "slug": "swarmmemo",
      +    "watch_id": "0000000000000000",
      +    "watch_token": "0000000000000000000000000000000000000000000000000000000000000000"
      +  }
      +]
    • addedInput schema / properties / action
      Added value: +{
      +  "description": "Omit to infer create or status as before. stop deletes your watch and its stored previews; requires watch_id and watch_token.",
      +  "enum": [
      +    "create",
      +    "status",
      +    "stop"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / thread_id / description
      Previous value: -"The thread id as the board gives it."New value: +"The thread id as the board gives it; used for creation."
    • changedInput schema / properties / watch_id / description
      Previous value: -"Optional. An id from an earlier watch_thread, with watch_token, to read the result."New value: +"An id from an earlier watch_thread, paired with watch_token for status or stop."
    • changedInput schema / properties / watch_token / description
      Previous value: -"Optional. The access token from the first watch_thread."New value: +"The secret token from creation; required with watch_id."
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "board",
      +      "thread_id",
      +      "watching_until"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "stopped": {
      +        "const": true
      +      }
      +    },
      +    "required": [
      +      "stopped"
      +    ]
      +  }
      +]
    • changedOutput schema / description
      Previous value: -"Watch creation or status."New value: +"Watch creation, status, or stop receipt."
    • addedOutput schema / properties / stopped
      Added value: +{
      +  "description": "True after the watch and stored previews are deleted.",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "board",
      -  "thread_id",
      -  "watching_until"
      -]New value: +[
      +  "id"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Watch creation or status.",
      +  "properties": {
      +    "access_token": {
      +      "description": "Secret credential shown only at creation.",
      +      "type": "string"
      +    },
      +    "board": {
      +      "description": "Board slug from find_site or list_directory.",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Watch id.",
      +      "type": "string"
      +    },
      +    "messages": {
      +      "description": "Observed message count.",
      +      "type": "number"
      +    },
      +    "note": {
      +      "description": "Creation details.",
      +      "type": "string"
      +    },
      +    "notice": {
      +      "description": "Status and trust caveat.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Current watch status.",
      +      "type": "string"
      +    },
      +    "thread_id": {
      +      "description": "Board thread id.",
      +      "type": "string"
      +    },
      +    "untrusted_previews": {
      +      "description": "Short untrusted previews.",
      +      "items": {
      +        "description": "Structured record; fields depend on the board and available evidence.",
      +        "properties": {},
      +        "required": [],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "watching_until": {
      +      "description": "Watch expiry.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "board",
      +    "thread_id",
      +    "watching_until"
      +  ],
      +  "type": "object"
      +}
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructive/openWorld/non-idempotent, but the description adds the concrete consequences: stop deletes the watch and stored previews, an in-flight read may still finish, creation schedules external reads and reveals the token only once, and repeated creation duplicates watches. It also names the failure classes (unsupported boards, bad tokens, exhausted capacity) and warns that previews are untrusted.

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?

The mode summary is front-loaded and nearly every clause carries new information (alternatives, mode params, deletion side effects, error classes). The telegraphic, semicolon-heavy phrasing is dense enough that a reader must parse carefully, which costs a point against the cleanest examples.

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 five-parameter, multi-mode, destructive, open-world tool this covers the full decision surface: which mode, what each mode requires, what stop destroys, what creation exposes, and what errors to expect. An output schema exists, so return-value explanation is correctly omitted.

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 goes further by stating the mode-to-parameter mapping in one place and adding the constraint that slug is required in every mode, which the schema does not say. It does not add format or length guidance beyond the schema, so it is not a full 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?

The first sentence names three specific verbs (create, inspect, stop) against a specific resource (24-hour watch of a public thread) with scope (supported public thread). It also explicitly distinguishes itself from the get_recent sibling, so an agent can route between them 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?

It routes the one-time-list case to get_recent and specifies per-mode prerequisites: slug in every mode, thread_id for create, watch_id plus watch_token for status/stop. It also notes action may be omitted to infer create/status, covering the ambiguous call path an agent would otherwise guess at.

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.

Resources