Skip to main content
Glama
lingcSun

mcp-bw-adt-api

by lingcSun

bw_trfn_class_source

Get the ABAP source code of a routine in SAP BW. Use outputPath to write the full source to a file when the response is large.

Instructions

Get the routine's ABAP source code. Prefer outputPath.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
versionNoVersion: m=active, a=modified, d=revised.
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.
classVersionNoWhich class variant to read.
forceCacheUpdateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden, but it adds the meaningful behavioral hint 'Prefer outputPath'. It does not disclose the default inline return shape, caching behavior, or whether anything is written to disk when outputPath is omitted.

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 extremely short and front-loads the main action. Every word earns its place, though the terseness leaves little room for additional context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and five parameters, this description is too thin. An agent needs more context about return format, when to use outputPath, and how this tool relates to the many sibling get/save tools.

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

Parameters3/5

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

Schema description coverage is 60%, and the description adds an outputPath preference not explicitly implied by the schema. The remaining parameters (id, forceCacheUpdate) are not explained in the tool description, though their purpose is partly inferable from names and enums.

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 clear verb and resource ('Get the routine's ABAP source code'), which is enough to distinguish it from sibling save/get-xml tools at a glance. It does not explicitly name a sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

The only guidance is 'Prefer outputPath', which is about parameter use rather than tool selection. There is no explanation of when to choose this tool over bw_trfn_get_xml, bw_trfn_details, or bw_trfn_class_save_source.

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