Skip to main content
Glama

List schedule runs

well_list_schedule_runs
Read-onlyIdempotent

List the runs of one routine of this workspace, newest first: each run's status, when it was planned (scheduled_for), when it started and finished, its summary, warning_message and skip_reason, and the thread it ran in.

Use it to answer "did my Monday reminder run?", "why did the routine fail last week?" or "show me all the runs of this routine", past the last runs that well_list_schedules carries. Pass the schedule_id from well_list_schedules. Page to older runs with cursor from the previous result's next_cursor. A skipped run with skip_reason "sunday" was held back on a Sunday in the user's time zone: say it was skipped for Sunday, not that it failed. Quote what it returns; never state a status it did not report.

Do NOT use this to change, pause or cancel a routine (use well_update_schedule, well_snooze_schedule or well_cancel_schedule).

When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

NameRequiredDescriptionDefault
limitNoRuns to return, at most 50. Default 20.
cursorNoThe next_cursor of the previous page, to read older runs.
schedule_idYesThe schedule_id of the routine whose runs to list, from well_list_schedules.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
runsNo
errorNo
statusNo
messageNo
successYes
scheduleNo
next_cursorNo
next_run_atNo
approved_toolsNo
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedOutput schema / properties / next_cursor / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / next_cursor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / next_run_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / next_run_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / resolved_workspace / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / resolved_workspace / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond readOnly/idempotent annotations: explains newest-first ordering, that a skip_reason of "sunday" means held back in the user's time zone and must be reported as skipped rather than failed, and that the tool will not guess a workspace when several are authorized. These are domain behaviors the agent could not infer from annotations.

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?

Front-loaded with what it returns, then usage, then exclusions, then scoping — a logical order with no filler sentences. Three paragraphs is slightly long and the workspace_id rule is restated in both description and schema, costing a little density.

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?

Covers the read-only nature, ordering, pagination, skip semantics, workspace/conversation scoping and the mutation alternatives. With an output schema present, the description does not need to explain return shapes, and nothing an agent needs to call it correctly 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?

Schema coverage is 100% and the schema already documents limit, cursor, schedule_id and workspace_id, so the description's main addition is provenance ('Pass the schedule_id from well_list_schedules') and the cursor round-trip. It does not add new syntax or format detail beyond the schema, so it is a modest value-add rather than a full one.

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 ('List the runs of one routine of this workspace') plus the ordering ('newest first') and enumerates the per-run fields returned. This is clearly distinguishable from the sibling listing tools such as well_list_schedules and well_list_schedule_triggers.

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 concrete question shapes it answers ('did my Monday reminder run?'), positions it relative to well_list_schedules ('past the last runs that well_list_schedules carries'), and names the exact alternatives for mutations (well_update_schedule, well_snooze_schedule, well_cancel_schedule) with a Do NOT clause. Pagination and workspace preconditions are also spelled out.

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