Skip to main content
Glama
Hollway

mcp-abap-abap-adt-api

by Hollway

createStructure

Create an ABAP structure (TABL/DS) with fields in one call: validates the name, writes the DDL, activates, and verifies. Handles key fields, quantity/currency unit references, and annotations. Use dryRun to preview DDL without creating.

Instructions

Create a structure (TABL/DS) and give it its fields in one call: validate the name, create, write the definition, syntax check, activate, verify. Fields are passed as data - the DDL is built here, including the opening keyword, which differs between releases and is taken from the object the backend just created. A quantity or currency field needs its unit annotation or the activation refuses it: pass unitField or currencyField and the reference is built and qualified for you. A transparent table (TABL/DT) cannot be created over ADT at all on a classic ERP system - see the note in getStructureSource. Nothing is rolled back: the answer says which step stopped and in what state the object was left.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesName of the new structure, e.g. ZDEV_MCP_STRUC.
dryRunNoValidate the name and show the DDL that would be written, without creating anything.
fieldsYesThe fields, in order: [{name, type, keyField, notNull, annotations}]. type is a data element (WERKS_D) or a built-in type (abap.char(10)).
activateNoSet false to leave the structure inactive.
languageNoMaster language. Defaults to the logon language - creating in EN files the description where nobody will look for it.
transportNoTransport request number - the request itself, not a developer task.
descriptionYesDescription; becomes @EndUserText.label.
packageNameYesPackage. $TMP for a local object; anything else needs a transport request.
enhancementCategoryNoEnhancement category, default NOT_EXTENSIBLE. Pass e.g. EXTENSIBLE_CHARACTER_NUMERIC.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A5/5.0
Behavior5/5

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

The description discloses several critical behaviors beyond annotations: it is non-atomic ('Nothing is rolled back'), it reports the step where failure occurred and the resulting state, and it constructs the DDL internally (including opening keyword differences). It also explains the activation requirement for unit/currency fields and the platform restriction for TABL/DT. These are substantial behavioral details not captured in the annotations (which only indicate non-read-only and non-destructive - actually destructiveHint false is a bit ambiguous, but the description overrides with clear non-rollback).

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?

The description is moderately long but every sentence adds essential information. It front-loads the primary purpose and step sequence, then covers critical requirements (units, TABL/DT), and ends with a crucial caveat about rollback. There is no fluff; each sentence serves a distinct 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?

Despite no output schema, the description fully covers the lifecycle of the creation: what happens, what can go wrong, what the response includes (step stopped and state), and how to avoid pitfalls (dryRun, units, language). With 9 parameters, the description provides enough guidance to call correctly, even without an output schema. The note about getStructureSource covers future inspection, and the warning about language helps avoid misuse.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters well. However, the description adds significant semantic value beyond the schema: it explains the purpose of fields (passed as data to build the DDL), clarifies the unitField/currencyField requirement for activation, and warns about the interaction between packageName and transport. It also explains the opening keyword difference across releases, which is not in the schema. Thus, the description substantially enhances understanding of the parameters.

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 clearly states that it creates a structure (TABL/DS) and gives it fields in one call, listing the steps (validate, create, write, syntax check, activate, verify). This differentiates it from siblings like createDataElement, createDomain, and createObject, which create different object types. The specific verb 'create' and the resource 'structure' are unambiguous.

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 explicitly explains when to use this tool: to create a new structure with fields in one callvon ABAP. It contrasts with getStructureSource for details on transparent tables over ADT, and it mentions the alternative of using dryRun for validation without creation. It also notes prerequisites like passing unitField/currencyField for quantity/currency fields and clarifies that the DDL is built here, implying that this tool is the primary creation path.

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

Deploy Server

Other Tools