Skip to main content
Glama

Delete ABAP Object

delete_abap_object
Destructive

Delete an ABAP repository object from SAP and record the irreversible deletion on a Workbench request; check where-used first because references may remain.

Instructions

Delete an ABAP repository object from the SAP system and record the deletion on a Workbench request (not needed for a local $ package). Irreversible. The tool locks the object, deletes it and unlocks it. Check where_used first, since other objects may still reference it. Transport: a transport you pass is checked and used; an object already locked into a request uses it; createTransport: true creates a new one; otherwise the transport already used for this piece of work (workItem, else this session) is reused; otherwise exactly one open request is used, several are listed for you to choose, none offers creation.

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": {
      "url": "<url>"
    },
    "name": "delete_abap_object"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesADT object URL to delete (e.g. /sap/bc/adt/programs/programs/ZREPORT)
workItemNoName of the piece of work (e.g. HPM, a ticket). Keeps using the same transport for it across calls and sessions until you pass another.
transportNoWorkbench request to record into. Checked before use; becomes the transport for this piece of work.
connectionIdNoSAP system connection ID
createTransportNoCreate a NEW Workbench request (only when you mean it; existing requests are preferred).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.16.2
    • changedInput schema / properties / url / description
      Previous value: -"ADT object URL to delete"New value: +"ADT object URL to delete (e.g. /sap/bc/adt/programs/programs/ZREPORT)"
  2. First observedv1.16.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructive=true and non-idempotent, but the description goes further by disclosing the lock/delete/unlock sequence, the irreversibility of the operation, and the fact that the transport argument is validated before use. The multi-branch transport resolution rules (explicit transport, existing lock, createTransport, workItem/session reuse, single open request, listing ambiguous ones) are behavioral detail an agent could not infer from annotations alone.

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?

Purpose, irreversibility, and the safety precondition are front-loaded in the first two sentences, which is the right ordering. The final transport sentence is a dense semicolon-chained run-on that is harder to parse than it needs to be, costing a point but not much comprehension.

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, open-world mutation with no output schema, the definition covers the lifecycle (lock, delete, unlock), the side effect (transport recording), the local package exception, the safety check via where_used, and the full transport fallback chain. Nothing an agent needs in order to invoke it safely is missing.

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 coverage is 100%, so the per-parameter meanings are already documented and the baseline is 3. The description earns a point above baseline by supplying the precedence order between transport, workItem, createTransport, and pre-existing open requests — semantics the schema text hints at but does not sequence.

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?

Specific verb and resource ("Delete an ABAP repository object from the SAP system") plus the side effect of recording on a Workbench request. This immediately separates it from create_abap_object, get_abap_object_info, and where_used 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 Guidelines5/5

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

It gives a named precondition with a named sibling: "Check where_used first, since other objects may still reference it." It also carves out the local $ package case where transport recording is unnecessary, so the agent knows both when this applies and when part of the workflow is skipped.

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