Skip to main content
Glama

AIfra — temporary static previews

delete_preview

Destructive

Prepare deletion of an existing preview. Does not delete until its owner confirms in the browser holding the management key.

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": {
      "preview_id": "<preview_id>",
      "confirm_delete": "<confirm_delete>"
    },
    "name": "delete_preview"
  }
}

Input Schema

NameRequiredDescriptionDefault
preview_idYesExisting preview_id returned by AIfra. Do not invent it or pass a URL, alias, management key or source IP.
confirm_deleteYesSet true only after the owner explicitly asks to delete this preview. The tool only prepares deletion; final confirmation requires the browser holding its management key.

Output Schema

NameRequiredDescriptionDefault
statusYes
messageYesNext user action; preparation has not published or deleted anything.
preview_idYesAIfra preview identifier; never a management key.
approval_urlYesReturn to the user to open personally. This is not the published preview URL. Never approve it on their behalf.
operation_idYesPrepared operation identifier.
approval_expires_atYesPreparation expires after 2 hours. The 48-hour preview starts only after confirmation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / confirm_delete / description
      Added value: +"Set true only after the owner explicitly asks to delete this preview. The tool only prepares deletion; final confirmation requires the browser holding its management key."
    • addedInput schema / properties / preview_id / description
      Added value: +"Existing preview_id returned by AIfra. Do not invent it or pass a URL, alias, management key or source IP."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "approval_expires_at": {
      +      "description": "Preparation expires after 2 hours. The 48-hour preview starts only after confirmation.",
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +      "type": "string"
      +    },
      +    "approval_url": {
      +      "description": "Return to the user to open personally. This is not the published preview URL. Never approve it on their behalf.",
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "Next user action; preparation has not published or deleted anything.",
      +      "type": "string"
      +    },
      +    "operation_id": {
      +      "description": "Prepared operation identifier.",
      +      "pattern": "^rop_[A-Za-z0-9_-]{43}$",
      +      "type": "string"
      +    },
      +    "preview_id": {
      +      "description": "AIfra preview identifier; never a management key.",
      +      "pattern": "^pv_[A-Za-z0-9_-]{24}$",
      +      "type": "string"
      +    },
      +    "status": {
      +      "const": "pending",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation_id",
      +    "status",
      +    "preview_id",
      +    "approval_url",
      +    "approval_expires_at",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  3. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds genuinely new behavioral context: the call itself does not destroy anything, deletion only completes after the owner confirms in the browser holding the management key. That out-of-band confirmation requirement is not derivable from the annotations and is the most decision-relevant fact here.

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?

Two tight sentences, with the action front-loaded and the crucial caveat second. Nothing is padded and nothing needs to be re-read.

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 not be described, and the description covers the essential two-phase delete flow for a destructive tool. The one gap is the post-call workflow: it does not say that the agent should expect a pending state or poll get_operation_status, which the sibling list suggests is relevant.

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 schema itself is unusually rich (preview_id pattern plus 'do not invent it', confirm_delete const true with an explanation of the confirmation flow), so the description adds no parameter meaning beyond it. Baseline 3 applies when the schema does all the work.

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 precise verb and resource ('Prepare deletion of an existing preview') and immediately qualifies it with the two-phase semantics, so an agent can tell this apart from an ordinary delete or from siblings like create_preview/update_preview without opening any schema.

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 conveys the context of use (a staged deletion that needs owner confirmation in the browser holding the management key), which implies when the tool applies. However, it never names an alternative or states when not to use it, nor does it route the agent to get_preview_status or get_operation_status for follow-up, so usage is only implied.

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