Skip to main content
Glama
Hollway

mcp-abap-abap-adt-api

by Hollway

setDomainProperties

Modify an existing SAP DDIC domain by updating its data type, length, fixed values, and other properties, with automatic lock and transport handling, and optional activation.

Instructions

Change the definition of an existing DDIC domain. The backend PUT replaces the whole definition, so anything not passed here is kept as the system currently has it - read, merge, write happens on this side. The lock is taken and released here unless you pass a handle or this server already holds one; outside $TMP a transport request is needed. Writes the inactive version - pass activate to finish the job, or run activateSafe afterwards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoDomain name.
styleNoOutput style.
lengthNoField length.
activateNoActivate after the write (default false). Only possible when this tool took the lock itself - activation is refused while a session holds one.
datatypeNoDDIC data type, e.g. CHAR, NUMC, DEC, DATS.
decimalsNoDecimal places.
metaDataNoEscape hatch: the complete DomainMetaData document, sent as it is with no merge.
domainUrlNoObject URL instead of the name.
fixValuesNoFixed values, replacing the current list: [{low, high, text}]. Pass [] to clear them.
lowercaseNoLower case allowed.
transportNoTransport request number - the request itself, not a developer task.
ampmFormatNoAM/PM time format.
lockHandleNoLock handle. Omit it: the one this server holds for the object is used, and with none held the lock is taken and released here.
propertiesNoEscape hatch: the complete DomainProperties document, sent as it is with no merge.
signExistsNoValue can be negative.
valueTableNoValue table for the check.
descriptionNoShort description.
outputLengthNoOutput length; defaults to the field length.
conversionExitNoConversion exit, e.g. ALPHA.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses lock acquisition/release behavior, the merge semantics that prevent data loss, the transport requirement, and the inactive-write/activation workflow. This is far richer than the annotation flags alone and sets correct expectations for a mutating operation.

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?

Three sentences, front-loaded with the core purpose and followed by the most important behavioral caveats. No filler, repetition, or scene-setting; every sentence earns its place.

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 19-parameter write tool with no output schema, the description covers the essential context: what is changed, how merge works, locking, transports, and activation, even pointing to activateSafe as a fallback. The remaining details are in the fully covered input schema.

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 baseline is 3, but the description adds meaningful semantics for lockHandle ('taken and released here unless you pass a handle...'), transport ('outside $TMP a transport request is needed'), and activate ('pass activate to finish the job'). This goes beyond the schema's individual parameter notes.

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 'Change the definition of an existing DDIC domain', naming a specific verb and resource, and adds the precise backend behavior ('PUT replaces the whole definition'). This clearly distinguishes the tool from read-only siblings like getDomainProperties and creation tools like createDomain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It specifies this is for an existing domain and gives the operational context: read-merge-write happens on the server, a transport request is needed outside $TMP, and the tool writes the inactive version unless activate is passed. It does not explicitly name alternatives or exclusion conditions, but the 'existing DDIC domain' scope plus activation instructions make the intended use clear.

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