Skip to main content
Glama

list_task_events

Read-onlyIdempotent

Catch up on everything that happened to your tasks while you were away.

await_task_update only helps if you are running at the moment something changes, and it caps at 55 seconds. This is the tool for the rest of the time: pass the next_since_id from your previous call and you get every event since, however long ago that was. Start with since_id=0.

Each event has task_id, action, from_state, to_state, actor, and at. Use it to notice what needs attention, then call get_task_status, get_task_proof, or get_task_chat for the detail.

Offer events (a worker accepting) are included alongside task events. Keep the returned next_since_id somewhere you will still have it on your next run -- that is the whole point of this tool. Poll it when you start up and periodically while you work; there is no need to hold a session open just to watch a task.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return in one call.
since_idNoReturn events after this id. Pass 0 the first time, then the next_since_id from your previous call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
eventsNo
has_moreNo
next_since_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of events to return in one call."
    • addedInput schema / properties / since_id / description
      Added value: +"Return events after this id. Pass 0 the first time, then the next_since_id from your previous call."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "events": {
      +      "anyOf": [
      +        {
      +          "items": {},
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Events"
      +    },
      +    "has_more": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Has More"
      +    },
      +    "next_since_id": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Next Since Id"
      +    }
      +  },
      +  "title": "TaskEventsOut",
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description explains the continuation mechanism (next_since_id), that offer events are included, and that each event contains task_id, action, states, actor, and timestamp. This adds meaningful behavioral context without contradicting any annotation.

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 detailed but every sentence earns its place: value proposition, sibling contrast, usage pattern, event shape, and follow-up actions. It is front-loaded with the core purpose and avoids redundancy.

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 rich output schema and annotations, the description is complete enough for an agent to call the tool correctly. It covers start state, continuation, polling cadence, response field expectations, and downstream alternatives.

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 valuable semantic detail for since_id, including how to initialize and advance it via next_since_id. The limit parameter is left to the schema, so the description improves on but does not fully replace the schema's role.

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 tool's purpose: catch up on all task events that happened since a previous call. It explicitly distinguishes itself from the sibling await_task_update, so an agent knows exactly what this tool does and how it is different.

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 when-to-use guidance: use it when you weren't actively watching, pass next_since_id, start with since_id=0, and poll at startup and periodically. It also contrasts with await_task_update and provides a concrete workflow for following up with other tools.

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.