Skip to main content
Glama

call_rfc_function

Destructive

Invoke SAP RFC-enabled function modules with JSON parameters. Fetch the function interface first for required inputs, and commit or rollback write calls via transaction IDs.

Instructions

Invoke a SAP RFC-enabled function module with JSON parameters. Call get_rfc_function_interface first to know what parameters are required. mode='write' is required for functions classified as mutating and is rejected unless the server's policy explicitly allows writes for that function. A write returns a transaction_id tied to its SAP connection; reuse it for related writes, then pass it to commit_rfc_transaction or rollback_rfc_transaction. Writes are never auto-committed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoYour actual intent for this call: 'read' for non-mutating calls, 'write' if it changes SAP data. Checked against server policy.read
parametersYesIMPORT/TABLES/CHANGING parameter values, keyed by name as returned by get_rfc_function_interface.
function_nameYesExact name of the RFC-enabled function module to invoke.
transaction_idNoFor write mode, reuse the opaque transaction_id returned by an earlier write to keep all calls in the same SAP LUW. Omit on the first write and for reads.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
function_nameYes
transaction_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds substantial behavior beyond them: the policy gate that can reject write mode, the fact that a write returns a transaction_id tied to a SAP LUW, and that writes are never auto-committed. Missing only error/failure semantics or what happens on an invalid function name.

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 tight sentences, front-loaded with the core action and prerequisite, then the write-policy constraint, then the transaction lifecycle. No filler and no repetition of schema text.

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?

Output schema exists so return-value explanation is not needed; the description otherwise covers invocation, prerequisite, permission gating, transaction grouping, and finalization path. An agent has everything required to call this correctly on a first attempt.

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 compensates for the weakest documented field by explaining mode's policy-check behavior and transaction_id's reuse semantics across related writes. It goes beyond restating the schema by framing the LUW grouping model.

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?

Starts with a specific verb+resource ('Invoke a SAP RFC-enabled function module with JSON parameters') and immediately distinguishes itself from siblings by naming get_rfc_function_interface, commit_rfc_transaction, and rollback_rfc_transaction. An agent can tell exactly what this tool does and how it fits in the lifecycle without opening the schema.

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?

Explicitly states the prerequisite ('Call get_rfc_function_interface first'), the condition for write mode ('required for functions classified as mutating... rejected unless the server's policy explicitly allows writes'), and the follow-up routing ('pass it to commit_rfc_transaction or rollback_rfc_transaction'). When-to-use and when-not is fully covered.

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