Skip to main content
Glama
lingcSun

mcp-bw-adt-api

by lingcSun

bw_adso_save_and_activate

Persists ADSO object changes to SAP BW/4HANA and optionally activates them, using inline XML or a file path for large payloads, with transport request support.

Instructions

One-stop: lock → PUT → (optional) activate → unlock. Prefer xmlPath (from bw_adso_get_xml + outputPath) over inline xmlContent for large bodies. When a transport is required: pass transport= OR createTransport=true (use bw_transport_check to list available requests). Do not omit both. Returns a compact projection; set outputPath to keep the full update/activate detail.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
xmlPathNoPath (under the workdir) to a file containing the xml. Takes precedence over xmlContent. Use bw_*_get_xml with outputPath to produce such a file.
timestampNo
transportNoExisting transport request number to use.
outputPathNoIf provided, the full result is written to this path (under the workdir) and the tool returns only a small summary envelope { ok, outputPath, bytes, summary }. Objects/arrays are written as JSON; ONLY the bw_*_get_xml family writes the raw XML string as plain text (that file is directly reusable as xmlPath in a later save call). Other *_get tools (e.g. bw_dtp_get, bw_trfn_get) write the PARSED XML-to-JSON tree, not raw XML — use the matching bw_*_get_xml tool when you need the raw XML string. Use outputPath for large responses (XML, table data, logs, dataflow graphs). When set, tools skip inline pagination/projection so the file contains the complete payload.
xmlContentNoInline xml content. Mutually exclusive with xmlPath.
autoActivateNoDefault true.
createTransportNoIf true and recording is required with no transport/corrNr, create a new TR. Default false — you must choose transport or createTransport.
transportDescriptionNoDescription used only when createTransport=true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden, and it does disclose genuine behavior: the tool locks, PUTs, optionally activates, then unlocks — side effects an agent cannot infer from the schema alone. It also discloses return behavior ('Returns a compact projection') and the hard constraint 'Do not omit both'. It stops short of a 5 because failure/rollback semantics (e.g., what happens if activation fails after PUT) and permission requirements are not disclosed for this mutation tool.

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?

Four sentences in roughly 90 words, with the highest-value summary ('lock → PUT → (optional) activate → unlock') front-loaded first. Every sentence earns its place: workflow, xml guidance, transport constraint, and return behavior. No filler or restatement of schema content.

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?

For a complex mutation tool with 9 parameters, zero annotations, and no output schema, the description covers the three critical decision points an agent must get right: XML source selection, transport provisioning, and output handling. It partially compensates for the missing output schema by describing the compact projection. It is not quite a 5 because error conditions (missing transport failure mode) and post-failure state are left unspecified.

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 78%, near the high-coverage baseline of 3, and the description adds real cross-parameter meaning beyond the schema: the preference rule between xmlPath and xmlContent for large bodies, the XOR constraint between transport and createTransport, and the outputPath tradeoff (compact projection vs full detail). These add value beyond the individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific multi-step workflow — 'One-stop: lock → PUT → (optional) activate → unlock' — with an identifiable resource (ADSO, from the tool name). It is clear about what the tool does, though it never literally says 'save and activate an ADSO' and relies on the name for the resource. It does not explicitly differentiate from the sibling save_and_activate family (bw_trfn_save_and_activate, bw_dtp_save_and_activate), so it falls short of full sibling distinction.

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?

The description gives actionable when-to guidance: 'Prefer xmlPath ... over inline xmlContent for large bodies' and the transport requirement rule ('pass transport=<existing TRKORR> OR createTransport=true ... Do not omit both'), even routing to bw_transport_check for listing requests. However, it provides no explicit when-not-to-use or alternatives (e.g., when to use bw_adso_check or bw_adso_create instead), so exclusions are absent.

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