Skip to main content
Glama

abap_transport

Destructive

Inspect and manage SAP CTS transport requests: list, show, check, create, delete, manage users and owners, and read logs or import queues for target systems.

Instructions

Inspect and manage CTS transport requests: list, show, check (does an object need a transport?), users, log (a request's export/import log per target system), queue (a target system's import buffer), create (kind="workbench" default, or "copies" with target), addUser, setOwner, delete, removeObject (drop one E071 entry and its CTS lock). list/show/check/users/log/queue are plain reads, always allowed; create/addUser/setOwner need write access; delete/removeObject additionally need the admin-only transport-delete ceiling. Release is a separate tool, abap_transport_release. Semantics of log/queue/copies/removeObject: doc/TOOLS/transports.md.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNooperation="create" only. "workbench" (default): a normal transportable change request. "copies": a snapshot sent to a target system, originals untouched; requires target.
userNoUser: filter for list, new member/owner otherwise. Required for operation=addUser/setOwner.
domainNoTMS transport domain of system, e.g. DOMAIN_A4H. Optional; TMS resolves the local domain when omitted.
objectNoObject name. Required for operation=check/removeObject (removeObject: the entry to remove). Optional anchor for create with kind="workbench" (default); not for kind="copies", which is created empty.
systemNoTarget system whose import queue to read, e.g. QAS. Required for operation="queue".
targetNoTarget system for operation="create" with kind="copies", e.g. A4H. A transport of copies with no target cannot be imported anywhere, so abapsmith refuses to create one.
confirmNoEcho the request number to arm delete or removeObject.
packageNoDevelopment package (devclass). Required for operation=create.
operationYesWhat to do. list/show/check/users/log/queue are plain reads, always allowed. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); kind="copies" needs no extra ceiling. removeObject and delete share one ceiling: delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject needs that same ceiling and confirm. Required args: list/users none; show transport; check object; log transport; queue system; create package+description (plus target when kind="copies"); addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm.
transportNoRequest/task number, e.g. A4HK900123. Required for operation=show/addUser/setOwner/delete/removeObject and for operation=log.
descriptionNoShort text for the new request, max 60 chars. Required for operation=create.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.6.25
    • changedInput schema / properties / kind / description
      Previous value: -"Which kind of request operation=\"create\" should create. \"workbench\" (the default) is a normal transportable change request created through ADT. \"copies\" is a transport of copies, which carries a snapshot of objects to a target system while leaving the originals modifiable in this system and their original request untouched. kind=\"copies\" requires target."New value: +"operation=\"create\" only. \"workbench\" (default): a normal transportable change request. \"copies\": a snapshot sent to a target system, originals untouched; requires target."
    • changedInput schema / properties / object / description
      Previous value: -"Object name. Required for operation=check, and for operation=removeObject (the entry to remove). Optional anchor for create with kind=\"workbench\" (the default); not accepted for create with kind=\"copies\" — a transport of copies is created empty."New value: +"Object name. Required for operation=check/removeObject (removeObject: the entry to remove). Optional anchor for create with kind=\"workbench\" (default); not for kind=\"copies\", which is created empty."
    • changedInput schema / properties / operation / description
      Previous value: -"What to do. list/show/check/users/log/queue are plain reads, always allowed. log reads a transport's own export/import log (per target system); queue reads a target system's import queue/buffer. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); create with kind=\"copies\" (a transport of copies) needs the same write access as an ordinary create — no extra ceiling. delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME — legal but not reliably reproducible; cause unconfirmed), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; log transport; queue system; create package+description (plus target when kind=\"copies\"); addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."New value: +"What to do. list/show/check/users/log/queue are plain reads, always allowed. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); kind=\"copies\" needs no extra ceiling. removeObject and delete share one ceiling: delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject needs that same ceiling and confirm. Required args: list/users none; show transport; check object; log transport; queue system; create package+description (plus target when kind=\"copies\"); addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."
  2. Changed8 schema fields changedv0.6.11
    • addedInput schema / properties / domain
      Added value: +{
      +  "description": "TMS transport domain of system, e.g. DOMAIN_A4H. Optional; TMS resolves the local domain when omitted.",
      +  "type": "string"
      +}
    • addedInput schema / properties / kind
      Added value: +{
      +  "description": "Which kind of request operation=\"create\" should create. \"workbench\" (the default) is a normal transportable change request created through ADT. \"copies\" is a transport of copies, which carries a snapshot of objects to a target system while leaving the originals modifiable in this system and their original request untouched. kind=\"copies\" requires target.",
      +  "enum": [
      +    "workbench",
      +    "copies"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / object / description
      Previous value: -"Object name. Required for operation=check, and for operation=removeObject (the entry to remove). Optional anchor for create."New value: +"Object name. Required for operation=check, and for operation=removeObject (the entry to remove). Optional anchor for create with kind=\"workbench\" (the default); not accepted for create with kind=\"copies\" — a transport of copies is created empty."
    • changedInput schema / properties / operation / description
      Previous value: -"What to do. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME — legal but not reliably reproducible; cause unconfirmed), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; create package+description; addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."New value: +"What to do. list/show/check/users/log/queue are plain reads, always allowed. log reads a transport's own export/import log (per target system); queue reads a target system's import queue/buffer. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); create with kind=\"copies\" (a transport of copies) needs the same write access as an ordinary create — no extra ceiling. delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME — legal but not reliably reproducible; cause unconfirmed), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; log transport; queue system; create package+description (plus target when kind=\"copies\"); addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "list",
      -  "show",
      -  "check",
      -  "users",
      -  "create",
      -  "addUser",
      -  "setOwner",
      -  "delete",
      -  "removeObject"
      -]New value: +[
      +  "list",
      +  "show",
      +  "check",
      +  "users",
      +  "log",
      +  "queue",
      +  "create",
      +  "addUser",
      +  "setOwner",
      +  "delete",
      +  "removeObject"
      +]
    • addedInput schema / properties / system
      Added value: +{
      +  "description": "Target system whose import queue to read, e.g. QAS. Required for operation=\"queue\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / target
      Added value: +{
      +  "description": "Target system for operation=\"create\" with kind=\"copies\", e.g. A4H. A transport of copies with no target cannot be imported anywhere, so abapsmith refuses to create one.",
      +  "type": "string"
      +}
    • changedInput schema / properties / transport / description
      Previous value: -"Request/task number, e.g. A4HK900123. Required for operation=show/addUser/setOwner/delete/removeObject."New value: +"Request/task number, e.g. A4HK900123. Required for operation=show/addUser/setOwner/delete/removeObject and for operation=log."
  3. Changed1 schema field changedv0.5.14
    • changedInput schema / properties / operation / description
      Previous value: -"What to do. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME, e.g. a create and a delete both recorded under one request), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; create package+description; addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."New value: +"What to do. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME — legal but not reliably reproducible; cause unconfirmed), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; create package+description; addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."
  4. Changed5 schema fields changedv0.3.2
    • changedInput schema / properties / confirm / description
      Previous value: -"Echo the request number to arm delete."New value: +"Echo the request number to arm delete or removeObject."
    • changedInput schema / properties / object / description
      Previous value: -"Object name to check. Required for operation=check; optional anchor for create."New value: +"Object name. Required for operation=check, and for operation=removeObject (the entry to remove). Optional anchor for create."
    • changedInput schema / properties / operation / description
      Previous value: -"What to do. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm. Required args: list/users none; show transport; check object; create package+description; addUser/setOwner transport+user; delete transport+confirm."New value: +"What to do. create/addUser/setOwner need write access (ABAP_MODE=edit or admin, or legacy ABAP_ALLOW_WRITE=true when ABAP_MODE is unset); delete additionally needs the admin-only transport-delete ceiling (ABAP_MODE=admin — no legacy flag grants it) and confirm; removeObject (drop one E071 entry and its CTS lock, e.g. for an object already deleted from the system, so its request can then be deleted — if the object still exists, its lock goes too; CTS refuses this when the request holds 2 or more E071 rows for that object (same PGMID+OBJECT+OBJ_NAME, e.g. a create and a delete both recorded under one request), leaving the request undeletable through abapsmith) needs that same admin-only transport-delete ceiling and confirm. Required args: list/users none; show transport; check object; create package+description; addUser/setOwner transport+user; delete transport+confirm; removeObject transport+object+confirm."
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "list",
      -  "show",
      -  "check",
      -  "users",
      -  "create",
      -  "addUser",
      -  "setOwner",
      -  "delete"
      -]New value: +[
      +  "list",
      +  "show",
      +  "check",
      +  "users",
      +  "create",
      +  "addUser",
      +  "setOwner",
      +  "delete",
      +  "removeObject"
      +]
    • changedInput schema / properties / transport / description
      Previous value: -"Request/task number, e.g. A4HK900123. Required for operation=show/addUser/setOwner/delete."New value: +"Request/task number, e.g. A4HK900123. Required for operation=show/addUser/setOwner/delete/removeObject."
  5. First observedv0.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description discloses concrete behavioral constraints: which operations are always allowed, which need write access, and that delete/removeObject require confirm plus the admin-only ceiling. This is exactly the type of operational context an agent needs to invoke safely.

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?

The description is dense but every clause carries necessary information: operation list, access levels, required arguments, and a pointer to deeper docs. It could be broken into sections for readability, but given the tool's complexity, the single-paragraph format is still efficient and front-loaded with the core purpose.

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 multi-operation tool with 11 parameters, no output schema, and destructive operations, the description covers the essential execution context: operations, permissions, required arguments, confirm flow, and where to find detailed semantics. Nothing an agent needs to call it correctly 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?

The input schema already covers 100% of parameters with descriptions, but the tool description adds operation-to-parameter mapping (e.g., 'delete transport+confirm', 'create package+description') and clarifies defaults like kind='workbench' and why copies require target. This adds meaning beyond the schema without duplicating it.

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?

The description opens with 'Inspect and manage CTS transport requests' and then lists the full operation set, giving a specific verb and resource. It explicitly distinguishes release as a separate tool, so an agent can tell this apart from abap_transport_release without opening either 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?

The description provides explicit when-to-use guidance by categorizing operations as plain reads versus write/delete operations, and details the exact permission ceilings (write access, admin-only transport-delete ceiling) and required arguments per operation. It also names the sibling tool for release, making the routing decision unambiguous.

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