Skip to main content
Glama

CheckFunctionModule

Checks an ABAP function module for syntax errors, warnings, and messages within its function group to validate code before activation.

Instructions

[read-only] Runs a syntax check on the ABAP function module named by function_module_name in the function group named by function_group_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "function_group_name": "<function_group_name>",
      "function_module_name": "<function_module_name>"
    },
    "name": "CheckFunctionModule"
  }
}

Input Schema

NameRequiredDescriptionDefault
versionNoVersion to check: 'active' or 'inactive'. Default: active.
function_group_nameYesFunction group name containing the function module.
function_module_nameYesFunction module name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv16.0.0
    • changedInput schema / properties / function_module_name / description
      Previous value: -"Function module name (e.g., Z_MY_FUNCTION)."New value: +"Function module name."
  2. Addedv6.5.1

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it self-declares '[read-only]', states what is returned (errors, warnings, messages), and explains the non-obvious batch behavior where the call is recorded and later read back by number. It omits authorization requirements and whether inactive-version checks behave differently, so not a 5.

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?

Three front-loaded sentences with no filler: purpose first, return values second, batch caveat last. The batch sentence is long but carries genuinely non-obvious information, so nothing is wasted.

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?

No output schema exists, and the description compensates by specifying the return content. Parameters are explained well enough and the batch mode is disclosed. Missing sibling routing and activation prerequisites are the only meaningful gaps for a check tool.

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 all three parameters are already documented, giving a baseline of 3. The description reinforces the function_module_name/function_group_name relationship but never mentions the 'version' parameter or its active/inactive default, adding little beyond the schema.

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?

States a specific verb ('Runs a syntax check') and a precisely scoped resource (an ABAP function module within a named function group), plus the return content. It does not explicitly say how it differs from the many Check* siblings such as CheckFunctionGroup or CheckProgram, which keeps it at 4 rather than 5.

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

Usage Guidelines3/5

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

The scope ('function module in the function group') implies when the tool applies, but there is no explicit statement of when to use it versus CheckFunctionGroup, CheckProgram, or the Activate* tools, and no prerequisites such as whether the object must be active first. Usage is inferable but not guided.

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