Skip to main content
Glama

Answer a pending approval or question

answer_pending_input
Destructive

Answer a paused Plori run's question or deny its approval request; this records the input and lets the task continue in a new run.

Instructions

Answer a question that a run is paused on, or deny an approval request. value answers a question; approved=false denies an approval request. approved=true is refused with 403 and the request's approve_url: only the account owner approves, in the Plori web app. Standing approvals (always_allow, scope) are refused from this connector. A question marked secret:true is refused here; the owner answers it in the Plori web app. After the paused run's files are saved, an answer continues the task in a new run, which keeps the paused run's approval rules: its outward actions still pause for the owner. The call waits up to 25 s for that run to start, and run_id in the result is that continuation run. When the result has continuation_pending: true instead, the answer is recorded and the run starts later without another call; get_run_result on the paused run then reports it as continuation_run_id.

Input Schema

NameRequiredDescriptionDefault
noteNoAn optional note recorded with the answer.
valueNoThe answer to a question.
run_idYesThe paused run's run_id.
approvedNofalse denies an approval request. true is refused: only the account owner approves, in the Plori web app.
tool_call_idYesThe tool_call_id of the approval request or question, from the run result or list_pending_inputs.
max_turn_secondsNoOptional wall-clock budget for the continuation run, in seconds. It does not change the paused run; when it runs out the agent is told to finish and reply.

Output Schema

NameRequiredDescriptionDefault
run_idNoThe continuation run that continues the task after this answer; poll it with get_run_result. Absent while continuation_pending is true.
statusYesAnswer status.
alreadyNoWhether this request had already been answered.
session_idNoThe continuation run's session.
tool_call_idYesThe pending tool call that was answered.
continuation_errorNoWhy the continuation has not started or will not start, when the platform recorded a reason. The answer stays recorded.
continuation_pendingNoTrue when the answer is recorded but its continuation run has not started yet: the paused run's files are still being saved, or continuation_error says what delays it. The run starts without another call; get_run_result on the paused run then reports it as continuation_run_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.17.1
    • changedInput schema / properties / approved / description
      Previous value: -"For an approval request: set false to deny. Only the owner can approve in the Plori web app."New value: +"false denies an approval request. true is refused: only the account owner approves, in the Plori web app."
    • changedInput schema / properties / max_turn_seconds / description
      Previous value: -"Optional soft wall-clock budget to preserve on the continuation run; it does not change the parked run or impose a hard deadline."New value: +"Optional wall-clock budget for the continuation run, in seconds. It does not change the paused run; when it runs out the agent is told to finish and reply."
    • changedInput schema / properties / run_id / description
      Previous value: -"The parked run's id."New value: +"The paused run's run_id."
    • changedInput schema / properties / tool_call_id / description
      Previous value: -"The tool_call_id of the pending request (from list_pending_inputs)."New value: +"The tool_call_id of the approval request or question, from the run result or list_pending_inputs."
    • changedInput schema / properties / value / description
      Previous value: -"For an input request: the value to supply."New value: +"The answer to a question."
    • addedOutput schema / properties / continuation_error
      Added value: +{
      +  "description": "Why the continuation has not started or will not start, when the platform recorded a reason. The answer stays recorded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / continuation_pending
      Added value: +{
      +  "description": "True when the answer is recorded but its continuation run has not started yet: the paused run's files are still being saved, or continuation_error says what delays it. The run starts without another call; get_run_result on the paused run then reports it as continuation_run_id.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / run_id / description
      Previous value: -"The continuation run created by the answer."New value: +"The continuation run that continues the task after this answer; poll it with get_run_result. Absent while continuation_pending is true."
  2. Changed3 schema fields changedv0.17.0
    • removedInput schema / properties / always_allow
      Removed value: -{
      -  "description": "Approve AND stop asking for this tool on this agent (a standing grant). Only set it when the human explicitly said to stop being asked, and only on a row whose consent_tool is set; ignored without approved=true. Revoke via DELETE /v1/agents/{agent_id}/tool-consents/{tool}.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / approved / description
      Previous value: -"For an approval request: approve (true) or deny (false)."New value: +"For an approval request: set false to deny. Only the owner can approve in the Plori web app."
    • removedInput schema / properties / scope
      Removed value: -{
      -  "description": "Set to \"thread\" to approve AND allow the rest of this conversation's writes to the same connection, method and host, instead of a standing grant. It expires after 24 hours and covers no other host, method or conversation. Only set it when the human said to stop being asked for the rest of this task; ignored without approved=true, and on a card that has no such scope. Cannot be combined with always_allow.",
      -  "type": "string"
      -}
  3. Changed2 schema fields changedv0.16.0
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "Set to \"thread\" to approve AND allow the rest of this conversation's writes to the same connection, method and host, instead of a standing grant. It expires after 24 hours and covers no other host, method or conversation. Only set it when the human said to stop being asked for the rest of this task; ignored without approved=true, and on a card that has no such scope. Cannot be combined with always_allow.",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "already": {
      +      "description": "Whether this request had already been answered.",
      +      "type": "boolean"
      +    },
      +    "run_id": {
      +      "description": "The continuation run created by the answer.",
      +      "type": "string"
      +    },
      +    "session_id": {
      +      "description": "The continuation run's session.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Answer status.",
      +      "type": "string"
      +    },
      +    "tool_call_id": {
      +      "description": "The pending tool call that was answered.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "tool_call_id"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changedv0.9.1
    • addedInput schema / properties / max_turn_seconds
      Added value: +{
      +  "description": "Optional soft wall-clock budget to preserve on the continuation run; it does not change the parked run or impose a hard deadline.",
      +  "maximum": 14400,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  5. Changed1 schema field changedv0.7.0
    • addedInput schema / properties / always_allow
      Added value: +{
      +  "description": "Approve AND stop asking for this tool on this agent (a standing grant). Only set it when the human explicitly said to stop being asked, and only on a row whose consent_tool is set; ignored without approved=true. Revoke via DELETE /v1/agents/{agent_id}/tool-consents/{tool}.",
      +  "type": "boolean"
      +}
  6. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the 25 s wait, the new continuation run and its retained approval rules, the continuation_pending: true fallback, and the 403 refusal paths. This is unusually rich behavioral context that the destructiveHint/readOnlyHint annotations alone could not convey.

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?

Dense and front-loaded with the core action, then the refusal rules. Every sentence carries load, though the continuation/return-value detail is lengthy; nothing is redundant filler.

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?

For a destructive, non-idempotent mutation tool with an output schema present, the description covers preconditions, refusals, timing, and the result contract (run_id, continuation_pending). Nothing material is left for the agent to infer.

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 description coverage is 100%, so structured fields already document each parameter. The description adds cross-parameter meaning (value answers vs approved=false denies, and how run_id relates to the continuation run), exceeding the baseline-3 expectation for high coverage.

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+resource pair ('answer a question a run is paused on, or deny an approval request') and implicitly distinguishes itself from siblings like list_pending_inputs and get_run_result. An agent can identify the action without opening the 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?

Explicitly routes usage: value for questions, approved=false to deny, approved=true refused with 403 via approve_url, standing approvals refused, secret questions refused here. It also names the correct alternative path (the Plori web app for owner approval), covering when-not-to-use.

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