Skip to main content
Glama

List workspace sessions

workspace_sessions
Read-onlyIdempotent

Read recent sessions in a workspace, newest first: who worked (mine: your own account; agentId: the agent's handle) and from which harness, then steps: each stated why followed by the changes made for it (actions, item title and id, versions with numbers, rows). unread marks a session with work after your last acknowledged change (workspace_changes_ack). Filter by agent (a handle from workspace_load agents: that agent's sessions) or by (people or agents, within the latest 1,000 changes). Sessions are computed from activity; nothing is started or ended. Continue with cursor and the same filters.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "workspaceId": "<workspaceId>"
    },
    "name": "workspace_sessions"
  }
}

Input Schema

NameRequiredDescriptionDefault
byNoOnly people's sessions (in the browser, or with no key) or only agents', within the latest 1,000 changes.
agentNoOnly this agent's sessions: its handle from workspace_load agents (or agent:<handle>), read over its latest 1,000 changes here.
cursorNo
workspaceIdYesThe workspace: its id or its slug.

Output Schema

NameRequiredDescriptionDefault
itemsYes
hasMoreYes
nextCursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / agent
      Added value: +{
      +  "description": "Only this agent's sessions: its handle from workspace_load agents (or agent:<handle>), read over its latest 1,000 changes here.",
      +  "pattern": "^(agent:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / by
      Added value: +{
      +  "description": "Only people's sessions (in the browser, or with no key) or only agents', within the latest 1,000 changes.",
      +  "enum": [
      +    "people",
      +    "agents"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / items / properties / agentId
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uuid",
      +      "pattern": "^([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)$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "id",
      -  "account",
      -  "agent",
      -  "surface",
      -  "inBrowser",
      -  "viaBrowser",
      -  "mine",
      -  "unread",
      -  "startedAt",
      -  "lastAt",
      -  "steps",
      -  "stepsTruncated",
      -  "eventCount",
      -  "earlierActivityNotShown"
      -]New value: +[
      +  "id",
      +  "account",
      +  "agent",
      +  "agentId",
      +  "surface",
      +  "inBrowser",
      +  "viaBrowser",
      +  "mine",
      +  "unread",
      +  "startedAt",
      +  "lastAt",
      +  "steps",
      +  "stepsTruncated",
      +  "eventCount",
      +  "earlierActivityNotShown"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / items / items / properties / account / properties / former
      Added value: +{
      +  "const": true,
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • removedOutput schema / properties / items / items / properties / steps / items / properties / changes / items / properties / handoff
      Removed value: -{
      -  "const": true,
      -  "type": "boolean"
      -}
  4. Changed5 schema fields changed
    • changedInput schema / properties / workspaceId / description
      Previous value: -"The workspace id (UUID)."New value: +"The workspace: its id or its slug."
    • removedInput schema / properties / workspaceId / format
      Removed value: -"uuid"
    • addedInput schema / properties / workspaceId / maxLength
      Added value: +64
    • addedInput schema / properties / workspaceId / minLength
      Added value: +1
    • removedInput schema / properties / workspaceId / 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)$"
  5. First observed

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does add something useful: sessions are derived from activity and nothing is started or ended, plus the meaning of the 'unread' marker tied to workspace_changes_ack. However, the 'latest 1,000 changes' window is already stated in the schema, and the garbled 'mine'/'agentId' phrasing creates more ambiguity than insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, but the body is a dense run-on colon chain that mixes input filtering, output shape, and pagination in one paragraph. Several clauses duplicate what the schema and output schema already declare, so the sentences do not all fully earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, roughly half the text ('each stated why followed by the changes made for it (actions, item title and id, versions...)') is redundant return-value explanation. Meanwhile, genuinely needed orientation is missing: how to retrieve one's own sessions (the referenced 'mine' is not a documented filter), which is a real gap for a tool with four parameters and a strong sibling neighbourhood.

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?

At 75% schema coverage the schema already documents 'by', 'agent', and 'workspaceId' in nearly the same words; the description largely restates them ('a handle from workspace_load agents', 'within the latest 1,000 changes'). The one value-add is linking the continuation cursor to preserving the same filters. Notably, the description references 'mine' and 'agentId', which do not exist in the input schema, muddying which filters are actually available.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Read recent sessions in a workspace, newest first') and clarifies the unit of work by contrasting sessions with activity ('Sessions are computed from activity; nothing is started or ended'), which implicitly separates it from task_start/task_stop and workspace_changes. The muddled parentheticals ('who worked (mine: ...; agentId: ...)') blur whether 'mine'/'agentId' are inputs or output fields, so it stops short of a fully crisp statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to filter ('Filter by agent ... or by (people or agents)') and how to paginate ('Continue with cursor and the same filters'), but that is parameter instruction rather than when-to-use guidance. It never says when to reach for this tool instead of the closely related workspace_changes or activity, and gives no exclusions or prerequisites.

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.