Skip to main content
Glama

List pending approvals and questions

list_pending_inputs
Read-only

Lists paused Workspace or agent runs awaiting approval or answers, returning run IDs, tool call IDs, kinds, and approval URLs. Use it to find approvals the account owner must complete in Plori.

Instructions

List the runs of a Workspace or an agent that are paused on an approval request or a question, with each request's run_id, tool_call_id and kind, and for an approval request its approve_url. Only the account owner approves, at that URL in the Plori web app. A request is not listed when a later run in the same conversation has completed.

Input Schema

NameRequiredDescriptionDefault
agent_idNoThe agent UUID (agent_id in a run result). Give this or workspace_id.
workspace_idNoThe Workspace UUID. Give this or agent_id; with both, agent_id is used. Covers the runs of the Workspace's agent and its workers.

Output Schema

NameRequiredDescriptionDefault
pending_inputsYesRuns currently paused on a human approval or input request. A request whose session has already moved on is left out: answering it would resume a superseded turn.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.17.1
    • changedInput schema / properties / agent_id / description
      Previous value: -"The agent's UUID."New value: +"The agent UUID (agent_id in a run result). Give this or workspace_id."
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "The Workspace UUID. Give this or agent_id; with both, agent_id is used. Covers the runs of the Workspace's agent and its workers.",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "agent_id"
      -]
    • changedOutput schema / properties / pending_inputs / description
      Previous value: -"Runs currently parked on a human approval or input request. A request whose session has already moved on is left out: answering it would resume a superseded turn."New value: +"Runs currently paused on a human approval or input request. A request whose session has already moved on is left out: answering it would resume a superseded turn."
    • addedOutput schema / properties / pending_inputs / items / properties / agent_name
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / pending_inputs / items / properties / args / description
      Previous value: -"Arbitrary JSON owned by the producing engine."New value: +"Extra data recorded with the request; not needed to use it."
    • addedOutput schema / properties / pending_inputs / items / properties / assigned_to
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "email": {
      +      "type": "string"
      +    },
      +    "user_id": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "user_id",
      +    "email"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
    • addedOutput schema / properties / pending_inputs / items / properties / can_act
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / pending_inputs / items / properties / open_to_members_at
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / pending_inputs / items / properties / schema / description
      Previous value: -"Arbitrary JSON owned by the producing engine."New value: +"Extra data recorded with the request; not needed to use it."
    • addedOutput schema / properties / pending_inputs / items / properties / worker_request_id
      Added value: +{
      +  "type": [
      +    "null",
      +    "string"
      +  ]
      +}
    • changedOutput schema / properties / pending_inputs / items / required
      Previous value: -[
      -  "id",
      -  "run_id",
      -  "agent_id",
      -  "tool_call_id",
      -  "kind",
      -  "prompt",
      -  "status",
      -  "created_at"
      -]New value: +[
      +  "assigned_to",
      +  "open_to_members_at",
      +  "can_act",
      +  "id",
      +  "run_id",
      +  "agent_id",
      +  "tool_call_id",
      +  "kind",
      +  "prompt",
      +  "status",
      +  "created_at"
      +]
  2. Changed1 schema field changedv0.17.0
    • addedOutput schema / properties / pending_inputs / items / properties / approve_url
      Added value: +{
      +  "type": "string"
      +}
  3. Changed1 schema field changedv0.16.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "pending_inputs": {
      +      "description": "Runs currently parked on a human approval or input request. A request whose session has already moved on is left out: answering it would resume a superseded turn.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "agent_id": {
      +            "type": "string"
      +          },
      +          "args": {
      +            "description": "Arbitrary JSON owned by the producing engine."
      +          },
      +          "connect": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "provider": {
      +                "type": "string"
      +              },
      +              "workflow_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "workflow_id",
      +              "provider"
      +            ],
      +            "type": [
      +              "null",
      +              "object"
      +            ]
      +          },
      +          "consent_tool": {
      +            "type": "string"
      +          },
      +          "created_at": {
      +            "type": "string"
      +          },
      +          "expires_at": {
      +            "type": [
      +              "null",
      +              "string"
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "prompt": {
      +            "type": "string"
      +          },
      +          "risk": {
      +            "type": "string"
      +          },
      +          "run_id": {
      +            "type": "string"
      +          },
      +          "schema": {
      +            "description": "Arbitrary JSON owned by the producing engine."
      +          },
      +          "secret": {
      +            "type": "boolean"
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "tool_call_id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "run_id",
      +          "agent_id",
      +          "tool_call_id",
      +          "kind",
      +          "prompt",
      +          "status",
      +          "created_at"
      +        ],
      +        "type": "object"
      +      },
      +      "type": [
      +        "null",
      +        "array"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "pending_inputs"
      +  ],
      +  "type": "object"
      +}
  4. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond them: the returned fields, the account-owner-only approval constraint, and the non-obvious filtering rule that a request disappears once a later run in the same conversation completes.

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?

Three front-loaded sentences with no filler: what is listed and its fields, the approval mechanics, then the edge-case filter. Slightly dense but every clause carries information an agent needs.

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

Completeness4/5

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

An output schema exists, so return values need no exposition. The description covers purpose, fields, and filtering behavior adequately for a two-parameter read tool, with the only gap being explicit sibling routing.

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 both parameters are fully documented there, including the 'give this or that' relationship, so the baseline is 3. The description adds only the scoping phrase 'runs of a Workspace or an agent', which largely restates 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 – lists runs paused on an approval request or question – and enumerates the returned identifiers (run_id, tool_call_id, kind, approve_url). This is clearly distinguishable from list_runs and answer_pending_input by describing a filtered subset with a specific purpose.

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

Usage Guidelines3/5

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

The description implies usage by explaining that only the account owner approves and that approval happens at the URL in the web app, hinting this tool is for discovery rather than approval. However it never names answer_pending_input or list_runs as alternatives, nor states an explicit when-to-use condition, leaving routing to inference.

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