Skip to main content
Glama
Hollway

mcp-abap-abap-adt-api

by Hollway

callMethod

Invoke a static ABAP method with parameter values and get its returning, exporting, and changing parameters plus any exception text. Executes on the system, rolling back changes unless commit is set.

Instructions

Call a static method of a class with values and get what it returned, as data. The signature is read from the class source, because classComponents lists methods without their parameters. Returns the returning parameter, the exporting and changing ones by name, and any exception with its text. Static methods only: an instance method needs a constructor call, and runSnippet is the way to do that. IMPORTANT: this executes the method on the target system as the connected user. Nothing it changed is kept - the call is followed by ROLLBACK WORK - unless commit is set. It counts as a writing tool and is refused in read-only mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commitNoKeep what the call did: COMMIT WORK AND WAIT instead of ROLLBACK WORK. Default false.
dryRunNoReturn the generated class source without touching the system.
valuesNoValues by parameter name, same shapes as callFunction takes. Only importing and changing parameters can be supplied.
maxRowsNoRows of each table kept in the answer, default 20.
classNameYesClass holding the method, e.g. ZCL_APP.
keepClassNoLeave the generated class on the system instead of deleting it. Default false.
methodNameYesStatic method to call, e.g. GET_STAWN.
snippetClassNoName for the throwaway class. Default ZMCP_CALL_<timestamp in base 36>.

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?

Annotations only state readOnlyHint=false and destructiveHint=false. The description goes much further: it discloses that execution happens as the connected user, that changes are rolled back unless commit is set, and that the tool counts as a writing tool. This is critical behavioral context an agent needs, and it does not contradict the annotations.

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 well-structured and front-loaded: purpose first, then mechanics, then constraints, then the IMPORTANT caveat. Every sentence adds value—no redundancy or fluff. It is longer than average but justified by the complexity of the operation.

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?

Given no output schema, the description explains what is returned (returning, exporting, changing parameters, and exception text). It covers rollback/commit behavior, static-only limitation, and read-only refusal. The remaining details (maxRows, dryRun, snippetClass) are sufficiently described in the schema, so nothing essential is missing.

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 coverage is 100%, so each parameter is already documented. The description adds minimal parameter-specific meaning beyond what the schema provides; the note about 'values' referencing callFunction shapes is helpful but not essential. The baseline of 3 applies because the schema does the heavy lifting.

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 a specific verb and resource: 'Call a static method of a class with values and get what it returned, as data.' It distinguishes itself from siblings by explicitly noting static-only scope and pointing to runSnippet for instance methods. The mention that the signature is read from class source because classComponents lacks parameters adds useful context and separates it from related tools.

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?

It gives explicit usage guidance: 'Static methods only: an instance method needs a constructor call, and runSnippet is the way to do that.' This names the alternative and the condition that selects it. It also warns that the tool is refused in read-only mode, clarifying when it cannot be used.

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