Skip to main content
Glama

Get Handoff Status

get_handoff_status
Read-onlyIdempotent

Check whether a workspace has unfinished work handed off by an earlier agent. Returns blocked status, active handoff chain, and the next safe action to take before editing.

Instructions

Check whether this workspace has unfinished work handed off by an earlier agent. Call it at the start of a session on a project, before editing; to record a handoff use save_handoff_receipt. Returns {blocked, blocked_by_receipt, active_chain (newest first), newest_receipt_id, next_safe_action}; with no receipts it returns {blocked: false, reason, active_chain: []}. When blocked is true, follow next_safe_action (stale receipts tell you to re-verify first). Read-only.

Input Schema

NameRequiredDescriptionDefault
clientNoArchive namespace (a subfolder of the chats directory). Built-in: 'default', 'cursor', 'chatgpt', 'claude'; any other name creates its own subfolder. Omit to use 'default'.default

Output Schema

NameRequiredDescriptionDefault
reasonNo
blockedNo
active_chainNo
next_safe_actionNo
newest_receipt_idNo
blocked_by_receiptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.6.2
    • addedInput schema / properties / client / description
      Added value: +"Archive namespace (a subfolder of the chats directory). Built-in: 'default', 'cursor', 'chatgpt', 'claude'; any other name creates its own subfolder. Omit to use 'default'."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "active_chain": {
      +      "default": null,
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Active Chain",
      +      "type": "array"
      +    },
      +    "blocked": {
      +      "default": null,
      +      "title": "Blocked",
      +      "type": "boolean"
      +    },
      +    "blocked_by_receipt": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Blocked By Receipt"
      +    },
      +    "newest_receipt_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Newest Receipt Id"
      +    },
      +    "next_safe_action": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Next Safe Action"
      +    },
      +    "reason": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Reason"
      +    }
      +  },
      +  "title": "HandoffStatus",
      +  "type": "object"
      +}
  2. First observedv1.5.4

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds important behavioral context: what the return shape contains, how the no-receipts case behaves, and what to do when blocked is true, including stale receipts requiring re-verification.

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 compact and front-loaded: purpose first, usage timing second, return behavior third, and blocked handling last. Every sentence contributes useful information without repetition.

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 that an output schema exists and annotations cover safety and idempotency, the description provides enough additional context for an agent to call the tool correctly: when to call it, what the output represents, and how to react to a blocked status.

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?

Schema description coverage is 100%, and the single optional client parameter is already documented in the schema as the archive namespace with built-in values. The description adds no parameter-specific meaning beyond what the schema provides, so the baseline 3 is appropriate.

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: checking whether the workspace has unfinished work handed off by an earlier agent. It clearly distinguishes itself from save_handoff_receipt, which is named as the write-side alternative.

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?

Explicitly says to call it at the start of a session on a project and before editing, and directs recording a handoff to save_handoff_receipt. Both when-to-use and the alternative are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.