Skip to main content
Glama

List tasks

well_list_tasks
Read-only

List the tasks of the workspace, most important first, at most 50: each with the same fields as well_get_task, without the browser detail. Narrow it by status and by priority (each one value or a list), by created_by (me, teammate or well), by task_kind (browser-task for the browser tasks), by assignee and by due_date. assigned_to_id with due_date is one member's day. Each task carries slot: the calendar event booked for it, with its own start and end, or null when the job has no slot yet or its slot is private to another member. Read a job's time from slot only; a task carries no time of its own. When the answer carries slots_unavailable, the calendar could not be read at all: the times are then unknown, and never say a job is unbooked. Each row also carries created_by_kind, completion_note and run (where a browser task stands, for its own person only). total is the count of every task that matches. It changes nothing. A guest lists only the tasks assigned to them. When the list is empty, tell the person: Nothing needs you right now.

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
limitNoHow many tasks to return, at most 50. Default 20.
statusNoOnly the tasks in this status, or in any of a list of statuses. Leave it out for every status.
due_dateNoOnly the tasks due on this exact day, "YYYY-MM-DD". Send it with assigned_to_id for one member's day.
priorityNoOnly the tasks of this priority, or of any of a list of priorities. Leave it out for every priority.
task_kindNoOnly the tasks of this kind, for example "browser-task" for the browser tasks.
created_byNoOnly the tasks made by these: me (the person), teammate (another person) or well (Well).
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.
assigned_to_idNoOnly the tasks assigned to this person.
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
errorNo
tasksNo
totalNo
successYes
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.
slots_unavailableNo
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. Changed11 schema fields changed
    • addedInput schema / properties / created_by
      Added value: +{
      +  "description": "Only the tasks made by these: me (the person), teammate (another person) or well (Well).",
      +  "items": {
      +    "enum": [
      +      "me",
      +      "teammate",
      +      "well"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / priority
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "low",
      +        "medium",
      +        "high",
      +        "critical"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "enum": [
      +          "low",
      +          "medium",
      +          "high",
      +          "critical"
      +        ],
      +        "type": "string"
      +      },
      +      "maxItems": 4,
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  ],
      +  "description": "Only the tasks of this priority, or of any of a list of priorities. Leave it out for every priority."
      +}
    • addedInput schema / properties / status / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "ice_log",
      +      "open",
      +      "in_progress",
      +      "done",
      +      "blocked",
      +      "cancelled",
      +      "snoozed",
      +      "archived"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "enum": [
      +        "ice_log",
      +        "open",
      +        "in_progress",
      +        "done",
      +        "blocked",
      +        "cancelled",
      +        "snoozed",
      +        "archived"
      +      ],
      +      "type": "string"
      +    },
      +    "maxItems": 8,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / status / description
      Previous value: -"Only the tasks in this status. Leave it out for every status."New value: +"Only the tasks in this status, or in any of a list of statuses. Leave it out for every status."
    • removedInput schema / properties / status / enum
      Removed value: -[
      -  "ice_log",
      -  "open",
      -  "in_progress",
      -  "done",
      -  "blocked",
      -  "cancelled",
      -  "snoozed",
      -  "archived"
      -]
    • removedInput schema / properties / status / type
      Removed value: -"string"
    • addedOutput schema / properties / tasks / items / properties / completion_note
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / tasks / items / properties / created_by_id
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / tasks / items / properties / created_by_kind
      Added value: +{
      +  "enum": [
      +    "me",
      +    "teammate",
      +    "well"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / tasks / items / properties / run
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "end_reason": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "last_progress": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "phase": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "result_summary": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "source": {
      +          "enum": [
      +            "browser",
      +            "delegated"
      +          ],
      +          "type": "string"
      +        },
      +        "state": {
      +          "enum": [
      +            "running",
      +            "waiting_for_person",
      +            "done",
      +            "failed"
      +          ],
      +          "type": "string"
      +        },
      +        "wait_reason": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "source",
      +        "state",
      +        "phase",
      +        "wait_reason",
      +        "last_progress",
      +        "result_summary",
      +        "end_reason"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / tasks / items / required
      Previous value: -[
      -  "task_id",
      -  "title",
      -  "description",
      -  "status",
      -  "priority",
      -  "executor_type",
      -  "kind",
      -  "parent_task_id",
      -  "assigned_to_id",
      -  "due_date",
      -  "created_at",
      -  "updated_at",
      -  "done_at",
      -  "slot"
      -]New value: +[
      +  "task_id",
      +  "title",
      +  "description",
      +  "status",
      +  "priority",
      +  "executor_type",
      +  "kind",
      +  "parent_task_id",
      +  "assigned_to_id",
      +  "due_date",
      +  "created_at",
      +  "updated_at",
      +  "done_at",
      +  "completion_note",
      +  "created_by_id",
      +  "created_by_kind",
      +  "run",
      +  "slot"
      +]
  2. Changed4 schema fields changed
    • addedInput schema / properties / due_date
      Added value: +{
      +  "description": "Only the tasks due on this exact day, \"YYYY-MM-DD\". Send it with assigned_to_id for one member's day.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / slots_unavailable
      Added value: +{
      +  "const": true,
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / tasks / items / properties / slot
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "calendar_id": {
      +          "type": "string"
      +        },
      +        "end_at": {
      +          "type": "string"
      +        },
      +        "event_id": {
      +          "type": "string"
      +        },
      +        "is_all_day": {
      +          "type": "boolean"
      +        },
      +        "start_at": {
      +          "type": "string"
      +        },
      +        "timezone": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "event_id",
      +        "calendar_id",
      +        "start_at",
      +        "end_at",
      +        "timezone",
      +        "is_all_day"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / tasks / items / required
      Previous value: -[
      -  "task_id",
      -  "title",
      -  "description",
      -  "status",
      -  "priority",
      -  "executor_type",
      -  "kind",
      -  "parent_task_id",
      -  "assigned_to_id",
      -  "due_date",
      -  "created_at",
      -  "updated_at",
      -  "done_at"
      -]New value: +[
      +  "task_id",
      +  "title",
      +  "description",
      +  "status",
      +  "priority",
      +  "executor_type",
      +  "kind",
      +  "parent_task_id",
      +  "assigned_to_id",
      +  "due_date",
      +  "created_at",
      +  "updated_at",
      +  "done_at",
      +  "slot"
      +]
  3. Changed18 schema fields changed
    • 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"
      +]
    • removedOutput schema / properties / tasks / items / properties / assigned_to_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / assigned_to_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / description / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / description / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / done_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / done_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / due_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / due_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / kind / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / kind / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / parent_task_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / parent_task_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / priority / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / priority / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tasks / items / properties / updated_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tasks / items / properties / updated_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond readOnlyHint=true: explains that each task's time lives only in `slot` and must never be read off the task, that a null slot may mean either unbooked or private, and that `slots_unavailable` means the calendar could not be read so the agent must never claim a job is unbooked. It also discloses guest scoping, that `total` counts all matches, and that `run` is visible only to its own person.

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-loads the core scope and result shape, then progressively adds filters, semantics and workspace guidance. Dense but nearly every sentence carries constraint or format information; a few clauses (e.g. restating 'at most 50' that limit already defines) are mildly redundant.

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?

Even with an output schema present, the description supplies the interpretation an output schema cannot: slot nullability semantics, slots_unavailable handling, total vs page size, and per-viewer visibility of `run`. Together with the schema this is enough for an agent to call and read results correctly.

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, but the description adds real semantics the schema lacks: the clause that assigned_to_id combined with due_date means one member's day, the meaning of created_by values, that task_kind 'browser-task' selects browser tasks, and the token-based rule for workspace_id. Not exhaustive on limit defaults (schema covers that), but it clearly exceeds the schema.

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 tasks of the workspace'), plus scope (most important first, at most 50) and explicitly anchors it to the sibling well_get_task by saying rows carry the same fields 'without the browser detail'. An agent can tell it apart from well_get_task or well_list_projects without opening a 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?

Enumerates the narrowing dimensions (status, priority, created_by, task_kind, assignee, due_date), calls out the assigned_to_id + due_date combination for one member's day, explains when workspace_id is required, and tells the agent what to say when the list is empty. Alternatives and preconditions are explicit.

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