Skip to main content
Glama
fr0ster
by fr0ster

mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)

Stand With Ukraine

mcp-abap-adt is an MCP server for ABAP ADT in SAP ECC/S/4HANA (on-premise) and SAP BTP ABAP Cloud systems. It gives agents controlled access to real ABAP repositories through ADT, so analysis and changes are grounded in system data instead of assumptions. It is built for AI-assisted pair programming (AIPNV: AI Pairing, Not Vibing), not autopilot vibe coding.

Primary workflows:

  • Deep ABAP analysis: where-used, object metadata, repository navigation, object structure, semantic analysis, dependency and impact exploration.

  • High-level ABAP development: rapid CRUD and iterative updates for RAP and classic ABAP artifacts (classes, interfaces, function groups/modules, programs, DDIC, CDS/view/service artifacts), validated through ADT flows.

Why teams use it:

  • Full CRUD (not read-only): create, read, update, and delete ABAP artifacts

  • Works with On-Premise (ECC/S/4HANA), ABAP Cloud (BTP), and Legacy systems (BASIS < 7.50)

  • JWT/XSUAA, service key (destination-based), and RFC authorization

  • Multiple transports: stdio, HTTP, SSE

  • Rich tool surface for ABAP objects, metadata, transports, and search

Authorization & Destinations (Important): A destination is the filename of a service key stored locally. You place service keys in the service-keys directory, and use --mcp=<destination> to select which one to use. This is the primary auth model for on‑prem and BTP systems. See Authentication & Destinations.

You can configure MCP clients either manually (JSON/TOML) or via the configurator CLI (@mcp-abap-adt/configurator, repo: mcp-abap-adt-conf).

Table of Contents

  1. Getting Started

  2. Architecture

  3. Quick Start

  4. Use Cases

  5. Target Users

  6. Capabilities (High-Level Focus)

  7. Terminology

  8. Authorization & Destinations

  9. Registries

  10. Features

  11. Documentation

  12. Dependencies

  13. Running the Server

Related MCP server: ABAP-ADT-API MCP-Server

Getting Started

Install the server and configure your client using the configurator:

npm install -g @mcp-abap-adt/core
npm install -g @mcp-abap-adt/configurator

# stdio (destination)
mcp-conf --client cline --name abap --mcp TRIAL

# HTTP (streamable HTTP)
mcp-conf --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --mcp trial

Full configurator usage (separate repo): CLIENT_INSTALLERS.md.

Terminology

Destination: a local service key filename. You store service keys in the standard service-keys directory, and pass the filename (without extension) via --mcp=<destination> to select which system to use.

See docs/user-guide/TERMINOLOGY.md for the full list.

Authorization & Destinations

Destination-based auth is the default. Drop service keys into the standard platform folder and use the filename as your destination:

mcp-abap-adt --transport=stdio --mcp=TRIAL

Standard service key paths:

  • Unix (Linux/macOS): ~/.config/mcp-abap-adt/service-keys/<destination>.json

  • Windows: %USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys\\<destination>.json

For full details (paths, .env, direct headers), see Authentication & Destinations.

Architecture

The project ships as two packages, because the two usage patterns want different licences. Embedding the tools in a network service should not drag in the obligations of a server that service never runs.

Package

Licence

What it is

@mcp-abap-adt/lib

Apache-2.0

The ADT tool handlers and the embeddable MCP server. No transport: the host supplies one.

@mcp-abap-adt/core

AGPL-3.0-only

The standalone server — stdio, SSE and streamable HTTP, the launcher and the mcp-abap-adt CLI. Depends on the library.

Install @mcp-abap-adt/core to run a server. Install @mcp-abap-adt/lib to embed the tools in your own application.

1. Standalone MCP Server (Default)

Run as a standalone MCP server with stdio, HTTP, or SSE transport:

mcp-abap-adt                           # stdio (default)
mcp-abap-adt --transport=http          # HTTP mode
mcp-abap-adt --transport=sse           # SSE mode

2. Embeddable Server (For Integration)

Embed MCP server into existing applications (e.g., SAP CAP/CDS, Express). This needs @mcp-abap-adt/lib only — not the AGPL server:

npm install @mcp-abap-adt/lib
import {
  EmbeddableMcpServer,
  NoDedupStrategy, // optional: expose both Read<X> and Get<X>
} from '@mcp-abap-adt/lib/embeddable';

const server = new EmbeddableMcpServer({
  connection,              // Your AbapConnection instance
  logger,                  // Optional logger
  exposition: ['readonly', 'high'],  // Handler groups to expose
  // Default hides Read<X> when Get<X> is exposed (ReadVsGetDedupStrategy).
  // Pass NoDedupStrategy to expose both variants instead.
  // readOnlyDedupStrategy: new NoDedupStrategy(),
});
await server.connect(transport);

See Handlers Management → EmbeddableMcpServer dedup strategies for how readonly tools are deduped against high/low/compact, how to opt out with NoDedupStrategy, and how to plug a custom IReadOnlyDedupStrategy for role-based rules.

Quick Start

  1. Install server: See Installation Guide

  2. Configure client (auto): Use mcp-conf from @mcp-abap-adt/configurator (repo: mcp-abap-adt-conf, docs: CLIENT_INSTALLERS.md)

  3. Configure client (manual): See Client Configuration

  4. Use:

Use Cases

  • Impact analysis / where-used before changes: map object usage and probable blast radius.

  • Dependency audit: inspect links across classes, interfaces, DDIC, CDS/views, and RAP artifacts.

  • Migration and cleanup prep: extract repository facts to plan refactoring or cloud-readiness work.

  • RAP and ABAP iterative development: create/update artifacts quickly with ADT-backed operations.

  • Automated documentation and RAG ingestion: pull structured facts from ABAP systems for downstream tooling.

Target Users

  • ABAP developers and ABAP architects

  • RAP developers

  • Team leads and tech leads who need fast repository visibility

  • Teams building RAG/agent workflows for SAP landscapes

Capabilities (High-Level Focus)

Key examples of high-value workflows and tools:

  • Repository and impact analysis: GetWhereUsed, DescribeByList, GetObjectStructure, GetObjectInfo, SearchObject, GetPackageTree, GetPackageContents

  • Code and semantic introspection: GetAbapAST, GetAbapSemanticAnalysis, GetIncludesList

  • RAP development: CreateBehaviorDefinition, UpdateBehaviorDefinition, CreateBehaviorImplementation, UpdateBehaviorImplementation, CreateServiceDefinition, UpdateServiceDefinition, CreateMetadataExtension, UpdateMetadataExtension

  • CDS/View development: CreateView, UpdateView, GetView, DeleteView

  • ABAP OO CRUD: CreateClass, UpdateClass, GetClass, DeleteClass, CreateInterface, UpdateInterface, GetInterface, DeleteInterface

  • Function module/group CRUD: CreateFunctionGroup, UpdateFunctionGroup, GetFunctionGroup, DeleteFunctionGroup, CreateFunctionModule, UpdateFunctionModule, GetFunctionModule, DeleteFunctionModule

  • Transport and activation support: CreateTransport, GetTransport, ActivateObject

Registries

Published in the official MCP Registry and listed on Glama.ai.

Features

  • 🏗️ Domain Management: GetDomain, CreateDomain, UpdateDomain - Create, retrieve, and update ABAP domains

  • 📊 Data Element Management: GetDataElement, CreateDataElement, UpdateDataElement - Create, retrieve, and update ABAP data elements

  • 📦 Table Management: GetTable, CreateTable, GetTableContents - Create and retrieve ABAP database tables with data preview

  • 🏛️ Structure Management: GetStructure, CreateStructure - Create and retrieve ABAP structures

  • 👁️ View Management: GetView, CreateView, UpdateView - Create and manage CDS Views and Classic Views

  • 🎓 Class Management: GetClass, CreateClass, UpdateClass - Create, retrieve, and update ABAP classes

  • 📝 Program Management: GetProgram, CreateProgram, UpdateProgram - Create, retrieve, and update ABAP programs

  • 🔧 Behavior Definition (BDEF) Management: GetBehaviorDefinition, CreateBehaviorDefinition, UpdateBehaviorDefinition - Create and manage ABAP Behavior Definitions with support for Managed, Unmanaged, Abstract, and Projection types

  • 📋 Metadata Extension (DDLX) Management: CreateMetadataExtension, UpdateMetadataExtension - Create and manage ABAP Metadata Extensions

  • ⚡ Activation: ActivateObject - Universal activation for any ABAP object

  • 🚚 Transport Management: CreateTransport, GetTransport - Create and retrieve transport requests

  • 🔍 Enhancement Analysis: GetEnhancements, GetEnhancementImpl, GetEnhancementSpot - Enhancement discovery and analysis

  • 📋 Include Management: GetIncludesList - Recursive include discovery

  • 🔍 System Tools: GetInactiveObjects - Monitor inactive objects waiting for activation

  • 🧪 Runtime Diagnostics: RuntimeCreateProfilerTraceParameters, RuntimeListProfilerTraceFiles, RuntimeGetProfilerTraceData, RuntimeGetDumpById - Profiling and dump analysis with JSON payloads

  • 📡 Runtime Feeds: RuntimeListFeeds, RuntimeListSystemMessages, RuntimeGetGatewayErrorLog - Feed reader (dumps, system messages, gateway errors), SM02 system messages, Gateway error log

  • 🚀 SAP BTP Support: JWT/XSUAA authentication with browser-based token helper

  • 🔑 Destination-Based Authentication: Service key-based authentication with automatic token management (see Client Configuration)

  • 💾 Freestyle SQL: GetSqlQuery - Execute custom SQL queries via ADT Data Preview API

ℹ️ ABAP Cloud limitation: Direct ADT data preview of database tables is blocked by SAP BTP backend policies. The server returns a descriptive error when attempting such operations. On-premise systems continue to support data preview.

Documentation

For Users

For Administrators

For Developers

Dependencies

This project uses two npm packages:

These packages are automatically installed via npm install and are published to npm.


Running the Server

After installing globally with npm install -g, you can run from any directory:

# Show help
mcp-abap-adt --help

# Default stdio mode (for MCP clients; requires .env file or --mcp parameter)
mcp-abap-adt

# stdio mode (explicit; default when --transport is omitted)
mcp-abap-adt --transport=stdio

# HTTP mode on custom port (HTTP requires --transport=http)
mcp-abap-adt --transport=http --port=8080

# Use stdio mode with auth-broker (--mcp parameter)
mcp-abap-adt --transport=stdio --mcp=TRIAL

# Use env destination from platform sessions store
mcp-abap-adt --env=trial

# Use explicit .env file path
mcp-abap-adt --env-path=/path/to/my.env

# SSE mode (requires .env file or --mcp parameter)
mcp-abap-adt --transport=sse --port=3001

# SSE mode with auth-broker (--mcp parameter)
mcp-abap-adt --transport=sse --mcp=TRIAL

Development Mode

# Build and run locally
npm run build
npm start

# HTTP mode
npm run start:http

# SSE mode
npm run start:sse

Environment Configuration

Env resolution:

  1. --env-path=<path|file> (or MCP_ENV_PATH) for explicit .env file.

    • Absolute path: used as-is.

    • Relative path or file name only (e.g. my.env): resolved from current working directory.

  2. --env=<destination> for destination file in standard sessions store:

    • Unix: ~/.config/mcp-abap-adt/sessions/<destination>.env

    • Windows: %USERPROFILE%\\Documents\\mcp-abap-adt\\sessions\\<destination>.env

  3. Fallback to .env in current working directory.

Example .env file:

SAP_URL=https://your-sap-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your-username
SAP_PASSWORD=your-password

For JWT authentication (SAP BTP):

SAP_URL=https://your-btp-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=jwt
SAP_JWT_TOKEN=your-jwt-token

For RFC connection:

SAP_URL=https://your-legacy-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your-username
SAP_PASSWORD=your-password
SAP_CONNECTION_TYPE=rfc

See RFC Setup Guide for prerequisites (SAP NW RFC SDK).

For client certificate (mTLS) authentication — on-prem HTTP only:

SAP_URL=https://your-sap-system.com
SAP_AUTH_TYPE=certificate

# PEM format (provide both files):
SAP_CERT_PATH=/path/to/client.crt
SAP_CERT_KEY_PATH=/path/to/client.key

# Or PKCS#12 format (alternative to PEM):
# SAP_CERT_PFX_PATH=/path/to/client.pfx
# SAP_CERT_PASSPHRASE=your-passphrase

For Kerberos (SPNEGO) authentication — on-prem HTTP only:

SAP_URL=https://your-sap-system.com
SAP_AUTH_TYPE=kerberos

# Optional: explicit SPN (default: HTTP@<host>)
# SAP_KERBEROS_SPN=HTTP@mysaphost.corp.example
# Optional: service class used to derive the SPN when SAP_KERBEROS_SPN is unset (default: HTTP)
# SAP_KERBEROS_SERVICE=HTTP

Certificate auth notes:

  • Identifies the client via mTLS — no SAP_USERNAME / SAP_PASSWORD required.

  • Provide either PEM files (SAP_CERT_PATH + SAP_CERT_KEY_PATH) or a PKCS#12 file (SAP_CERT_PFX_PATH), not both.

  • On-prem HTTP connections only (SAP_CONNECTION_TYPE=rfc is not supported).

Kerberos auth notes:

  • Requires a valid Kerberos ticket on the host before starting the server. Obtain one with kinit or a keytab.

  • The optional kerberos npm package must be installed (needs GSSAPI dev libs on Linux / build tools on Windows): npm i kerberos.

  • No SAP_USERNAME / SAP_PASSWORD required — identity comes from the TGT.

  • Both auth types bypass the auth-broker; use .env directly.

  • NTLM is hard-rejected: if the SAP system offers NTLM instead of Kerberos/SPNEGO, the connection fails with a clear error rather than silently downgrading. Ensure the system accepts Kerberos (SPNEGO) for your user.

⚠️ Help wanted — not yet validated on a live system. Certificate and Kerberos auth pass full unit coverage but have not been tested against a real SAP system. If you have on-prem client-certificate or Kerberos/SPNEGO SSO, please try it and open an issue with results — especially whether Kerberos succeeds with a single-leg Negotiate token or your system needs mutual-auth continuation.

Generate .env from Service Key (JWT):

# Install the connection package globally (one-time setup)
npm install -g @mcp-abap-adt/connection

# Generate .env file from service key JSON
mcp-auth auth -k path/to/service-key.json

This will automatically create/update .env file with JWT tokens and connection details.

.env comments rule: only full-line comments are supported (lines that start with #).
Inline comments are not parsed, so keep comments on separate lines.

Claude recommendation: place the service key in the service-keys directory and use --mcp=<destination> (avoid manual JWT tokens).

Command-Line Options

Authentication:

  • --auth-broker - Force use of auth-broker (service keys), ignore .env file

  • --auth-broker-path=<path> - Custom path for auth-broker service keys and sessions

  • --browser-auth-port=<port> - Override OAuth browser callback port (default: 5000 for HTTP, 4000 for SSE, 4001 for stdio)

  • --connection-type=<http|rfc> - SAP connection transport: http (default) or rfc

  • --unsafe - Enable file-based session storage (persists tokens to disk). By default, sessions are stored in-memory (secure, lost on restart)

When --mcp=<destination> is specified, automatic fallback loading of ./.env is skipped.

Examples:

# Use auth-broker with file-based session storage (persists tokens)
mcp-abap-adt --auth-broker --unsafe

# Use auth-broker with in-memory session storage (default, secure)
mcp-abap-adt --auth-broker

# Custom path for service keys and sessions
mcp-abap-adt --auth-broker --auth-broker-path=~/prj/tmp/ --unsafe

See Client Configuration for complete configuration options.

Handler logging switches

  • AUTH_LOG_LEVEL=error|warn|info|debug — sets base log level for handler logger; DEBUG_AUTH_LOG=true also enables debug.

  • HANDLER_LOG_SILENT=true — fully disables handler logging.

  • DEBUG_CONNECTORS=true — verbose connection logging in high-level handlers.

  • DEBUG_HANDLERS=true — enables verbose logs for selected read-only/system handlers.

Development

Testing

npm test

Test logging switches

  • TEST_LOG_LEVEL=error|warn|info|debug — controls test logger verbosity (DEBUG_TESTS/DEBUG_ADT_TESTS/DEBUG_CONNECTORS force debug).

  • TEST_LOG_FILE=/tmp/adt-tests.log — writes test logs to a file (best-effort).

  • TEST_LOG_SILENT=true — disables test logging pipeline (console output muted).

  • TEST_LOG_COLOR=true — adds colored/prefixed tags to test log lines.

  • All console.* in tests are routed through the test logger with a [test] prefix.

Building

npm run build

Developer Tools

# Generate tool documentation
npm run docs:tools

# See tools/README.md for more developer utilities

Contributors

Thank you to all contributors! See CONTRIBUTORS.md for the complete list.


Acknowledgment: This project was originally inspired by mario-andreschak/mcp-abap-adt. We started with the core concept and then evolved it into an independent project with our own architecture and features.

License

Two packages, two licences. Which one applies depends on which you install.

Package

Licence

@mcp-abap-adt/lib

Apache-2.0

LICENSE, NOTICE

@mcp-abap-adt/core

AGPL-3.0-only

server/LICENSE

Both are published from this repository with one command, in the order the dependency requires:

npm run release:dry        # rehearses both, touches nothing
npm run release:publish    # @mcp-abap-adt/lib, then @mcp-abap-adt/core

release:publish skips a version already on the registry, so re-running after a failure resumes rather than starting over. It aborts on the first failure instead of publishing the server on top of a library that is not there.

Note that npm publish and npm run are different commands. npm publish release asks npm to publish a package named release, which is somebody else's package on the registry.

Copyright © 2025–2026 Oleksii Kyslytsia

Both are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

What this means. Running either, on your own data, carries no conditions.

Embedding the library in your own application carries no obligation to open your application: Apache-2.0 asks for the notice and the licence text to travel with it, and nothing more.

Distributing the standalone server, or running a modified version of it as a network service, means passing on the same freedoms under AGPL section 13 — including the source. That is why the two are separate packages: installing the library never puts the server in your dependency tree.

The libraries underneath are LGPL-3.0-only@mcp-abap-adt/adt-clients, connection, interfaces and logger — and the library links them at runtime. LGPL does not reach your own code, but its terms do travel with those four packages whatever this project is licensed as. Plan for that, not for the notice on this repository.

Other terms are possible. Apache-2.0 is what the library is offered under publicly, not the only way it can be offered. The copyright holder may license the same code separately to a party who needs different terms; that takes nothing away from anyone who received it under Apache-2.0, which is permanent. CONTRIBUTORS.md records what keeps that option open, including the rule that no LGPL code from the packages underneath is ever copied into this tree.

History. Releases through 8.13.0 were MIT and stay MIT; 9.x was GPL-3.0-only. A licence change is not retroactive — anyone may still take an earlier release under the licence it carried. See CONTRIBUTORS.md for the full account of how the relicensing was lawful.

Available Tools

193 tools
ActivateBehaviorDefinitionA

Activate a RAP behavior definition. Use after CreateBehaviorDefinition or UpdateBehaviorDefinition if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBehavior definition name (root entity, e.g., ZI_MY_ENTITY).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It does not disclose what happens on success (e.g., object becomes active), potential errors (e.g., already active, missing prerequisites), or side effects. This is insufficient for a 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?

The description is extremely concise: one sentence with a clear usage hint. Every word adds value, no redundancy.

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

Completeness3/5

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

Given the lack of output schema and simple parameters, the description is adequate but could be more complete. It does not explain the activation process, error conditions, or what success looks like, which is important for a tool that changes state.

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?

The schema has 100% coverage of parameter descriptions, so the description does not need to add much. The description adds context about session usage and sequencing but does not enhance understanding beyond what the schema already provides.

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 clearly states the action ('Activate'), the resource ('RAP behavior definition'), and the context ('after CreateBehaviorDefinition or UpdateBehaviorDefinition if the object remains inactive'). It effectively distinguishes from sibling tools like ActivateClass by specifying the object type.

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?

Explicitly guides when to use: after Create or Update if the object is inactive. This provides clear context for invocation, though it does not explicitly mention alternatives or when not to use.

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

ActivateClassA

Activate an ABAP class. Use after CreateClass or UpdateClass if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesClass name (e.g., ZCL_MY_CLASS).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'Activate', lacking details on side effects, permissions, idempotency, or what 'inactive' means. Minimal transparency.

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 extremely concise with two short sentences. No unnecessary words. Front-loaded with the core action.

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

Completeness3/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 is adequate but minimal. It lacks information about success criteria, error handling, or whether activation is reversible. Enough for a simple action but incomplete.

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%, and the description adds no extra meaning beyond the schema descriptions. The schema already explains class_name, session_id, and session_state adequately.

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 clearly states 'Activate an ABAP class' with a specific verb and resource. It provides context by mentioning after CreateClass or UpdateClass, but does not explicitly differentiate from sibling Activate* tools.

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 explicitly states when to use: after CreateClass or UpdateClass if the object remains inactive. However, it does not mention when not to use or alternatives.

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

ActivateDataElementA

Activate an ABAP data element. Use after CreateDataElement or UpdateDataElement if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
data_element_nameYesData element name (e.g., ZDT_MY_ELEMENT).

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'Activate' without explaining the behavioral implications (e.g., state change, side effects, reversibility). The description does not compensate for the lack of 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?

Single sentence, front-loaded with the main action, and no unnecessary words.

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 straightforward activation tool with minimal parameters and no output schema, the description is nearly complete. It could mention that activation is only needed if the object is inactive, which it already does.

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 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what the schema provides.

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?

Description clearly states the action ('Activate') and resource ('ABAP data element'), and explicitly distinguishes from siblings by specifying the typical use case after CreateDataElement or UpdateDataElement.

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?

Provides clear context on when to use (after Create/Update if inactive), but does not explicitly mention when not to use or list alternatives.

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

ActivateDdlA

Activate a CDS view. Use after CreateDdl or UpdateDdl if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
ddl_nameYesDDL source name (e.g., ZVW_MY_VIEW).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions activation but does not disclose potential side effects (e.g., locking, dependencies, failure if already active). The condition 'if the object remains inactive' hints at behavior but is insufficient for full transparency.

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?

Extremely concise: one sentence core action plus one sentence usage hint. No unnecessary words, front-loaded with key information.

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, but for a simple activation tool, the description omits what the return value looks like (e.g., success indicator or error message). However, the core usage and purpose are clear. Minor gap.

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 100%, so the schema already documents all parameters. The description does not add additional meaning beyond what the schema provides (e.g., ddl_name, session_id, session_state are all described in schema).

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 clearly states the action: 'Activate a CDS view.' It specifies the resource (CDS view) and verb (activate), distinguishing it from sibling tools that activate other object types.

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?

Provides explicit guidance: 'Use after CreateDdl or UpdateDdl if the object remains inactive.' This tells when and in what context to use the tool, implying when not to use, and references sibling tools.

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

ActivateDomainA

Activate an ABAP domain. Use after CreateDomain or UpdateDomain if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
domain_nameYesDomain name (e.g., ZDM_MY_DOMAIN).
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It describes the action but does not disclose authorization requirements, side effects, or what happens if the domain is already active. This is insufficient for a 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?

Two sentences that immediately convey the purpose and usage context. No extraneous information, very efficient.

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?

Given the moderate complexity (3 parameters, nested objects, no output schema), the description covers the primary action and usage scenario. It lacks details on return values or error handling, but is adequate for the domain.

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% with parameter descriptions that match the tool's purpose. The description does not add additional semantic value beyond what the schema provides, achieving baseline expectation.

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?

Clearly states the action ('Activate') and the resource ('an ABAP domain'), distinguishing it from sibling activation tools like ActivateClass or ActivateTable.

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?

Explicitly says when to use: 'Use after CreateDomain or UpdateDomain if the object remains inactive.' This provides clear context, though it could mention when not to use (e.g., if already active).

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

ActivateFunctionGroupA

Activate an ABAP function group. Use after CreateFunctionGroup or UpdateFunctionGroup if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
function_group_nameYesFunction group name (e.g., Z_FG_TEST).

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Activate' which implies mutation, but does not disclose any side effects, authorization requirements, or error conditions. The mention of session parameters hints at authentication context, but behavioral detail is minimal.

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 consists of two concise sentences with no redundant information. It is front-loaded with purpose and then provides usage context.

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?

Given the tool has 3 parameters (1 required) and no output schema, the description is fairly complete for a simple activation action. It explains purpose and context, but lacks details about return values or success/failure indications.

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 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, only repeating the function_group_name example. Baseline score of 3 is appropriate.

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 clearly states the action ('Activate') and the resource ('ABAP function group'), and distinguishes from sibling tools by specifying it is used after CreateFunctionGroup or UpdateFunctionGroup when the object remains inactive.

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 explicitly provides context for when to use the tool ('after CreateFunctionGroup or UpdateFunctionGroup if the object remains inactive'), giving clear guidance on the intended scenario.

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

ActivateFunctionModuleA

Activate an ABAP function module. Use after UpdateFunctionModule if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
function_group_nameYesFunction group name (e.g., Z_FG_TEST).
function_module_nameYesFunction module name (e.g., Z_FM_TEST).

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Activate,' which implies a state change, but it does not mention prerequisites, side effects, success/failure behavior, or output format. This leaves significant gaps in understanding what the tool actually does.

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 two short sentences, front-loaded with the core purpose, and contains no unnecessary information. It is highly concise and efficient.

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

Completeness3/5

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

Given no annotations and no output schema, the description should provide more context about the activation result, error handling, and session usage. It partially compensates by stating the primary use case, but the agent still lacks critical details for correct invocation.

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?

The input schema already describes all 4 parameters with 100% coverage. The description adds no additional meaning or context to the parameters, so it meets the baseline expectation but provides no extra value.

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 clearly states the tool's purpose: 'Activate an ABAP function module.' This is a specific verb (activate) and resource (function module), distinguishing it from other activation tools like ActivateClass or ActivateTable.

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 provides a clear usage context: 'Use after UpdateFunctionModule if the object remains inactive.' This helps the agent decide when to invoke this tool versus alternatives, though it does not explicitly exclude other scenarios.

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

ActivateInterfaceA

Activate an ABAP interface. Use after CreateInterface or UpdateInterface if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
interface_nameYesInterface name (e.g., ZIF_MY_INTERFACE).

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavior beyond activation (e.g., side effects, permissions, validation). This is insufficient for a tool that modifies state.

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?

Two sentences, no redundancy, and front-loaded with the core action. Every word earns its place.

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 simple activation tool, the description covers the essential context. However, it could mention potential activation failures or prerequisites like valid interface syntax.

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 baseline is 3. The description adds no meaning beyond the schema; it does not explain how session parameters relate to the activation process.

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 clearly states it activates an ABAP interface, and specifies the context: use after CreateInterface or UpdateInterface if inactive. This distinguishes it from sibling activate tools for other objects.

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?

Explicitly states when to use (after CreateInterface or UpdateInterface if inactive). Implicitly suggests not to use if object is already active, but does not provide explicit exclusions or alternatives.

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

ActivateMetadataExtensionA

Activate a CDS metadata extension. Use after CreateMetadataExtension or UpdateMetadataExtension if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMetadata extension name (e.g., ZC_MY_EXTENSION).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states 'Activate' implying state change but does not disclose side effects, permissions, idempotency, or what happens if already active. Lacks behavioral depth.

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?

Two sentences, front-loaded purpose, no wasted words. Very concise and well-structured.

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

Completeness3/5

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

Covers purpose and usage condition adequately but lacks details on authentication requirements, return values, and error conditions. No output schema, so description should compensate but does not. Adequate but not comprehensive.

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 baseline is 3. Description adds no additional meaning beyond the parameter descriptions in the schema. It does not explain interplay between session_id and session_state.

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?

Description clearly states it activates a CDS metadata extension, with a specific verb and resource. It distinguishes from sibling activation tools by naming the specific object type and providing usage context after create/update.

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 says to use after CreateMetadataExtension or UpdateMetadataExtension if the object remains inactive, providing clear when-to-use and implicit when-not-to-use guidance. It names prerequisite tools.

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

ActivateObjectsA

Activate one or multiple ABAP repository objects. Use after Create/Update when objects remain inactive, or for group activation of related objects (e.g., domains + data elements + tables together). Works with any object type.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsYesArray of objects to activate. Each object must have 'name' and 'type'.
preauditNoRequest pre-audit before activation. Default: true

TDQS

A3.7/5.0
Behavior2/5

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

Without annotations, the description bears full burden for behavioral disclosure. It does not mention side effects, idempotency, error handling, or required permissions. The preaudit parameter is not explained, and no hints about what happens on success or failure are given.

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 extremely concise: two sentences that front-load the primary purpose and then provide usage guidance. Every sentence adds value, with no redundant or unnecessary words.

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

Completeness3/5

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

Given the absence of annotations and output schema, the description is minimal but covers core purpose and usage. It misses details on return values, error states, and activation process constraints. Adequate for a simple tool but not fully complete for a complex ABAP activation scenario.

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 the schema already describes parameters adequately. The description adds no additional meaning beyond the schema; it does not explain preaudit or object type nuances. Baseline 3 is appropriate as description doesn't detract but also doesn't enhance.

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 clearly states the tool activates one or multiple ABAP repository objects, with specific verb 'Activate' and resource 'ABAP repository objects'. It distinguishes from sibling tools (e.g., ActivateDomain) by noting it works with any object type and supports group activation, which is unique.

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 provides explicit usage context: 'Use after Create/Update when objects remain inactive, or for group activation of related objects'. This guides when to use this tool versus specific activation tools. However, it does not explicitly state when not to use it or mention alternatives beyond the generic statement.

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

ActivateServiceBindingA

Activate an ABAP service binding. Use after CreateServiceBinding or UpdateServiceBinding if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesService binding name (e.g., ZSB_MY_SERVICE).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It hints at activation being a follow-up action but does not disclose side effects, permissions, or what happens if already active.

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?

Two sentences, front-loaded with the core action, no unnecessary words.

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

Completeness3/5

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

With no output schema and no annotations, the description lacks details on return values, error handling, or activation process, though it is sufficient for a simple activation action.

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 the schema already describes parameters. The description does not add additional meaning beyond implying session_id and session_state are optional for session management.

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 clearly states the verb 'Activate' and the resource 'ABAP service binding', and specifies it is used after CreateServiceBinding or UpdateServiceBinding if inactive, distinguishing it from sibling activation tools.

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?

Explicitly recommends use after CreateServiceBinding or UpdateServiceBinding when inactive, but does not provide exclusions or alternatives for other scenarios.

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

ActivateServiceDefinitionA

Activate an ABAP service definition. Use after CreateServiceDefinition or UpdateServiceDefinition if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesService definition name (e.g., ZSD_MY_SERVICE).
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the activation action but does not disclose required authorizations, side effects, or potential failure modes. The description is sufficient for a basic understanding but lacks behavioral detail.

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?

Two sentences concisely convey purpose and usage context without superfluous information. The structure is front-loaded, with the main action in the first sentence and critical usage guidance in the second.

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?

Given the tool's simplicity and the presence of sibling tools, the description covers essential purpose and usage. It could mention the need for a session or how to check activation status, but the current text is adequate for an agent to correctly select and invoke the 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% with all parameters described. The description adds context for the 'name' parameter by linking it to activation but does not elaborate on session parameters. Since schema covers the details, the description provides minimal extra value, consistent with a baseline of 3.

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 clearly states the tool activates an ABAP service definition and distinguishes it from sibling Activate* tools by specifying 'service definition'. It also provides a clear action verb 'Activate' and resource 'ABAP service definition', making the purpose unambiguous.

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?

The description explicitly tells the agent to use this tool after CreateServiceDefinition or UpdateServiceDefinition if the object remains inactive. This provides clear context on when to invoke this tool and implies when not to (if already active), effectively differentiating it from other operations.

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

ActivateStructureA

Activate an ABAP structure. Use after CreateStructure or UpdateStructure if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
structure_nameYesStructure name (e.g., ZST_MY_STRUCTURE).

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It only states 'Activate' with no details on side effects, authorization needs, success/failure conditions, or what happens to existing activation state.

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 a single well-structured sentence with a usage hint, front-loaded with the action, and contains no redundant information.

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 output schema, the description should explain return values or success indicators. It only says 'Activate' without describing outcomes, error scenarios, or confirmation of activation. Compared to similar activate tools, it lacks completeness.

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% with descriptive parameter names and descriptions. The tool description adds no additional meaning beyond what the schema already provides.

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 clearly states the tool activates an ABAP structure, and explicitly guides to use it after CreateStructure or UpdateStructure if inactive, distinguishing it from other activate tools in the sibling list.

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 provides explicit guidance on when to use the tool (after creation/update if inactive), but lacks mention of when not to use it or alternatives like activating through other means.

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

ActivateTableA

Activate an ABAP table. Use after CreateTable or UpdateTable if the object remains inactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
table_nameYesTable name (e.g., ZTB_MY_TABLE).
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates activation (a mutation) but lacks details on side effects, error conditions, or what happens if the table is already active. Given the absence of annotations, a score of 3 is appropriate as it provides minimal but not rich behavioral context.

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?

Two sentences, no redundancy, and front-loaded with the action verb. Every word contributes meaning, making it highly efficient.

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?

Given the simplicity of the tool (activate a table), the description conveys its purpose and usage scenario clearly. However, it lacks return value information (no output schema) and could mention potential errors or prerequisites. Still, it is fairly complete for a straightforward activation 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?

The input schema has 100% coverage with descriptions for all three parameters. The tool description adds no additional parameter details beyond what the schema provides. Baseline 3 is correct when the schema already documents the parameters adequately.

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 clearly states 'Activate an ABAP table' and distinguishes itself from other Activate* siblings by specifying the resource type. It also provides context about when to use it (after CreateTable or UpdateTable).

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 explicitly says 'Use after CreateTable or UpdateTable if the object remains inactive,' which provides clear guidance on when to invoke the tool. It does not explicitly mention when not to use it, but the context is strong enough for most cases.

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

CheckBehaviorDefinitionB

Perform syntax check on an ABAP behavior definition (BDEF). Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBehaviorDefinition name (e.g., ZI_MY_BDEF).

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool returns syntax errors/warnings/messages but does not disclose whether it is read-only, destructive, or requires any state (e.g., object existence). For a check tool, it is likely safe, but this is not explicit.

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 a single sentence that directly states the action and return type. Every word earns its place; no redundancy or filler.

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

Completeness3/5

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

The description sufficiently covers the tool's basic function for a simple check operation with one parameter and no output schema. However, it lacks mention of prerequisites (e.g., object must exist) or how errors are structured, making it adequate but not fully complete.

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?

With 100% schema coverage, the parameter 'name' is already well-documented in the input schema. The description adds no further meaning beyond the schema, so baseline score of 3 is appropriate.

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 clearly states the tool performs a syntax check on an ABAP behavior definition (BDEF) and returns errors, warnings, and messages. It uses a specific verb ('Perform syntax check') and resource ('ABAP behavior definition'), and implicitly distinguishes from sibling check tools (e.g., CheckClass) by specifying the object type.

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 description provides no guidance on when or why to use this tool versus siblings like GetBehaviorDefinition or CheckClass. It does not mention prerequisites (e.g., object must exist) or context (e.g., use before activation).

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

CheckClassA

Perform syntax check on an ABAP class. Can check existing class (active/inactive) or validate hypothetical source code. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to check: 'active' (last activated) or 'inactive' (current unsaved). Default: active.
class_nameYesClass name (e.g., ZCL_MY_CLASS).
source_codeNoOptional: source code to validate. If provided, validates hypothetical code without creating object. Must include complete CLASS DEFINITION and IMPLEMENTATION sections.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It states it performs a check and returns errors/warnings/messages, and that hypothetical code does not create objects. However, it does not mention any auth requirements, side effects, or performance considerations. The description is adequate but not thorough.

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 two sentences, front-loaded with the purpose and return values. It is concise with no wasted words, efficiently conveying key information.

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?

Given the tool's simplicity (3 parameters, no output schema), the description covers the main scenarios and return types. It could be more complete by specifying the structure of the return messages (e.g., structured list vs text), but it is sufficient for an agent to use correctly.

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% with parameter descriptions. The tool description adds value by explaining that source_code requires complete CLASS DEFINITION and IMPLEMENTATION sections. This goes beyond the schema description for that parameter. Overall, it complements the schema well.

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 clearly states the tool performs a syntax check on an ABAP class, with specific verbs and resource. It distinguishes two use cases: existing class (active/inactive) or hypothetical source code. This differentiates it from sibling tools like ActivateClass or CreateClass.

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 explains when to use the tool (syntax checking) and the two modes (existing class vs hypothetical code). However, it does not explicitly state when not to use it or mention alternative tools for other object types. The context of sibling tools implies differentiation but is not explicit.

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

CheckDataElementA

Perform syntax check on an ABAP data element. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_element_nameYesData element name (e.g., ZDE_MY_ELEMENT).

TDQS

A4/5.0
Behavior4/5

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

The description discloses the core behavior (syntax check) and output types (errors, warnings, messages). It does not explicitly state it is read-only, but the term 'check' implies no side effects. With no annotations, this is adequate for a non-destructive 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?

The description is a single, concise sentence that front-loads the action and resource. Every word is necessary, and there is no extraneous information.

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?

Given the tool's low complexity (one parameter, no output schema), the description adequately covers purpose and return types. However, it could be more specific about the structure of the returned messages.

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?

The schema covers the single parameter with a description. The tool description does not add extra meaning beyond what the schema provides, so it meets the baseline for 100% schema coverage.

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 clearly states it performs a syntax check on an ABAP data element and returns errors, warnings, and messages. This directly differentiates it from sibling tools that check other object types like CheckClass or CheckDomain.

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 description implicitly guides usage by specifying the target object (data element), but it does not explicitly state when to use this tool versus alternatives or provide any context about prerequisites or exclusions.

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

CheckDdlA

Perform syntax check on an ABAP CDS view. Can check existing view (active/inactive) or validate hypothetical DDL source. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to check: 'active' or 'inactive'. Default: inactive.
ddl_nameYesCDS view name to check, passed as ddl_name (e.g., ZI_MY_VIEW).
ddl_sourceNoOptional: DDL source code to validate instead of the saved version.

TDQS

A3.8/5.0
Behavior3/5

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

Describes action (syntax check) and return type (errors/warnings/messages). No annotations provided; description is adequate but does not disclose side effects or prerequisites beyond parameters.

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?

Two efficient sentences, front-loaded with main action, no redundant text. Highly concise.

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?

Adequately explains functionality for a simple check tool, despite no output schema. Mentions return types and two modes. Could detail output structure, but not critical.

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 description adds limited value. It clarifies the 'hypothetical' use case and maps to version/ddl_source parameters, but meaning is mostly already in schema.

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?

Clearly states it performs syntax check on ABAP CDS views, with two modes: existing view or hypothetical DDL source. Distinguishes from sibling Check* tools that target other object types.

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?

Implies usage for syntax checking CDS views, but lacks explicit when-not-to-use or alternatives among sibling check tools. Suggests two use cases but no exclusions.

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

CheckDomainB

Perform syntax check on an ABAP domain. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesDomain name (e.g., ZDM_MY_DOMAIN).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not explicitly state that the tool is non-destructive, read-only, or safe. It mentions only output types but omits behavioral details like authorization requirements or side effects. This is insufficient for full transparency.

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 a single clear sentence with no wasted words. It is front-loaded with the action and result, but could be slightly more structured or include additional context without harming conciseness.

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

Completeness3/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 mentions return types (syntax errors, warnings, messages) but lacks details on structure or format. For a simple check tool with one parameter, this is partially adequate but not fully complete.

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% (the one parameter has a description). The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate. The description does not enhance parameter understanding.

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 clearly states 'Perform syntax check on an ABAP domain', specifying the exact verb and resource. It naturally distinguishes from sibling tools like CheckClass or CheckDataElement by naming the object type, making the tool's purpose unambiguous.

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 description provides no guidance on when to use this tool versus alternatives, such as GetDomain or ActivateDomain. It lacks context about prerequisites, typical use cases, or exclusions, leaving the agent without decision support.

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

CheckFunctionGroupA

Perform syntax check on an ABAP function group. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
function_group_nameYesFunction group name (e.g., ZFGRP_MY_GROUP).

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool performs a syntax check and returns errors/warnings, which implies a non-destructive read operation. However, it does not disclose authorization needs, side effects, or limitations (e.g., only checks syntax, not semantics).

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 a single, front-loaded sentence that conveys the action and output. No wasted words.

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 simple check tool with one parameter and no output schema, the description is mostly complete: it explains what it does and what it returns. It could optionally mention that it only checks static syntax, but overall it provides sufficient context.

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% (one parameter with description). The description adds no additional meaning beyond the schema. The baseline score of 3 applies.

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 clearly states the action ('Perform syntax check') and the resource ('ABAP function group'), and specifies the output ('syntax errors, warnings, and messages'). The verb and resource combination distinguishes it from sibling tools like CheckFunctionModule and CheckClass.

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 description implies usage for syntax checking function groups but does not provide explicit guidance on when to use this tool versus alternatives (e.g., other CheckXxx tools for different object types). No mention of prerequisites or exclusions.

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

CheckFunctionModuleB

Perform syntax check on an ABAP function module. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to check: 'active' or 'inactive'. Default: active.
function_group_nameYesFunction group name containing the function module.
function_module_nameYesFunction module name (e.g., Z_MY_FUNCTION).

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It states the tool returns syntax errors, warnings, and messages, but omits details like whether it is read-only, required authorizations, or if it has any side effects. The lack of such context is a significant gap.

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 a single, well-structured sentence that immediately communicates the action and output. No extraneous words are present; every part earns its place.

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?

Given the tool's complexity (3 parameters, no output schema), the description adequately covers the purpose and return types. It could mention that the function module must exist, but the description is still fairly complete 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 description coverage is 100%, so the baseline is 3. The description does not add additional meaning beyond the schema; it simply restates the tool's purpose. The schema already adequately describes the parameters (function group, module name, version).

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 clearly states the tool performs a syntax check on an ABAP function module, with a specific verb and resource. It distinguishes from sibling Check* tools (e.g., CheckClass, CheckFunctionGroup) by specifying 'function module'.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., other Check* tools). The description does not mention prerequisites, such as the function module needing to exist, or scenarios where it should not be used.

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

CheckInterfaceA

Perform syntax check on an ABAP interface. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_nameYesInterface name (e.g., ZIF_MY_INTERFACE).

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only mentions return types (errors, warnings, messages) but lacks information on side effects, prerequisites (e.g., interface must exist), or whether the check is read-only.

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 two concise sentences, front-loading the action and retrieval. Every word contributes meaning without redundancy.

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

Completeness3/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 should elaborate on the return format or detail level of errors/warnings. The current description is adequate but lacks specificity, especially for an agent that may need to parse the output.

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?

The schema coverage is 100% for the single parameter, and the schema description already explains it ('Interface name (e.g., ZIF_MY_INTERFACE)'). The tool description adds no additional semantic value, meeting the baseline expectation.

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 clearly states the action ('Perform syntax check'), the resource ('ABAP interface'), and the output ('syntax errors, warnings, and messages'). It effectively distinguishes from sibling check tools (e.g., CheckClass, CheckTable) which target different ABAP objects.

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 description omits any guidance on when to use this tool versus alternatives (e.g., when to check an interface vs. a class). While the name and context imply its purpose, explicit usage directives are absent.

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

CheckMetadataExtensionB

Perform syntax check on an ABAP metadata extension (DDLX). Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMetadata extension name (e.g., ZC_MY_DDLX).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the output (errors, warnings, messages) but does not disclose whether the tool is read-only, side-effect-free, or requires specific permissions.

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 a single, well-structured sentence that is front-loaded with the key purpose. It could be slightly improved with additional context, but it is concise and without unnecessary words.

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 the simplicity of the tool (one parameter, no output schema, no annotations), the description is incomplete. It lacks information about side effects, prerequisites, or usage context that would help an agent decide when to invoke it.

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 100%, and the description adds no meaningful information beyond the schema. The schema already describes the parameter with an example, so the baseline of 3 is appropriate.

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 clearly states it performs a syntax check on an ABAP metadata extension (DDLX), which is a specific verb and resource. The name distinguishes it from sibling check tools like CheckClass or CheckTable.

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 description does not provide any guidance on when to use this tool versus alternatives, such as when to check before activation or that it should be used for DDLX syntax validation only.

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

CheckPackageB

Perform syntax check on an ABAP package. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_nameYesPackage name (e.g., ZMY_PACKAGE).
super_packageYesSuper package name (parent package).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided. The description states it 'returns syntax errors, warnings, and messages' but does not disclose whether the check is read-only, requires specific authorizations, or has any side effects. Minimal behavioral context.

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?

A single, front-loaded sentence that efficiently conveys the core action and result. No wasted words.

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?

Despite full schema coverage and no output schema, the description lacks details about the return format, whether results are structured or free text, and any behavioral aspects like synchronicity. For a tool with two required parameters and no annotations, more context is needed.

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% with descriptions for both parameters. The tool description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 clearly states it performs a syntax check on an ABAP package, with a specific verb and resource. Among sibling tools, many are Check* for different object types (Class, Table, etc.), so the resource 'package' distinguishes it effectively.

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?

No guidance on when to use this tool versus alternatives (e.g., CheckClass for individual objects). It does not mention prerequisites, context, or when not to use it.

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

CheckStructureA

Perform syntax check on an ABAP structure. Can check existing structure (active/inactive) or validate hypothetical DDL code. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to check: 'active' or 'inactive'. Default: inactive.
ddl_codeNoOptional: DDL source code to validate instead of the saved version.
structure_nameYesStructure name (e.g., ZST_MY_STRUCTURE).

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only mentions the check and output types but does not mention side effects (none expected), authentication requirements, rate limits, or behavior when the structure does not exist. This leaves significant gaps.

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 two sentences, front-loaded with the core purpose. No filler or redundancy. Every sentence adds value.

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

Completeness3/5

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

Given the lack of output schema and annotations, the description provides a basic understanding of the tool's function. However, it omits details like the format of errors/warnings, error handling, and edge cases (e.g., invalid structure name). It is minimally viable but could be more informative.

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?

The input schema already has 100% coverage with descriptions for all parameters. The description adds a nuance about 'hypothetical' DDL code, but otherwise does not significantly enrich the parameter meaning beyond the schema.

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 clearly states the tool's function: performing a syntax check on an ABAP structure. It specifies two use cases (existing structure or hypothetical DDL code) and lists the output types (errors, warnings, messages), distinguishing it clearly from sibling tools.

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 provides clear context by explaining that the tool can check an existing structure or validate DDL code. However, it does not explicitly state when to use this tool over alternatives like CheckTable or CheckView, nor does it provide exclusions.

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

CheckTableA

Perform syntax check on an ABAP table. Can check existing table (active/inactive) or validate hypothetical DDL code. Returns syntax errors, warnings, and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to check: 'active', 'inactive', or 'new'. Default: new.
ddl_codeNoOptional: DDL source code to validate instead of the saved version.
table_nameYesTable name (e.g., ZMCP_MY_TABLE).

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It explains that the tool returns syntax errors, warnings, and messages, but does not explicitly state that it is read-only (no side effects). It also omits details about authentication requirements or performance implications, leaving some transparency gaps.

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 extremely concise, consisting of two sentences that cover purpose and key details without any extraneous text. Every sentence earns its place, making it efficient and easy to parse.

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?

Given the tool's simplicity (3 parameters, no output schema, no annotations), the description provides sufficient context: it explains what the tool does, what it returns, and the two modes of operation. It could be improved by specifying that it does not modify data, but for its complexity level, it is largely complete.

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. The description adds value by explaining the two usage modes (existing table vs. hypothetical DDL) which contextualizes the version and ddl_code parameters. This additional meaning goes slightly beyond the schema descriptions, earning a 4.

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 clearly states the tool performs a syntax check on an ABAP table, distinguishing it from sibling Check* tools that check other objects. It explicitly mentions two modes: checking an existing table (active/inactive) and validating hypothetical DDL code, leaving no ambiguity about its function.

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 provides clear context for when to use the tool (syntax checking of tables or hypothetical DDL), effectively differentiating it from other Check* siblings. However, it lacks explicit guidance on when not to use it (e.g., why one would choose ActivateTable instead) and does not mention alternatives, missing a chance to be more helpful.

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

CreateBehaviorDefinitionC

Operation: Create. Subject: BehaviorDefinition. Will be useful for creating behavior definition. Create a new ABAP Behavior Definition (BDEF) in SAP system. Creates the behavior definition object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBehavior Definition name (usually same as Root Entity name)
activateNoActivate after creation. Default: true
descriptionNoDescription
root_entityYesRoot Entity name (CDS View name)
package_nameYesPackage name
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number
implementation_typeYesImplementation type: 'Managed', 'Unmanaged', 'Abstract', 'Projection'

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full burden. It mentions creating in 'initial state' but does not explain what that means, nor does it disclose authorization needs, side effects, or whether activation happens (though 'activate' parameter exists). The description is insufficient for a 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Create. Subject: BehaviorDefinition.' and 'Create a new ABAP Behavior Definition (BDEF) in SAP system.' could be merged. It is front-loaded but not optimally concise.

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 the tool has 8 parameters (4 required), no output schema, and no annotations, the description is too brief. It fails to explain what a behavior definition is, the meaning of 'initial state', or any usage context. The agent would lack sufficient information to use the tool correctly.

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?

Input schema has 100% description coverage for all 8 parameters. The description does not add extra meaning beyond the schema, but baseline is 3 due to high schema coverage.

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 clearly states the verb 'Create' and the resource 'BehaviorDefinition', and mentions creating a new ABAP Behavior Definition in SAP system. However, the phrase 'Will be useful for creating behavior definition' is slightly redundant and adds little.

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?

No guidance on when to use this tool versus sibling tools like CreateClass or CreateTable. The description does not mention alternative scenarios or prerequisites.

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

CreateBehaviorImplementationA

Create a new ABAP behavior implementation class for a behavior definition. Creates the object in initial state. Use UpdateBehaviorImplementation to set implementation code afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesBehavior Implementation class name (e.g., ZBP_MY_ENTITY). Must follow SAP naming conventions (typically starts with ZBP_ for behavior implementations).
descriptionNoClass description. If not provided, class_name will be used.
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
behavior_definitionYesBehavior Definition name (e.g., ZI_MY_ENTITY). The behavior definition must exist.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided; description adds 'Creates the object in initial state' but does not disclose side effects, permission requirements, activation needs, or validation details. Moderate clarity but leaves gaps.

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?

Two sentences: first states purpose, second provides usage guideline. No filler words, highly efficient.

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

Completeness3/5

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

No output schema; description does not mention return values, activation, or prerequisites beyond required params. Adequate but could be more complete given tool complexity.

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 covers 100% of parameters with clear descriptions. Description adds limited additional meaning beyond stating initial creation. Baseline 3 applies; no extra value.

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?

Clearly states verb 'Create' and resource 'ABAP behavior implementation class for a behavior definition'. Specifies 'initial state', distinguishing it from UpdateBehaviorImplementation. Differentiates from sibling CreateBehaviorDefinition.

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?

Explicitly advises using UpdateBehaviorImplementation for setting implementation code afterwards, providing clear guidance on subsequent steps. Does not address when not to use versus other create tools, but context is sufficient.

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

CreateCdsUnitTestB

Create a CDS unit test class with CDS validation. Creates the test class in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesGlobal test class name (e.g., ZCL_CDS_TEST).
descriptionNoOptional description for the global test class.
package_nameYesPackage name (e.g., ZOK_TEST_PKG_01, $TMP).
cds_view_nameYesCDS view name to validate for unit test doubles.
transport_requestNoTransport request number (required for transportable packages).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; the description only says 'Creates the test class in initial state' without disclosing side effects, permissions, or post-creation behavior. For a creation tool, this is insufficient.

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?

Two concise sentences front-load the purpose, with no wasted words. Appropriate for a simple creation tool.

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?

With 5 parameters, no output schema, and no annotations, the description is too minimal. It omits details like return value, prerequisites, and what 'initial state' entails.

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 100%, so the schema already fully describes parameters. The description adds no additional meaning beyond that, meeting the baseline of 3.

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 clearly states it creates a CDS unit test class with CDS validation, distinguishing it from general unit test creation (CreateUnitTest) and general class creation (CreateClass).

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?

No guidance on when to use this tool versus alternatives like CreateUnitTest or CreateClass, nor any prerequisites or exclusions.

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

CreateClassC

Operation: Create. Subject: Class. Will be useful for creating class. Create a new ABAP class in SAP system. Creates the class object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
finalNoMark class as final. Default: false
abstractNoMark class as abstract. Default: false
class_nameYesClass name (e.g., ZCL_TEST_CLASS_001).
superclassNoOptional superclass name.
descriptionNoClass description (defaults to class_name).
package_nameYesPackage name (e.g., ZOK_LAB, $TMP).
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
create_protectedNoProtected constructor. Default: false
transport_requestNoTransport request number (required for transportable packages).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'initial state' without explaining what that entails. Critical details like transport request requirements (visible in schema) are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundant phrasing ('Operation: Create. Subject: Class. Will be useful for creating class.'). It could be more concise and front-loaded.

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 9 parameters and no output schema, the description is incomplete. It fails to mention the transport request requirement, relationship with ActivateClass, or what 'initial state' means. More context is needed for correct tool selection and use.

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

Parameters2/5

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

Schema coverage is 100%, so the description does not need to repeat parameter info. However, it adds no value beyond schema, and the vague wording 'Will be useful for creating class' does not explain parameter semantics or constraints.

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?

Description clearly states it creates a new ABAP class in SAP system, distinguishing it from sibling tools that create other objects. However, the phrase 'initial state' is ambiguous and the opening 'Operation: Create. Subject: Class.' is redundant.

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?

No guidance on when to use this tool versus alternatives like CreateBehaviorDefinition or ActivateClass. No prerequisites, exclusions, or context provided.

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

CreateDataElementC

Operation: Create. Subject: DataElement. Will be useful for creating data element. Create a new ABAP data element in SAP system. Creates the data element object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoData type length. Usually inherited from domain.
decimalsNoDecimal places. Usually inherited from domain.
data_typeNoData type (e.g., CHAR, NUMC) or domain name when type_kind is 'domain'.CHAR
type_kindNoType kind: 'domain' (default), 'predefinedAbapType', 'refToPredefinedAbapType', 'refToDictionaryType', 'refToClifType'. If not specified, defaults to 'domain'.domain
type_nameNoType name: domain name (when type_kind is 'domain'), data element name (when type_kind is 'refToDictionaryType'), or class name (when type_kind is 'refToClifType')
long_labelNoLong field label (max 40 chars). Applied during update step after creation.
descriptionNoData element description. If not provided, data_element_name will be used.
search_helpNoSearch help name. Applied during update step after creation.
short_labelNoShort field label (max 10 chars). Applied during update step after creation.
medium_labelNoMedium field label (max 20 chars). Applied during update step after creation.
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
heading_labelNoHeading field label (max 55 chars). Applied during update step after creation.
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
data_element_nameYesData element name (e.g., ZZ_E_TEST_001). Must follow SAP naming conventions.
set_get_parameterNoSet/Get parameter ID. Applied during update step after creation.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
search_help_parameterNoSearch help parameter. Applied during update step after creation.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions 'initial state' but does not explain what that entails (e.g., inactive, needs activation). No disclosure of side effects, required authorizations, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Create. Subject: DataElement. Will be useful for creating data element.' Repeats the same idea. Could be more concise without losing meaning.

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 17 parameters, no output schema, and no annotations, the description is insufficient. It fails to clarify the creation process lifecycle (e.g., the need for activation, separate update tools for labels) and does not elaborate on critical parameters like transport_request or type_kind.

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 100%, so all 17 parameters are already documented in the input schema. The description adds no additional context or clarification beyond what the schema provides, meeting the baseline of 3.

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 explicitly states 'Create a new ABAP data element in SAP system' which clearly indicates the tool's function. It distinguishes from siblings like CreateDomain or CreateTable by naming 'DataElement'. However, the opening line 'Operation: Create. Subject: DataElement.' is somewhat redundant.

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?

No guidance on when to use this tool versus alternative creation tools (e.g., CreateDomain for domains, CreateStructure for structures). No prerequisites, no exclusions, and no context about transport requirements or activation steps.

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

CreateDdlA

Operation: Create. Subject: DDL source. Will be useful for creating a DDL source. Create a new CDS View or Classic View in SAP system. Creates the DDL source object in initial state. Use UpdateDdl to set DDL source code.

ParametersJSON Schema
NameRequiredDescriptionDefault
ddl_nameYesDDL source name (e.g., ZOK_R_TEST_0002, Z_I_MY_VIEW).
descriptionNoOptional description (defaults to ddl_name).
package_nameYesPackage name (e.g., ZOK_LAB, $TMP for local objects)
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (required for transportable packages).

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the transparency burden. It discloses that the tool creates the object in an initial state, implying no code is set. However, it does not mention that a transport request may be required for transportable packages or what happens if the object already exists. This is a moderate gap.

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 very concise with four sentences. It front-loads the key action ('Operation: Create. Subject: DDL source.') and then provides the necessary context. Every sentence is meaningful and no redundant information.

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?

Given the number of parameters (5) and the absence of an output schema, the description adequately covers the main purpose and key distinction from siblings. It mentions that the object is created in initial state and points to UpdateDdl for setting code. Minor missing details like conditional transport request requirement, but overall complete for typical agent use.

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?

The schema has 100% description coverage, so baseline is 3. The description does not add any additional meaning or context for the parameters beyond what is already in the schema. It does not elaborate on any parameter, so no extra value is provided.

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 explicitly states it creates a new CDS View or Classic View in SAP system, creating the DDL source object in initial state. It distinguishes from UpdateDdl by mentioning that UpdateDdl sets the source code, so the purpose is clear and distinct from siblings.

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 provides a clear guideline: 'Use UpdateDdl to set DDL source code.' This tells the agent when to use this tool vs. the alternative. However, it does not explicitly state when not to use it or other conditions, but the context is sufficient for typical usage.

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

CreateDomainC

Operation: Create. Subject: Domain. Will be useful for creating domain. Create a new ABAP domain in SAP system. Creates the domain object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNo(optional) Field length (max depends on datatype)
activateNo(optional) Activate domain after creation (default: true)
datatypeNo(optional) Data type: CHAR, NUMC, DATS, TIMS, DEC, INT1, INT2, INT4, INT8, CURR, QUAN, etc.CHAR
decimalsNo(optional) Decimal places (for DEC, CURR, QUAN types)
lowercaseNo(optional) Allow lowercase input
descriptionNo(optional) Domain description. If not provided, domain_name will be used.
domain_nameYesDomain name (e.g., ZZ_TEST_0001). Must follow SAP naming conventions.
sign_existsNo(optional) Field has sign (+/-)
value_tableNo(optional) Value table name for foreign key relationship
fixed_valuesNo(optional) Array of fixed values for domain value range
package_nameNo(optional) Package name (e.g., ZOK_LOCAL, $TMP for local objects)
conversion_exitNo(optional) Conversion exit routine name (without CONVERSION_EXIT_ prefix)
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNo(optional) Transport request number (e.g., E19K905635). Required for transportable packages.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It mentions 'creates the domain object in initial state' but fails to disclose key behaviors like activation (schema has activate parameter default true), transport request requirements, or side effects. Minimal behavioral info beyond the basic creation action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short but contains redundancy: 'Operation: Create. Subject: Domain.' and 'Will be useful for creating domain.' are unnecessary. The core message is two sentences. Could be more concise by removing filler.

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?

The tool has 14 parameters, no output schema, and no annotations, yet the description provides almost no context beyond creation. It omits typical usage patterns, expected effects (e.g., activation, transport), and error conditions. Incomplete for a complex SAP object creation 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 description coverage is 100%, so baseline is 3. Description adds no additional meaning to parameters beyond what the schema already provides. For example, it doesn't explain that 'activate' controls immediate activation or that 'transport_request' is conditional on 'package_name'.

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?

Description clearly states 'Create a new ABAP domain in SAP system' with verb and resource. It distinguishes from sibling tools by specifying domain creation. However, the phrase 'Will be useful for creating domain' is redundant and slightly tautological, but does not obscure meaning.

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?

No guidance on when to use this tool versus alternatives like CheckDomain or UpdateDomain. No context about prerequisites, such as requiring a transport request for non-local packages. The description does not help the agent decide when to invoke this tool over siblings.

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

CreateFunctionGroupA

Create a new ABAP function group in SAP system. Function groups serve as containers for function modules. Uses stateful session for proper lock management.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate function group after creation. Default: true. Set to false for batch operations.
descriptionNoFunction group description. If not provided, function_group_name will be used.
package_nameYesPackage name (e.g., ZOK_LAB, $TMP for local objects)
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
function_group_nameYesFunction group name (e.g., ZTEST_FG_001). Must follow SAP naming conventions (start with Z or Y, max 26 chars).

TDQS

A3.5/5.0
Behavior3/5

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

Mentions 'Uses stateful session for proper lock management' which is a behavioral detail. However, no annotations exist, so description carries full burden. Does not disclose side effects (creates object), permissions needed, or idempotency. Lacks important behavioral traits for a write operation.

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 short sentences with no fluff. Front-loaded with purpose. Could be slightly more structured (e.g., bullet-point key usage), but overall efficient.

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?

Lacks details about return values (no output schema), confirmation of success, or failure behavior. For a creation tool with 6 parameters and no annotations, the description should provide more context about the outcome and dependencies (e.g., transport request requirement highlighted).

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?

Description provides no additional meaning beyond the 100% schema-covered parameters. Baseline 3 is appropriate because the schema already documents all parameters adequately.

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?

Clearly states 'Create a new ABAP function group' and explains its role as container for function modules. Distinguishes from siblings like UpdateFunctionGroup and DeleteFunctionGroup via the verb 'Create'.

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?

No explicit when-to-use or when-not-to-use compared to other Create* tools. Usage is implied by the tool name, but no guidance on prerequisites (e.g., transport request required for transportable packages) or alternatives.

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

CreateFunctionIncludeB

Operation: Create. Subject: FunctionInclude. Will be useful for creating function group include. Create a new ABAP include within an existing function group. Creates the include in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoOptional description for the include
include_nameYesInclude name (e.g., LZTEST_FG_001F01).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
function_group_nameYesParent function group name (e.g., ZTEST_FG_001)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It mentions 'initial state' but does not detail side effects, required permissions, prerequisites (e.g., function group must exist), or what happens on failure.

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 relatively concise with three sentences, but the first sentence ('Operation: Create. Subject: FunctionInclude.') is redundant and could be merged with the rest.

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

Completeness3/5

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

While the input schema is well-covered, the description lacks context about prerequisites (e.g., function group must exist), the meaning of 'initial state', and expected return values. It is adequate but leaves gaps.

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 100%, so baseline is 3. The description adds no new information about parameters beyond the schema's existing descriptions.

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 clearly states the verb 'create' and the resource 'ABAP include within an existing function group', differentiating it from sibling tools like CreateFunctionGroup and CreateFunctionModule.

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 description implies usage for creating includes in function groups but lacks explicit guidance on when not to use or alternatives. No exclusions or comparisons are provided.

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

CreateFunctionModuleC

Operation: Create. Subject: FunctionModule. Will be useful for creating function module. Create a new ABAP function module within an existing function group. Creates the function module in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoOptional description for the function module
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
function_group_nameYesParent function group name (e.g., ZTEST_FG_001)
function_module_nameYesFunction module name (e.g., Z_TEST_FUNCTION_001). Must follow SAP naming conventions (start with Z or Y, max 30 chars).

TDQS

C2.7/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavior. It mentions 'creates the function module in initial state', implying it is not active, but omits side effects, error conditions, idempotency, or required authorizations. Significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains redundant phrasing: 'Operation: Create. Subject: FunctionModule. Will be useful for creating function module.' These are unnecessary and add no value. The later sentence is more direct, but overall the description is not well-structured or concise.

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 the complexity (siblings, no output schema, 4 parameters including a transport requirement), the description is insufficient. It does not mention the transport request requirement, the need for an existing function group, or the implications of 'initial state'. The high schema coverage partially compensates, but complete context is lacking.

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?

The input schema has 100% description coverage, so the baseline is 3. The tool description adds no additional parameter meaning beyond the schema's existing descriptions. It neither enhances nor detracts, meeting the baseline.

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 'Create a new ABAP function module within an existing function group', which clearly specifies the verb, resource, and context. However, it does not differentiate from sibling tools like CreateFunctionGroup or UpdateFunctionModule, which are distinct but not explicitly contrasted.

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?

No guidance on when to use this tool versus alternatives. It does not mention that the function group must exist, nor does it distinguish from ActivateFunctionModule or UpdateFunctionModule. The description lacks any 'when-not-to-use' or prerequisite information.

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

CreateInterfaceB

Operation: Create. Subject: Interface. Will be useful for creating interface. Create a new ABAP interface in SAP system. Creates the interface object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoInterface description. If not provided, interface_name will be used.
package_nameYesPackage name (e.g., ZOK_LAB, $TMP for local objects)
interface_nameYesInterface name (e.g., ZIF_TEST_INTERFACE_001). Must follow SAP naming conventions (start with Z or Y).
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It mentions 'initial state' but does not explain permissions, side effects, or whether existing interfaces are overwritten. However, it does confirm the creation action, which is minimal but accurate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Create. Subject: Interface.' and 'Will be useful for creating interface' add no value. Could be condensed to one or two sentences.

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?

No output schema is provided, so the description should clarify return values or post-conditions. It only mentions 'initial state' but lacks details on what that means or what the tool returns. Incomplete for a creation tool with multiple parameters.

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 the schema fully documents parameters. The description adds no new meaning beyond the schema; it only repeats that it creates an interface, which is already implied. Baseline score 3 applies.

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 clearly states 'Create a new ABAP interface in SAP system' and 'Creates the interface object in initial state', specifying the verb (create) and resource (interface), distinguishing it from sibling creation tools for other ABAP objects.

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?

No guidance on when to use this tool versus alternatives like CreateClass or CreateStructure. The phrase 'Will be useful for creating interface' is tautological and does not help the agent decide context.

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

CreateMessageClassA

Operation: Create. Subject: Message Class (MSAG). Create a new ABAP message class (T100) shell. Individual messages are added afterwards with CreateMessageClassMessage. Message classes are not activated.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNo(optional) Short description. If not provided, message_class_name is used.
package_nameYesPackage name (e.g., ZMY_PKG, $TMP for local objects).
master_languageNo(optional) Master/original language (e.g. "EN", "DE"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNo(optional) Transport request number (e.g., E19K905635). Required for transportable packages.
message_class_nameYesMessage class name (e.g., ZMY_MSGS). Must follow SAP naming conventions.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool creates a 'shell' (meaning incomplete object), that messages are added separately, and that activation is not performed. This is useful behavioral context beyond a simple 'create'.

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 extremely concise at two sentences, with the key action front-loaded. Every sentence provides essential information without unnecessary words.

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?

Given the tool has 5 parameters, no output schema, and no annotations, the description covers the core purpose, the workflow (add messages later), and a key constraint (not activated). It is fairly complete for a creation tool, though it could mention the return value or confirmation.

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 baseline is 3. The description does not add significant meaning beyond what the schema provides; it restates the required parameters but does not elaborate on optional ones like transport_request or master_language.

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 clearly states 'Create a new ABAP message class (T100) shell.' It specifies the verb (Create) and resource (Message Class). It distinguishes from siblings like CreateMessageClassMessage by mentioning that individual messages are added afterwards.

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 provides explicit guidance: 'Individual messages are added afterwards with CreateMessageClassMessage.' and 'Message classes are not activated.' This helps the agent understand the workflow and when to use this tool vs. alternatives. However, it does not explicitly state when not to use it, but the context is clear.

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

CreateMessageClassMessageA

Operation: Create. Subject: a single message inside a Message Class (MSAG). Add a message (number + text) to an existing ABAP message class (T100). The parent class must exist first (CreateMessageClass).

ParametersJSON Schema
NameRequiredDescriptionDefault
msgnoYesMessage number (e.g., "001").
msgtextYesMessage text. May contain placeholders &1 &2 &3 &4 (or &).
descriptionNo(optional) Long description for the message.
self_explanatoryNo(optional) Mark the message as self-explanatory (no long text needed). Default: false.
transport_requestNo(optional) Transport request number. Required for transportable objects.
message_class_nameYesParent message class name (e.g., ZMY_MSGS).

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It states it is a Create operation (adds a message) and mentions the number and text fields. However, it does not disclose potential side effects (e.g., if the message number already exists), or any authorization requirements beyond the schema. The description provides basic behavioral context but lacks depth.

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 highly concise, consisting of two sentences. The first sentence front-loads the key information (operation and subject), and the second adds the crucial prerequisite. No unnecessary words or redundancy.

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?

Given the tool's simplicity (create a message with number, text, and optional fields) and no output schema, the description provides sufficient context. It covers the purpose and prerequisite. It could potentially mention uniqueness of message numbers, but overall it is complete enough for an AI agent to use correctly.

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 the baseline is 3. The description adds some context about the parent class and the message number and text, and mentions placeholders in msgtext. However, it does not significantly enhance understanding beyond what the schema already provides. The prerequisite note is helpful but not parameter-specific.

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 clearly states the operation (Create), the subject (a single message inside a Message Class), and what it does (add a message with number and text to an existing ABAP message class). It also distinguishes from siblings like CreateMessageClass (which creates the class itself) and UpdateMessageClassMessage (which updates).

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 explicitly states that the parent class must exist first, referencing CreateMessageClass. This provides clear guidance on when to use this tool (after creating the parent) and implies not to use it if the parent does not exist. No explicit alternatives or when-not-to-use, but sufficient for the context.

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

CreateMetadataExtensionB

Operation: Create. Subject: MetadataExtension. Will be useful for creating metadata extension. Create a new ABAP Metadata Extension (DDLX) in SAP system. Creates the metadata extension object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMetadata Extension name
activateNoActivate after creation. Default: true
descriptionNoDescription
package_nameYesPackage name
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must bear full burden. It mentions 'initial state' but does not specify activation behavior (though an 'activate' parameter exists), permissions, side effects, or what 'initial state' entails. Incomplete for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, but the first two ('Operation: Create. Subject: MetadataExtension.') are redundant and tautologically restate the name. The third sentence is the only substantive one. Could be more concise without the fluff.

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 the tool complexity (6 params, creation with activation, transport) and lack of output schema, the description fails to provide adequate context about what happens after creation, required transport, or activation defaults. Missing key behavioral details.

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 baseline is 3. The description adds no additional meaning to the parameters; it does not reference or explain any of the six parameters beyond the schema descriptions.

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 clearly states the action (create) and the resource (ABAP Metadata Extension, with acronym DDLX), making it specific and distinguishable from sibling tools. The additional phrase 'in initial state' adds precision.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., other Create* tools). No prerequisites, exclusions, or context provided beyond the general creation intent.

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

CreatePackageC

Create a new ABAP package in SAP system. Packages are containers for development objects and are essential for organizing code.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoPackage description. If not provided, package_name will be used.
package_nameYesPackage name (e.g., ZOK_TEST_0002). Must follow SAP naming conventions (start with Z or Y for customer namespace).
package_typeNoPackage type: 'development' (default) or 'structure'development
super_packageYesParent package name (e.g., ZOK_PACKAGE). Required for structure packages.
record_changesNoEnable change recording for the package. Required for transportable packages. Default: false.
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_layerNoTransport layer (e.g., ZE19). Required for transportable packages.
transport_requestNoTransport request number (e.g., E19K905635). Required if package is transportable.
software_componentNoSoftware component (e.g., HOME, ZLOCAL). If not provided, SAP will set a default (typically ZLOCAL for local packages).
application_componentNoApplication component (optional, e.g., BC-ABA)

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It only says "Create" which implies a write operation, but does not discuss side effects, required authorizations, system changes, or any risks. The description is insufficient for an agent to understand the impact of invoking this tool.

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 concise with two short sentences. The first sentence immediately states the core purpose. The second sentence adds useful context but could be considered non-essential. Overall, it is efficient and front-loaded.

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 the complexity (10 parameters, 2 required, no output schema), the description is quite sparse. It does not explain what happens after creation (e.g., return value, confirmation), nor does it provide usage instructions or conditions. The tool's purpose is clear, but the description lacks depth needed for proper agent decision-making.

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 100%, so baseline is 3. The description does not add any information about parameters beyond what the schema already provides. It neither clarifies parameter usage nor provides additional context.

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 clearly states "Create a new ABAP package" which identifies the verb and resource. It also explains that packages are containers for development objects, providing context. However, it does not explicitly differentiate from sibling tools like CheckPackage or UpdatePackage, so it misses the opportunity to clarify when to use Create over others.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., UpdatePackage, CheckPackage). There is no mention of prerequisites, when-not to use, or which scenarios are appropriate. The description is purely definitional.

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

CreateServiceBindingC

Operation: Create. Subject: ServiceBinding. Will be useful for creating service binding. Create a new ABAP service binding in SAP system. Creates the service binding object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate service binding after create. Default: true.
descriptionNoOptional description. Defaults to service_binding_name when omitted.
package_nameYesABAP package name.
service_nameNoPublished service name. Default: service_binding_name if omitted.
binding_variantNoService binding variant. ODATA_V4_UI = OData V4 for Fiori Elements, ODATA_V4_WEB_API = OData V4 Web API, ODATA_V2_UI = OData V2 for Fiori Elements, ODATA_V2_WEB_API = OData V2 Web API.ODATA_V4_UI
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
response_formatNoxml
service_versionNoPublished service version. Default: 0001.
transport_requestNoOptional transport request for transport checks.
service_binding_nameYesService binding name.
service_definition_nameYesReferenced service definition name.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Creates the service binding object in initial state.' Lacks details on activation, transport requirements, side effects, error handling, or permissions. The activate parameter suggests creation may not immediately activate, but that nuance is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Create. Subject: ServiceBinding.' repeats the tool name/title. Could be more concise and front-loaded.

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 the tool has 11 parameters and no output schema, the description is minimal and does not cover return values, activation behavior, or parameter dependencies. Incomplete for the complexity.

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 91%, so baseline is 3. The description adds no parameter meaning beyond the schema; it does not explain any parameters or their interactions.

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 clearly states it creates a new ABAP service binding, using 'Create' verb and 'ServiceBinding' resource. However, it does not differentiate from sibling tools like CreateServiceDefinition, and includes redundant phrasing ('Will be useful for creating service binding').

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?

No guidance on when to use this tool versus alternatives (e.g., UpdateServiceBinding or ActivateServiceBinding). No prerequisites or context for selection among the many create tools.

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

CreateServiceDefinitionC

Operation: Create. Subject: ServiceDefinition. Will be useful for creating service definition. Create a new ABAP service definition in SAP system. Creates the service definition object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate service definition after creation. Default: true.
descriptionNoService definition description. If not provided, service_definition_name will be used.
source_codeNoService definition source code (optional). If not provided, a minimal template will be created.
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
service_definition_nameYesService definition name (e.g., ZSD_MY_SERVICE). Must follow SAP naming conventions (start with Z or Y).

TDQS

C2.7/5.0
Behavior2/5

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

Without annotations, the description carries full burden. It states 'Creates the service definition object in initial state,' but does not disclose side effects (e.g., whether activation is needed, permissions required, or behavior if the object already exists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is repetitive, e.g., 'Operation: Create. Subject: ServiceDefinition.' and 'Will be useful for creating service definition.' These phrases do not earn their place. A single concise sentence would be more effective.

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?

With no output schema and complex SAP environment, the description should explain the concept of a service definition, what 'initial state' means, and the typical next steps (e.g., activation). It lacks sufficient context for an AI agent to understand the tool's role in a workflow.

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% with all parameters described. The description adds no additional parameter semantics beyond what the input schema already provides, so a baseline score of 3 is appropriate.

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 clearly states 'Create a new ABAP service definition in SAP system.' which identifies the verb and resource. However, it contains redundant phrases like 'Operation: Create. Subject: ServiceDefinition. Will be useful for creating service definition.' that add no new information and could be streamlined.

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?

No guidance is provided on when to use this tool versus alternatives such as CreateServiceBinding or ActivateServiceDefinition. The description does not mention prerequisites, typical workflow, or scenarios where this tool is appropriate.

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

CreateStructureC

Operation: Create. Subject: Structure. Will be useful for creating structure. Create a new ABAP structure in SAP system. Creates the structure object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesArray of structure fields
activateNoActivate structure after creation. Default: true. Set to false for batch operations (activate multiple objects later).
includesNoInclude other structures in this structure
descriptionNoStructure description. If not provided, structure_name will be used.
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
structure_nameYesStructure name (e.g., ZZ_S_TEST_001). Must follow SAP naming conventions.
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must cover behavioral aspects. It mentions 'initial state' but does not explain activation behavior (tied to 'activate' parameter), transport request impact, or any side effects. For a creation tool with no annotations, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short but contains redundancy ('Operation: Create. Subject: Structure.' is repetitive with 'creates a new ABAP structure'). Could be condensed into one clear sentence.

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 8 parameters and no output schema, the description is too minimal. It does not explain return values, error conditions, or prerequisites. Missing guidance on activation, transport, and naming conventions, which are critical for correct usage.

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 100%, so baseline is 3. The description adds no extra meaning beyond the schema parameter descriptions. It does not clarify parameter usage or constraints.

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?

Clearly states it creates an ABAP structure in SAP. Verb and resource are explicit, distinguishing from sibling tools like CreateTable or CreateClass. However, the phrase 'Will be useful for creating structure' is vague and slightly redundant.

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?

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, such as requiring a package or transport request for transportable objects. Lacks any comparison to sibling tools like CreateTable.

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

CreateTableC

Operation: Create. Subject: Table. Will be useful for creating table. Create a new ABAP table in SAP system. Creates the table object in initial state.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name (e.g., ZZ_TEST_TABLE_001). Must follow SAP naming conventions.
descriptionNoTable description for validation and creation.
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
master_languageNoOptional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must provide behavioral context, but it only adds 'Creates the table object in initial state.' This is minimal and does not disclose side effects, permissions, or state changes beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes redundant phrasing ('Operation: Create. Subject: Table.'), making it less concise. It could be more front-loaded with the core purpose.

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 5 parameters and no output schema, the description is incomplete. It does not explain what 'initial state' means, prerequisites (e.g., package existence), or return values, leaving important gaps for an agent.

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 the schema already documents all parameters. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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 clearly states the tool creates a new ABAP table ('Create a new ABAP table in SAP system'), but it does not differentiate it from sibling tools like CreateStructure or CreateClass, and includes redundant phrases like 'Operation: Create. Subject: Table.'

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?

No guidance on when to use this tool versus alternatives (e.g., CreateStructure, CreateDataElement). The description only vaguely says 'Will be useful for creating table', but offers no exclusions or context.

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

CreateTransportB

Create a new ABAP transport request in SAP system for development objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoTransport owner (optional, defaults to current user)
descriptionYesTransport request description (mandatory)
target_systemNoTarget system for transport (optional, e.g., 'PRD', 'QAS'). If not provided or empty, uses 'LOCAL'
transport_typeNoTransport type: 'workbench' (cross-client) or 'customizing' (client-specific)workbench

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only states the creation action but omits side effects, authorization requirements, rate limits, and return value (e.g., transport number). Does not explain what happens on success or failure.

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?

Single sentence, no redundancy. Every word is informative and front-loaded. Efficiently conveys the core purpose.

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

Completeness3/5

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

Adequate for a simple creation tool with 4 parameters and no output schema. Missing return value description but schema covers input. Basic completeness with room for improvement (e.g., what to expect in response).

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?

Input schema has 100% coverage with descriptions for all parameters. Description does not add significant meaning beyond the schema (e.g., 'for development objects' adds minimal context). Baseline 3 due to high schema coverage.

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?

Description clearly states the action (create) and resource (ABAP transport request) with context (in SAP system for development objects). It differentiates from sibling tools that create other ABAP artifacts (e.g., CreateTable, CreateClass) or manage transports (GetTransport, ListTransports).

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?

No guidance on when to use this tool versus alternatives. Does not specify prerequisites, such as requiring an existing package, or conditions under which creation would fail. No mention of when not to use it.

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

CreateUnitTestA

Start an ABAP Unit test run for provided class test definitions. Returns run_id for status/result queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
testsYesList of container/test class pairs to execute.
titleNoOptional title for the ABAP Unit run.
contextNoOptional context string shown in SAP tools.
durationNo
risk_levelNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosure. It mentions that the tool starts a test run and returns a run_id for later queries, implying asynchronous behavior. However, it does not disclose side effects (e.g., whether test execution modifies state), required permissions, or behavior on errors. More context would improve transparency.

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 a single sentence that conveys the essential purpose and return behavior. No unnecessary words or redundancy. It is appropriately sized for a tool with moderate complexity.

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

Completeness3/5

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

Given the tool has 6 parameters (including nested objects) and no output schema, the description is incomplete. It does not explain the optional parameters (scope, duration, risk_level) nor the structure of the return value beyond 'run_id'. While the core purpose is clear, the description lacks detail for full correct usage.

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 50% (only 'tests', 'test_class', 'container_class' have descriptions). The tool description adds no parameter details beyond 'provided class test definitions'. It does not explain scope, duration, risk_level, title, or context parameters. With medium coverage, the description provides baseline value but does not compensate for undocumented parameters.

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 clearly states the action ('Start an ABAP Unit test run'), the resource ('provided class test definitions'), and the return value ('Returns run_id for status/result queries'). It distinguishes from sibling tools like RunUnitTest (which might execute immediately) and GetUnitTest (which retrieves existing tests).

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 description implies usage for starting a test run for specific test definitions, but provides no explicit guidance on when to choose CreateUnitTest over alternatives like RunUnitTest or GetUnitTest. There is no discussion of prerequisites, exclusions, or context-dependent choices.

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

DeleteBehaviorDefinitionA

Delete an ABAP behavior definition from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
behavior_definition_nameYesBehaviorDefinition name (e.g., Z_MY_BEHAVIORDEFINITION).

TDQS

A3.7/5.0
Behavior3/5

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

The description mentions a deletion check before actual deletion, which adds transparency, but lacks details on authentication requirements, side effects, reversibility, or error conditions. No annotations are provided, so the description carries full burden.

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 two sentences, front-loaded with the core action, and contains no unnecessary words. Every sentence adds value.

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

Completeness3/5

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

The description covers the deletion check and transport handling, but does not mention success/failure output, error handling, or what happens after deletion. Given no output schema, some description of expected return would improve completeness.

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?

Parameter descriptions are fully covered in the schema (100%). The description adds that transport request is optional for $TMP objects, reinforcing schema info, but does not add significant new meaning beyond that.

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 clearly states the action (Delete), the resource (ABAP behavior definition), and adds context (deletion check, transport request handling). It distinguishes from siblings like DeleteBehaviorImplementation.

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 description notes optional transport for $TMP objects, but does not explicitly state when to use this tool versus other delete tools or provide prerequisites or exclusion criteria.

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

DeleteBehaviorImplementationA

Delete an ABAP behavior implementation from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
behavior_implementation_nameYesBehaviorImplementation name (e.g., Z_MY_BEHAVIORIMPLEMENTATION).

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that a deletion check precedes the actual deletion and notes transport request handling, but lacks information on authorization needs, side effects (e.g., cascading deletes), or error states.

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 consists of two concise sentences that efficiently convey purpose and key details without unnecessary words or repetition.

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

Completeness3/5

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

The description covers the main purpose and a behavioral trait (deletion check) but omits return values, prerequisites, and handling of errors. Given the lack of an output schema and annotations, the description could be more complete regarding success/failure indicators.

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% with both parameters already described. The description reiterates the transport request optionality for $TMP objects but adds no new semantic information beyond the schema.

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 clearly states the tool's purpose: deleting an ABAP behavior implementation from the SAP system. It uses a specific verb (Delete) and resource (BehaviorImplementation), distinguishing it from sibling tools like DeleteBehaviorDefinition.

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 description mentions a deletion check and transport request optionality for $TMP objects, implying when a transport is needed. However, it does not explicitly contrast with alternatives or provide when-not-to-use guidance, leaving usage context somewhat implicit.

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

DeleteCdsUnitTestB

Delete a CDS unit test class (global class).

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesGlobal test class name (e.g., ZCL_CDS_TEST).
transport_requestNoTransport request number (required for transportable packages).

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action 'Delete' without specifying permanence, required permissions, cascading effects, or any constraints. This is insufficient for a destructive operation.

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 a single, concise sentence with no redundant words. It efficiently conveys the core action without unnecessary elaboration.

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

Completeness3/5

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

For a simple delete operation with no output schema, the description is minimally adequate. However, it lacks context about when the transport_request is required, what constitutes a 'global class', and any potential side effects or prerequisites.

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?

The input schema provides descriptions for both parameters (class_name and transport_request), achieving 100% coverage. The description adds no additional parameter context beyond the schema, so the baseline score of 3 is appropriate.

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 clearly states the verb 'Delete' and resource 'CDS unit test class (global class)', making the purpose specific. However, it doesn't explicitly differentiate from similar sibling tools like 'DeleteUnitTest' or 'DeleteClass', which slightly reduces clarity.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., DeleteUnitTest, DeleteClass). There are no prerequisites, context, or exclusions mentioned, leaving the agent without decision-support information.

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

DeleteClassA

Delete an ABAP class from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesClass name (e.g., ZCL_MY_CLASS).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description partially discloses behavior by mentioning a deletion check before actual deletion. However, it omits important details such as permissions required, side effects (e.g., cascading deletes), and whether the operation is reversible. The inclusion of the deletion check is positive but insufficient for full transparency.

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 extremely concise at two sentences, with the primary purpose front-loaded. Every sentence adds value without redundancy or unnecessary detail.

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

Completeness3/5

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

Given the simplicity of the tool (2 parameters, no output schema), the description adequately covers the function but lacks details on return value or post-conditions. It is sufficient but not comprehensive for a delete operation that may have cascading implications.

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% with clear parameter descriptions. The tool description adds minimal new meaning beyond the schema (e.g., 'Includes deletion check' is not parameter-specific). Thus, the description does not significantly enhance parameter understanding beyond what the schema already provides.

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 clearly states the action (delete), the resource (ABAP class), and provides additional context (deletion check, transport request optionality). It effectively distinguishes from sibling delete tools targeting different resources.

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 description does not provide explicit guidance on when to use this tool versus alternatives. It mentions transport request optionality, but this is parameter-specific rather than usage context. No when-not or alternative tool references are given.

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

DeleteDataElementA

Delete an ABAP data element from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_element_nameYesData element name (e.g., Z_MY_DATA_ELEMENT).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.5/5.0
Behavior3/5

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

The description adds some behavioral context beyond annotations (none provided) by noting a deletion check before actual deletion. However, it lacks details on what the check entails, prerequisites, permissions, side effects, or error handling, leaving gaps for the agent.

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 two sentences, front-loaded with the core action, and every sentence adds value without wasted words. It is efficient and easy to parse.

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

Completeness3/5

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

For a simple delete tool with no output schema, the description covers the basic function and a behavioral check. However, it omits important context such as consequences, success/failure indicators, and prerequisites, limiting completeness.

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%, and the description does not add new parameter information. It merely restates the optionality of transport_request for $TMP objects, which is already in the schema. Thus, no additional semantic value beyond the schema.

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 clearly states the tool deletes an ABAP data element, which is the specific resource, and mentions a deletion check, distinguishing it from other delete operations. The verb 'Delete' and resource 'data element' are explicit, and the name reinforces this.

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?

No guidance is provided on when to use this tool versus alternatives like DeleteClass or DeleteDomain. The only usage note is that transport request is optional for $TMP objects, but no selection criteria or context for choosing this tool over other delete tools.

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

DeleteDdlA

Delete a DDL source from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
ddl_nameYesDDL source name (e.g., Z_MY_VIEW).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It mentions a deletion check and transport request constraints, but does not cover permissions, error conditions, reversibility, or confirmation steps. This is insufficient for a 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?

The description is very concise, using only two sentences to convey the main action and key behavioral notes. It is front-loaded with the primary purpose and has no redundant information.

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

Completeness3/5

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

For a simple two-parameter tool without an output schema, the description covers the basic purpose and one behavioral aspect. However, it omits return values, error handling, prerequisites (e.g., activation status), and success confirmation, leaving gaps for the agent.

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 baseline is 3. The description adds value by clarifying that transport_request is required for transportable objects and optional for local $TMP objects, which is not explicitly stated in the schema descriptions.

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?

Description clearly states the verb 'Delete' and the resource 'DDL source', and it is easily distinguishable from sibling tools which delete other object types like behavior definitions or classes.

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?

No guidance on when to use this tool versus checking or creating DDL sources, or versus other Delete* tools. The description only mentions an internal deletion check but does not compare or contrast with alternatives.

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

DeleteDomainA

Delete an ABAP domain from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYesDomain name (e.g., Z_MY_DOMAIN).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions a deletion check but lacks details on permanence, authorization requirements, or side effects.

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 two concise sentences with front-loaded action and no wasted words. It efficiently conveys the tool's purpose and key nuance.

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

Completeness3/5

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

Given no output schema and no annotations, the description explains the deletion check and transport handling but lacks detail on return values, confirmation, or consequences of deletion.

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?

The input schema fully documents both parameters (100% coverage). The description adds value by clarifying that transport_request is optional for $TMP objects, which is beyond the schema.

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 clearly states the verb 'Delete' and resource 'ABAP domain', distinguishing it from sibling tools like DeleteDataElement. It also mentions a deletion check and transport request handling, adding specificity.

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 description does not explicitly state when to use this tool vs alternatives. It implies usage for deleting domains but provides no exclusions or guidance on when not to use it.

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

DeleteFunctionGroupA

Delete an ABAP function group from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
function_group_nameYesFunctionGroup name (e.g., Z_MY_FUNCTIONGROUP).

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description must disclose behavioral traits. It mentions a deletion check before actual deletion, which adds transparency, but it does not describe potential side effects, destructiveness, or required authorizations. The transport request optionality is helpful but incomplete for a mutation operation.

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?

Two concise sentences, front-loaded with the primary purpose, and then a supplementary detail. No wasted words; every sentence adds value.

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

Completeness3/5

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

The description is adequate for a simple delete tool but lacks information about return values, error handling, or prerequisites (e.g., the object must exist, user must have authorization). Given the number of sibling delete tools, more contextual cues would help the agent decide when to invoke this specific 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 description coverage is 100%, so the schema already documents both parameters. The description adds context about transport request optionality for $TMP objects, which provides some additional meaning beyond the schema, but it does not elaborate on function_group_name beyond its name.

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 clearly states the action ('Delete'), the specific resource ('ABAP function group'), and includes a notable detail ('Includes deletion check before actual deletion'), which distinguishes it from other delete tools for different resources.

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 description provides some usage guidance by mentioning that the transport request is optional for $TMP objects, but it does not explicitly state when to use this tool versus alternatives like DeleteFunctionModule, nor does it give conditions or prerequisites (e.g., object existence, permissions).

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

DeleteFunctionIncludeA

Delete an ABAP function group include from the SAP system. Note: function module includes must be deleted via the Function Builder; the backend rejects such deletions. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_nameYesInclude name (e.g., LZ_MY_FGF01).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
function_group_nameYesFunction group name containing the include (e.g., Z_MY_FG).

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It warns that the backend rejects function module includes and mentions transport request behavior. However, it does not describe whether the deletion is permanent, the impact on dependent objects, or any authorization requirements.

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 only two sentences, with no wasted words. The key action and the most important caveat are front-loaded, making it quick to parse.

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?

Given no output schema and moderate complexity (deletion with a special case), the description covers the essential purpose, a critical limitation, and optional transport usage. It could add information about reversibility or authorization, but overall it is sufficient for an agent to understand when and why to use this tool.

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 schema already documents all parameters. The description adds value by contextualizing the transport request with 'optional for $TMP objects' and the note about function module includes, which clarifies when deletion is not possible.

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 clearly states the action (delete), the resource (ABAP function group include), and the system context (SAP system). It distinguishes from siblings like DeleteFunctionGroup and DeleteFunctionModule by noting that function module includes require a different tool (Function Builder).

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 provides when to use (deleting function group includes) and a clear exclusion (function module includes must be deleted via Function Builder). It also mentions transport request optionality for $TMP objects but does not explicitly compare to other sibling deletion tools or state prerequisites.

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

DeleteFunctionModuleB

Delete an ABAP function module from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
function_group_nameYesFunctionGroup name containing the function module (e.g., Z_MY_FUNCTIONGROUP).
function_module_nameYesFunctionModule name (e.g., Z_MY_FUNCTIONMODULE).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must stand alone. Mentions a deletion check before actual deletion but lacks details on side effects (e.g., dependencies, irreversibility), error handling, or return behavior. For a destructive operation, this is insufficient.

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?

Two concise sentences with no extraneous information. Front-loaded with the core purpose.

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?

Missing important context for a deletion tool: no mention of prerequisites (e.g., object must exist), potential impact on dependent objects, or success/failure indicators. No output schema compounds the lack of completeness.

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 already has 100% description coverage for all parameters. The description text adds minimal extra context beyond what the schema provides (e.g., 'optional for $TMP objects' paraphrases the schema), so baseline 3 is appropriate.

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?

Clearly states the action (delete) and the resource (ABAP function module). While it doesn't explicitly differentiate from other delete tools, the resource is distinct.

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?

Mentions transport request condition but provides no guidance on when to use this tool over siblings like DeleteFunctionGroup or DeleteClass. No prerequisites or alternative comparisons.

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

DeleteInterfaceA

Delete an ABAP interface from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_nameYesInterface name (e.g., Z_MY_INTERFACE).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.8/5.0
Behavior3/5

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

Discloses that a deletion check is performed before actual deletion, adding behavioral context beyond the name. However, with no annotations, it does not mention irreversibility, authorization needs, or side effects.

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?

Two concise sentences with no extraneous text. Front-loaded with the main action and immediately clarifies a key behavioral aspect.

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?

Covers the main aspects: deletion check and transport request optionality. Missing output description but acceptable for a simple deletion tool without an output schema.

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%, and the description repeats schema info about transport request optionality without adding new semantic meaning beyond the schema itself.

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?

Clearly states 'Delete an ABAP interface from the SAP system' specifying the action and resource. Distinguishes from sibling delete tools by naming the specific object type and includes mention of a deletion check.

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?

Mentions transport request optionality for $TMP objects, implying usage context but does not explicitly state when to use this tool versus other delete tools or provide when-not-to-use conditions.

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

DeleteLocalDefinitionsB

Delete local definitions from an ABAP class by clearing the definitions include. Manages lock, update, unlock, and optional activation.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
transport_requestNoTransport request number.
activate_on_deleteNoActivate parent class after deleting. Default: false

TDQS

B3.3/5.0
Behavior3/5

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

In the absence of annotations, the description reveals that the tool manages lock, update, unlock, and optional activation, indicating a transactional operation. However, it does not disclose side effects, error handling, or reversibility, which are important for a delete operation.

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 a single concise sentence that front-loads the core action. It includes relevant procedural details but could be slightly more structured, though it is not overly verbose.

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 the high number of sibling tools and no output schema, the description lacks completeness. It does not differentiate from similar tools or explain return values, making it harder for an agent to select correctly.

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?

The input schema already covers all three parameters with descriptions, so the baseline is 3. The description adds only marginal value by hinting at the activate_on_delete parameter ('optional activation'), but does not elaborate on how parameters relate to the operation.

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 clearly states 'Delete local definitions from an ABAP class' with the specific verb 'Delete' and resource 'local definitions'. It also explicitly mentions clearing the definitions include, which differentiates it from sibling tools like DeleteLocalMacros or DeleteLocalTestClass.

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 description provides no guidance on when to use this tool versus alternatives such as UpdateLocalDefinitions or other delete tools. It lacks context about prerequisites or scenarios where it should be avoided.

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

DeleteLocalMacrosA

Delete local macros from an ABAP class by clearing the macros include. Manages lock, update, unlock, and optional activation. Note: Macros are supported in older ABAP versions but not in newer ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
transport_requestNoTransport request number.
activate_on_deleteNoActivate parent class after deleting. Default: false

TDQS

A4.4/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. It discloses that the tool manages lock, update, unlock, and optional activation, giving insight into side effects. The version note also indicates potential incompatibility on newer systems.

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 very concise: two sentences that first state the purpose, then the process and a key note. No redundant information; every sentence earns its place.

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?

Given the tool's complexity (deletion with locking and activation), the description covers the main steps. It lacks mention of return values, prerequisites, or error conditions, but the schema covers parameters well. The version note adds important context.

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?

All parameters are described in the schema (100% coverage), so baseline is 3. The description adds value by linking 'optional activation' to the activate_on_delete parameter, clarifying its role in the behavior.

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 clearly states the tool deletes local macros from an ABAP class by clearing the macros include. It distinguishes from sibling delete tools (e.g., DeleteLocalDefinitions, DeleteLocalTestClass) by specifying the resource (macros).

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 note about version support ('Macros are supported in older ABAP versions but not in newer ones') provides context for when to use the tool, implying it should be used on classes that still have macros. It does not explicitly compare with alternatives, but the purpose is clear.

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

DeleteLocalTestClassA

Delete a local test class from an ABAP class by clearing the testclasses include. Manages lock, update, unlock, and optional activation of parent class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
transport_requestNoTransport request number (required for transportable objects).
activate_on_deleteNoActivate parent class after deleting test class. Default: false

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description must fully disclose behavioral traits. It mentions managing lock, update, unlock, and optional activation, which provides some transparency. However, it does not state whether the operation is destructive, if it requires specific authorizations, or what happens if the parent class is not transportable.

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 a single, focused sentence that immediately states the primary purpose and then lists key actions. It is compact and front-loaded, though it could be slightly more structured (e.g., bullet points for steps).

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 deletion tool with three parameters and no output schema, the description covers the main process and behavior. It lacks information about return values, error handling, or prerequisites (e.g., transport request requirements), but given the simplicity of the tool, it is reasonably complete.

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?

The schema covers all three parameters with descriptions, so the description adds minimal additional meaning. It confirms the role of activate_on_delete but does not elaborate on syntax or constraints beyond what the schema already provides.

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 clearly specifies the action (delete), the resource (local test class), and the method (clearing the testclasses include). It also mentions the steps involved (lock, update, unlock, optional activation), effectively distinguishing it from sibling tools like DeleteClass or DeleteLocalDefinitions.

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 description implies usage for deleting a local test class but does not explicitly state when to use this tool versus alternatives like DeleteClass or UpdateLocalTestClass. No when-not or alternative suggestions are provided, leaving the agent to infer from the name alone.

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

DeleteLocalTypesA

Delete local types from an ABAP class by clearing the implementations include. Manages lock, update, unlock, and optional activation.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
transport_requestNoTransport request number.
activate_on_deleteNoActivate parent class after deleting. Default: false

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses that it manages lock, update, unlock, and optional activation, which are key behavioral traits beyond what annotations (none provided) or schema offer. However, it does not mention side effects or error handling.

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?

Two sentences, no redundancy. The first sentence states the core action, the second adds behavioral details. Very efficient.

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 delete tool with no output schema, it covers the action and lifecycle. However, prerequisites (e.g., class existence) and result behavior are omitted, which could help the agent.

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?

All parameters are fully described in the schema (100% coverage), so the description adds minimal extra meaning beyond mentioning that activation is optional.

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 clearly states it deletes local types from an ABAP class by clearing the implementations include, which is specific and distinct from other sibling tools like DeleteClass or DeleteLocalDefinitions.

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?

No guidance is provided on when to use this tool versus alternatives such as DeleteClass or DeleteLocalDefinitions. The description lacks context for choosing among the many sibling tools.

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

DeleteMessageClassA

Delete an ABAP message class (MSAG) and all of its messages from the SAP system. Includes a deletion check before the actual deletion. Transport request required for transportable objects, optional for local ($TMP).

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects, optional for local ($TMP).
message_class_nameYesMessage class name (e.g., ZMY_MSGS).

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It discloses one behavioral trait ('includes a deletion check before the actual deletion'), but lacks details on irreversibility, side effects on dependent objects, authorization requirements, or return behavior.

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 two sentences: first sentence states purpose and scope, second adds behavioral and contextual info. No wasted words; every sentence provides value.

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

Completeness3/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 multiple siblings, the description covers the core purpose and a safety check, but omits details like success/failure output, authorization needs, or constraints on deletion (e.g., if messages are referenced elsewhere). It is adequate but not comprehensive.

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 100%, so baseline is 3. The description does not add new meaning beyond the schema; it reiterates the transport requirement already present in the schema description.

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 clearly states the verb 'delete', the resource 'ABAP message class (MSAG)', and the scope 'all of its messages'. It distinguishes from siblings like DeleteMessageClassMessage which deletes a single message, and other delete tools for different object types.

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 description provides guidance on when a transport request is required (for transportable objects) vs optional (local $TMP), but does not explicitly state when to use this tool vs alternatives like DeleteMessageClassMessage or when not to use it.

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

DeleteMessageClassMessageA

Operation: Delete. Subject: a single message inside a Message Class (MSAG). Remove one message (by number) from an ABAP message class (T100), keeping the class and its other messages. Transport request required for transportable objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
msgnoYesMessage number to delete (e.g., "001").
transport_requestNoTransport request number. Required for transportable objects, optional for local ($TMP).
message_class_nameYesParent message class name (e.g., ZMY_MSGS).

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the core behavior (deletion of one message, preserving others) and a prerequisite (transport request). Could be more transparent about side effects, reversibility, or versioning implications.

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?

Two concise sentences with no filler. Front-loads purpose clearly. Every sentence provides essential information without redundancy.

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?

Given the tool's simplicity (3 parameters, no output schema), description adequately covers what the tool does and a key prerequisite. Lacks detail on return values or error handling, but acceptable for a delete operation.

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 100%, so baseline is 3. Description reinforces parameter meanings (e.g., msgno as number to delete, transport request requirement) but adds minimal new information beyond the schema.

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?

Description explicitly states the operation (Delete), subject (single message inside a Message Class), and action (remove one message by number from T100, keeping class and other messages). Clearly distinguishes from sibling tools like DeleteMessageClass.

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?

Provides context by stating the transport request requirement for transportable objects, implying when the tool should be used (to delete a specific message). However, it does not explicitly contrast with alternatives or specify when not to use it.

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

DeleteMetadataExtensionA

Delete an ABAP metadata extension from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
metadata_extension_nameYesMetadataExtension name (e.g., Z_MY_METADATAEXTENSION).

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It mentions a deletion check before actual deletion, which adds behavioral insight. But it does not cover authorization needs, reversibility, or side effects, leaving gaps for a delete operation.

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?

Two sentences, front-loaded with the core action. No superfluous words. Every phrase adds value.

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 simple delete tool with two parameters, no output schema, and no nested objects, the description is fairly complete. It covers the main action, a safety check, and parameter optionality context. Some minor behavioral details (e.g., error handling) are missing, but not critical.

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 100% with detailed descriptions for both parameters. The tool's description adds minimal additional parameter info ('Transport request optional for $TMP objects') which is already in the schema. Nothing beyond the schema is provided.

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?

Clearly states that the tool deletes an ABAP metadata extension, using a specific verb ('Delete') and resource ('ABAP metadata extension'). Distinguishes from sibling delete tools by naming the exact object type. Includes additional detail about a deletion check.

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?

Provides some context by noting that transport request is optional for $TMP objects, implying usage conditions for different object types. However, it does not explicitly state when to prefer this over other delete siblings or mention any prerequisites or alternatives.

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

DeleteServiceBindingB

Delete ABAP service binding via ADT Business Services endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoxml
transport_requestNoOptional transport request for deletion transport flow.
service_binding_nameYesService binding name to delete.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description must carry the burden. It only states 'Delete' which implies destruction, but does not discuss idempotency, error handling, or the effect of optional parameters like transport_request.

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 a single, focused sentence with no extraneous words. It is front-loaded and immediately communicates the core function.

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?

For a deletion function with no output schema and three parameters, the description is too sparse. It lacks information about required parameters, side effects, or typical use cases, leaving the agent underinformed.

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

Parameters2/5

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

The schema covers 67% of parameters with descriptions, but the tool description adds no explanation for response_format or transport_request. It relies entirely on the schema, missing the opportunity to clarify defaults or valid values.

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 clearly states the action (Delete) and the resource (ABAP service binding) with a specific endpoint. It uniquely identifies the tool among its siblings.

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?

No guidance on when to use this tool versus alternatives like UpdateServiceBinding or ValidateServiceBinding. The description omits prerequisites, postconditions, or exclusions.

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

DeleteServiceDefinitionA

Delete an ABAP service definition from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).
service_definition_nameYesServiceDefinition name (e.g., Z_MY_SERVICEDEFINITION).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavior. It mentions a deletion check before actual deletion and transport request optionality for $TMP objects. However, it omits details such as required authorizations, reversibility, impact on dependent objects, or error handling. The description covers basic traits but is not sufficiently rich.

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 two sentences, front-loading the primary action in the first sentence and adding essential details in the second. No superfluous information. Every part earns its place, making it concise and efficient.

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

Completeness3/5

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

Given the tool's relative simplicity (2 parameters, no output schema), the description covers the action and key nuances (deletion check, transport optionality). However, it lacks information about return values, success/failure indicators, or what happens if the deletion check fails. It is adequate but not fully comprehensive for an agent to predict all outcomes.

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 the schema already documents both parameters. The description adds some value by explaining when transport_request is optional (for $TMP objects), but does not provide additional meaning for service_definition_name beyond the schema. Baseline of 3 is appropriate as the description marginally enriches parameter understanding.

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 clearly states the tool deletes an ABAP service definition from the SAP system, using specific verb (Delete) and resource (service definition). It mentions a deletion check and transport request flexibility, which adds precision. Though sibling tools exist for other object types, the name and description make the target unambiguous.

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 description provides context about when to use (deleting a service definition) and mentions the deletion check and transport request optionality, but lacks explicit guidance on when not to use or alternatives. It does not compare with sibling delete tools, leaving the agent to infer from context.

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

DeleteStructureA

Delete an ABAP structure from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
structure_nameYesStructure name (e.g., Z_MY_STRUCTURE).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, description adds behavioral info: includes a deletion check and optional transport request for $TMP objects. Lacks details on side effects or error behavior, but provides useful context.

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?

Two sentences, concise, front-loaded with main action. Every word adds value.

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

Completeness3/5

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

Covers deletion and transport aspects, but lacks return value or error behavior. Since no output schema, description could describe what the tool returns on success/failure.

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 already describes both parameters (100% coverage). Description adds value by explaining transport_request optionality for $TMP objects, clarifying its practical use.

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?

Clearly states it deletes an ABAP structure, with a specific verb and resource. Distinguishes from sibling Delete tools by specifying the object type and mentioning a deletion check.

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?

Implies usage when deleting ABAP structures, but does not explicitly state when to use vs other Delete tools or when to avoid. No alternative guidance provided.

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

DeleteTableA

Delete an ABAP table from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name (e.g., Z_MY_TABLE).
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP).

TDQS

A3.5/5.0
Behavior3/5

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

The description adds a behavioral trait ('includes deletion check before actual deletion') beyond the schema. However, with no annotations, it does not disclose aspects like reversibility, required authorizations, or side effects, leaving gaps for a mutation operation.

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?

Two concise sentences front-loaded with the action and resource. Every word adds value; no redundancy.

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

Completeness3/5

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

For a delete tool with no output schema, the description mentions the deletion check but omits return values, error handling, or prerequisites. It is minimally adequate but not comprehensive.

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 baseline is 3. The description repeats that transport_request is optional for $TMP objects, which is already in the schema description. No additional semantic value is provided.

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 clearly states the action ('Delete'), the resource ('ABAP table'), and the system context ('SAP system'). It distinguishes this tool from siblings like DeleteDataElement or DeleteDomain by specifying 'ABAP table'.

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?

No guidance is provided on when to use this tool versus other delete tools (e.g., DeleteStructure). The only contextual hint is about transport request optionality, which is parameter-level, not usage context.

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

DeleteUnitTestB

Delete an ABAP Unit test run. Note: ADT does not support deleting unit test runs and will return an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by CreateUnitTest/RunUnitTest.

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It honestly discloses that the tool will return an error due to ADT not supporting deletion, which is a key behavioral trait. No other behaviors are described, but the failure outcome is clearly stated.

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 extremely concise, consisting of two sentences with no extraneous information. Every word serves a purpose: stating the action and warning of failure.

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

Completeness3/5

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

Given the tool's complexity (one parameter, no output schema, no annotations), the description provides the purpose and the critical failure note. However, it does not explain why the tool exists if it always fails, leaving some context incomplete.

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 the schema sufficiently describes the run_id parameter. The description does not add any additional semantic information beyond the schema, meeting the baseline.

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

Purpose3/5

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

The description states 'Delete an ABAP Unit test run,' which clearly identifies the action and resource. However, the note that ADT does not support deletion and will return an error creates confusion about the true functionality, lowering clarity.

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 description explicitly warns that the tool will fail, implying it should not be used. This is direct usage guidance, but it lacks positive guidance on when to use it or alternatives among sibling tools like DeleteCdsUnitTest.

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

DescribeByListB

[read-only] Batch description for a list of ABAP objects. Input: objects: Array<{ name: string, type?: string }>. Each object may be of type: PROG/P, FUGR, PROG/I, CLAS/OC, FUGR/FC, INTF/OI, TABLE, STRUCTURE, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. Description only notes [read-only], but does not disclose additional behaviors such as output format, pagination, or limits. Minimal transparency beyond the read-only tag.

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?

Two sentences, no wasted words. Front-loaded with read-only and purpose. Highly concise for the information conveyed.

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

Completeness3/5

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

No output schema and description omits return format. For a batch tool, missing information about what 'description' entails (e.g., structure of each object's description). Adequate but not fully complete.

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 0% per context. Description adds the input structure and lists possible types, providing meaning beyond the bare schema. However, it does not explain parameter constraints or defaults.

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?

Description clearly states 'Batch description for a list of ABAP objects,' specifying verb and resource. It lists object types, distinguishing it from siblings that target single objects or actions.

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?

Description implies use for batch description but lacks explicit guidance on when to use this tool over alternatives like GetObjectInfo or GetClass. No when-not-to-use or alternative mentions.

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

GetAbapASTA

[read-only] Parse ABAP code and return AST (Abstract Syntax Tree) in JSON format.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesABAP source code to parse

TDQS

A4/5.0
Behavior4/5

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

The description explicitly marks the tool as '[read-only]', which signals no side effects. It also states the output format ('JSON AST'). Since annotations are absent, the description adequately covers behavioral traits for a simple parse operation.

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 a single, well-structured sentence. It front-loads the read-only nature, uses clear verb-object structure, and defines the acronym AST. Every word contributes to understanding.

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 simple tool with one required parameter and no output schema, the description covers input, operation, and output format. It doesn't address error handling or size limits, but these are not critical for understanding core functionality.

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?

With 100% schema coverage, the input schema already describes the 'code' parameter. The description does not add further detail beyond rephrasing the schema, so it meets but does not exceed the baseline.

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 clearly states the tool's purpose: parsing ABAP code and returning an AST in JSON format. It uses precise verbs ('Parse', 'return') and specifies the resource ('ABAP code', 'AST'). Among many sibling 'Get' tools, it uniquely identifies its function without confusion.

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 description implies the tool is for obtaining an AST from ABAP code, but it does not explicitly state when to use this tool over alternatives like GetAbapSemanticAnalysis or GetAbapSystemSymbols. No when-not or conditions are provided.

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

GetAbapSemanticAnalysisB

[read-only] Perform semantic analysis on ABAP code and return symbols, types, scopes, and dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesABAP source code to analyze

TDQS

B3.4/5.0
Behavior3/5

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

The description includes '[read-only]' explicitly indicating no destructive side effects, which adds transparency beyond the absence of annotations. However, it does not disclose other behavioral traits such as performance implications, required permissions, or whether the analysis requires complete/valid code. The read-only hint is useful but minimal.

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 a single concise sentence with the read-only tag front-loaded. Every word is meaningful, and there is no redundancy or extraneous information. It efficiently conveys the tool's purpose.

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?

Given the tool has only one required parameter and no output schema, the description adequately explains what it returns (symbols, types, scopes, dependencies). It does not mention handling of incomplete or erroneous code, but overall it provides sufficient context for an AI agent to understand the tool's function.

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?

The input schema has 100% description coverage for the single 'code' parameter. The description adds no additional meaning beyond the schema's description ('ABAP source code to analyze'). Since the schema already clearly defines the parameter, the description does not provide extra semantic value.

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 clearly states it performs semantic analysis on ABAP code and returns symbols, types, scopes, and dependencies. It uses a specific verb ('perform semantic analysis') and identifies the resource. However, among sibling tools like GetAbapAST and GetTypeInfo, the description does not differentiate when to use this over alternatives, which slightly reduces clarity.

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?

No guidance is provided on when to use this tool versus alternative tools such as GetAbapAST or CheckClass. The description lacks any context about prerequisites, limitations, or scenarios where this tool is preferred, leaving the AI agent without direction.

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

GetAbapSystemSymbolsB

[read-only] Resolve ABAP symbols from semantic analysis with SAP system information including types, scopes, descriptions, and packages.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesABAP source code to analyze and resolve symbols for

TDQS

B3.4/5.0
Behavior3/5

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

The '[read-only]' prefix discloses a key behavioral trait. However, with no annotations provided, the description does not cover other aspects like permissions, rate limits, or side effects. It is adequate but minimal.

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 a single sentence with a tag, containing only essential information with no wasted words. It is perfectly concise and front-loaded.

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?

Despite no output schema, the description gives a good idea of what symbols are returned (types, scopes, descriptions, packages). For a simple single-parameter read tool, this is nearly complete, though explicit output format would be beneficial.

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 baseline is 3. The parameter description in the schema is clear ('ABAP source code to analyze'), and the tool description adds context about output contents but not about the parameter itself.

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 clearly states it resolves ABAP symbols from semantic analysis, listing included information (types, scopes, descriptions, packages). It is specific and informative, though it does not explicitly differentiate from sibling tools like GetAbapSemanticAnalysis.

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?

No guidance is provided on when to use this tool over alternatives or when not to use it. The sibling tools are listed but without explanation, leaving the agent to infer usage context.

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

GetAdtTypesA

[read-only] Retrieve all valid ADT object types (CLAS, TABL, PROG, DEVC, FUGR, INTF, DDLS, DTEL, DOMA, SRVD, SRVB, BDEF, DDLX, etc.) or validate a specific type name.

ParametersJSON Schema
NameRequiredDescriptionDefault
validate_typeNoType name to validate (optional)

TDQS

A3.9/5.0
Behavior3/5

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

The description marks the tool as [read-only], indicating no side effects. It mentions retrieval and validation but does not describe the return format, authentication needs, or rate limits. With no annotations, more detail on behavior would be helpful.

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?

Single sentence with no wasted words. Front-loads '[read-only]' to immediately convey safety. Information is presented clearly and efficiently.

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

Completeness3/5

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

Given no output schema and no annotations, the description partially covers behavior (list/validate) but omits what the tool returns (e.g., a list of strings or a boolean for validation). It is adequate for a simple lookup but incomplete for full agent guidance.

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?

The only parameter 'validate_type' has a schema description of 'Type name to validate (optional)'. The description adds context by linking the parameter to the validation function, clarifying its role beyond the schema.

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 clearly states the tool retrieves all valid ADT object types and can validate a specific type name. The verb 'retrieve' and resource 'all valid ADT object types' are specific. It distinguishes from sibling Get* tools that retrieve specific objects, not type lists.

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 description implies usage for getting type names or validating them, but does not explicitly state when to use this tool vs alternatives like GetObjectInfo or GetTypeInfo. No guidance on when not to use or prerequisites.

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

GetBehaviorDefinitionB

Retrieve ABAP behavior definition definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
behavior_definition_nameYesBehaviorDefinition name (e.g., Z_MY_BEHAVIORDEFINITION).

TDQS

B3.3/5.0
Behavior3/5

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

The description implies a read operation, but with no annotations, it does not explicitly state that no modifications are made. It only mentions version support. Additional behavioral details (e.g., permissions, error states) are absent.

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 a single, clear sentence with no superfluous information. Every word contributes to understanding the tool's function.

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

Completeness3/5

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

Given the absence of an output schema, the description should explain what is returned (e.g., structure or content of the definition). The current description omits this, leaving the agent to infer the output format.

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 the description adds little beyond the schema. It reiterates version support but does not provide new insight into parameter usage beyond what the enum and examples already convey.

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 clearly states it retrieves an ABAP behavior definition and supports active/inactive versions. However, among siblings, there is a 'ReadBehaviorDefinition' tool which likely performs a similar function, and the description does not differentiate between them.

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 description provides no guidance on when to use this tool versus alternatives like 'ReadBehaviorDefinition' or others. There is no mention of prerequisites, context, or exclusions.

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

GetBehaviorDefinitionVersionDiffA

[read-only] Compute a unified diff between two RAP behavior definition versions, by their content_uris (taken from GetBehaviorDefinitionVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetBehaviorDefinitionVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetBehaviorDefinitionVersions entry).

TDQS

A4.1/5.0
Behavior3/5

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

The description includes '[read-only]' indicating non-destructive behavior, but with no annotations, it does not disclose other traits like output format, error handling, or performance implications, leaving gaps for an agent.

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 a single concise sentence, front-loaded with '[read-only]', and every part provides essential information without redundancy.

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

Completeness3/5

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

Missing an output schema, the description does not specify the format or structure of the unified diff result. While it hints at a unified diff, it lacks details on what the agent can expect as output, which is needed for full completeness.

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% with parameter descriptions. The description adds value by clarifying that content_uris are derived from GetBehaviorDefinitionVersions entries, enhancing context beyond the schema's 'opaque' description.

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 explicitly states it computes a unified diff between two RAP behavior definition versions using content_uris from GetBehaviorDefinitionVersions, clearly distinguishing it from other version diff tools for different object types.

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?

It specifies that content_uris should be taken from GetBehaviorDefinitionVersions entries, providing input provenance. However, it lacks explicit guidance on when to use this tool versus alternative diff tools or contexts where it should not be used.

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

GetBehaviorDefinitionVersionsA

[read-only] List the SAP version history of a RAP behavior definition. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetBehaviorDefinitionVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
behavior_definition_nameYesRAP behavior definition name.

TDQS

A3.9/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It declares the tool as '[read-only]', which is critical behavior. It lists all return fields including the opaque content_uri and references a related tool for fetching source. Does not cover auth or rate limits, but for a read operation this is sufficient.

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?

Single sentence packs key info: read-only flag, purpose, returned fields. Efficient but could benefit from splitting into multiple lines for readability. No redundant words.

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 provided, but description lists all returned fields. Covers purpose, parameter, and outcome. References a sibling tool for further action (fetching source). For a list operation, this is fairly complete.

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% with a single parameter described as 'RAP behavior definition name.' The description adds no new information beyond the schema, so baseline score of 3 applies.

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?

Description clearly states 'list the SAP version history of a RAP behavior definition' with specific verb+resource. Distinguishes from sibling version tools by specifying 'RAP behavior definition', making it unique among many Get...Versions tools.

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?

No explicit guidance on when to use vs alternatives. The description implies usage for listing versions of a behavior definition, but does not mention when not to use or point to sibling tools like GetBehaviorDefinitionVersionDiff for comparison purposes.

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

GetBehaviorDefinitionVersionSourceA

[read-only] Fetch the source of a specific RAP behavior definition version by its content_uri (taken from a GetBehaviorDefinitionVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetBehaviorDefinitionVersions entry.

TDQS

A4.2/5.0
Behavior3/5

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

The description includes a '[read-only]' tag upfront, which is a behavioral hint. It states it fetches source, but does not disclose potential errors, rate limits, or output format. Without annotations, the description provides basic but not comprehensive transparency.

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 a single, well-structured sentence front-loaded with the read-only indicator. Every part is useful and there is no unnecessary information.

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?

Given the low complexity (one parameter, no output schema, no annotations), the description adequately explains the input source and basic function. It could be improved by mentioning what the source output looks like (e.g., source code text) but is sufficient for a simple fetch operation.

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?

The input schema has 100% coverage with a description for content_uri. The tool description adds the context that the content_uri is from GetBehaviorDefinitionVersions, which is valuable beyond the schema's 'opaque' description.

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 clearly states the tool fetches the source of a specific RAP behavior definition version using a content_uri. It distinguishes from sibling Get*VersionSource tools by specifying the object type (RAP behavior definition).

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 indicates that the content_uri comes from a GetBehaviorDefinitionVersions entry, providing clear context for usage. However, it does not explicitly state when not to use or mention alternative tools, though the sibling list contains many similar tools.

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

GetBehaviorImplementationC

Retrieve ABAP behavior implementation definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
behavior_implementation_nameYesBehaviorImplementation name (e.g., Z_MY_BEHAVIORIMPLEMENTATION).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It adds minimal behavioral detail beyond the schema: 'Supports reading active or inactive version' echoes the version parameter description. No mention of side effects, authorization, rate limits, or data volumes.

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 a single sentence of 12 words, front-loaded with the verb and resource. Every word earns its place; no redundancy or fluff.

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?

There is no output schema, and the description does not explain what the retrieved definition contains (e.g., structure, fields). Given the complexity of behavior implementations, more context about the output would be beneficial for an agent to decide correctness.

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 the schema already describes both parameters and their defaults. The description adds no new semantics or usage hints beyond what the schema provides. Baseline 3 is appropriate.

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 clearly states that the tool retrieves an ABAP behavior implementation definition, specifying the resource and noting support for active/inactive versions. It distinguishes from create/update/delete siblings, though a sibling named 'ReadBehaviorImplementation' exists which may cause confusion, but the description is still clear.

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?

No guidance is provided on when to use this tool versus alternatives like Create or Update tools, or other read tools like 'ReadBehaviorImplementation'. The description does not mention prerequisites, exclusions, or scenarios where this tool is appropriate.

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

GetCdsUnitTestB

Retrieve CDS unit test run status and result for a previously started run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by unit test run.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full burden. It states the tool retrieves status and result, but does not disclose if it is read-only, any authorization requirements, or potential side effects. The behavior is minimally described.

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 a single, front-loaded sentence that precisely conveys the tool's purpose with no extraneous words.

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

Completeness3/5

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

Given the tool has one parameter and no output schema, the description is adequate but vague about what exactly is returned (status and result combined or separately). For a retrieval tool, it could specify the response format or structure.

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% with one parameter (run_id) already described as 'Run identifier returned by unit test run.' The description adds 'previously started', which reinforces usage but does not significantly expand meaning beyond the schema.

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 clearly states the verb 'Retrieve', the resource 'CDS unit test run status and result', and the specific condition 'for a previously started run_id'. This distinguishes it from sibling tools like GetCdsUnitTestResult and GetCdsUnitTestStatus which only retrieve one aspect.

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 description implies usage is tied to a previously started run_id, but does not provide explicit guidance on when to use this tool versus alternatives like GetCdsUnitTestStatus or GetCdsUnitTestResult. No when-not-to-use or prerequisite context is given.

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

GetCdsUnitTestResultB

Retrieve CDS unit test run result for a run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoResult format: abapunit or junit.
run_idYesRun identifier returned by unit test run.
with_navigation_urisNoInclude navigation URIs in result if supported.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'Retrieve', implying a read operation. It lacks disclosure of behavioral traits like authorization requirements, rate limits, or whether the operation is destructive. With no annotations, the description fails to provide sufficient behavioral context.

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 a single sentence that directly conveys the tool's purpose with no unnecessary words. It is front-loaded and efficient.

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?

Despite having 3 parameters and no output schema, the description does not explain the return format or any constraints. For a retrieval tool, it lacks completeness about what the result contains.

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 the schema fully documents parameters. The description adds no additional meaning beyond what is in the schema, resulting in a baseline score of 3.

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 clearly states the action 'Retrieve' and the resource 'CDS unit test run result' with a specific parameter 'run_id'. It effectively distinguishes from sibling tools like GetCdsUnitTest or GetUnitTestResult by focusing on the run result.

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?

No guidance on when to use this tool versus alternatives such as GetCdsUnitTestStatus or GetUnitTestResult. The description does not mention prerequisites or context for use.

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

GetCdsUnitTestStatusB

Retrieve CDS unit test run status for a run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by unit test run.
with_long_pollingNoEnable long polling while waiting for status.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description only says 'Retrieve', implying a read operation but does not confirm safety or side effects. Minimal behavioral disclosure.

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?

Single sentence with no wasted words. Front-loaded and efficient.

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 simple tool with two parameters and no output schema, the description is adequate. It covers the core action, though could mention polling behavior or return type.

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%, and the description adds no extra meaning beyond the schema. The baseline of 3 is appropriate as the schema already documents parameters.

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 clearly states the tool retrieves CDS unit test run status for a given run_id. It is specific and distinguishes itself from siblings like GetUnitTestStatus.

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?

No guidance on when to use this tool versus alternatives like GetCdsUnitTest or GetUnitTestStatus. The description does not mention prerequisites or context.

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

GetClassC

Retrieve ABAP class source code. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
class_nameYesClass name (e.g., ZCL_MY_CLASS).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it retrieves source code but does not disclose any behavioral traits such as authentication needs, side effects, or return format.

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 concise with a single sentence. However, it misses the opportunity to add more value without becoming verbose.

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 the absence of an output schema, the description should explain what the tool returns (source code). It also lacks contextual guidance on which sibling tools to use for similar tasks.

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% with both parameters fully described. The description adds minimal value beyond the schema, just mentioning support for active/inactive versions.

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 clearly states it retrieves ABAP class source code, specifying verb and resource. However, it does not differentiate from the sibling ReadClass, which could have similar functionality.

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?

No guidance on when to use this tool versus alternatives like ReadClass, or any prerequisites or context for choosing between active and inactive versions.

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

GetClassVersionDiffA

[read-only] Compute a unified diff between two ABAP class versions, by their content_uris (taken from GetClassVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetClassVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetClassVersions entry).

TDQS

A4.4/5.0
Behavior4/5

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

The description marks the tool as read-only with '[read-only]' and states it computes a unified diff, which is useful behavioral context beyond the schema. No annotations exist, so the description carries the burden; missing details like authorization or error handling prevent a perfect score.

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 a single, well-structured sentence that front-loads the read-only behavior and uses precise language. No unnecessary words.

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?

Given the absence of an output schema and no nested objects, the description adequately covers purpose and parameter origin. It explains the diff format (unified diff) but could mention prerequisites or response structure for completeness.

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% with descriptions, providing baseline 3. The description adds value by specifying that content_uris come from GetClassVersions entries, which directly informs parameter usage and source.

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 clearly states the verb 'Compute', the resource 'unified diff between two ABAP class versions', and the method 'by their content_uris', distinguishing it from sibling version-listing tools like GetClassVersions and other object-specific diff tools.

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 explicitly ties parameter values to GetClassVersions entries, guiding when to use this tool. However, it does not mention when not to use it or contrast with other version comparison tools, though the sibling list provides implicit differentiation.

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

GetClassVersionsA

[read-only] List the SAP version history of a ABAP class. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetClassVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesABAP class name.

TDQS

A4/5.0
Behavior4/5

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

The description begins with '[read-only]' indicating non-destructive behavior. It lists all returned fields (versionId, author, etc.) and notes conditional availability of transport info. No annotation provided, so description carries the burden well. However, no mention of authentication or rate limits.

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 a single sentence plus a list of returned fields, all front-loaded. No wasted words; every part adds value. Perfectly concise for the information conveyed.

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?

With one parameter, full schema coverage, no output schema, and many sibling tools, the description explains the output fields and links to GetClassVersionSource. It lacks mention of pagination or limits, but for a version listing tool, it's largely complete.

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% with parameter 'class_name' described as 'ABAP class name.' The description adds context by framing it as 'SAP version history of a ABAP class' and hints at output, but does not add new meaning beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool lists SAP version history of an ABAP class, specifying the returned fields. It distinguishes itself from sibling GetClassVersionSource by mentioning the content_uri for fetching source. A specific verb-resource pair with clear scope.

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 description does not explicitly state when to use this tool versus alternatives like GetClassVersionDiff or other Get*Versions tools. It implies a follow-up action via GetClassVersionSource but lacks when-not-to-use guidance. With many sibling version tools, more differentiation would help.

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

GetClassVersionSourceA

[read-only] Fetch the source of a specific ABAP class version by its content_uri (taken from a GetClassVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetClassVersions entry.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses read-only behavior upfront via '[read-only]' tag. Explains input dependency. No annotations exist, so description carries full burden; it sufficiently covers expected behavior for a simple fetch operation.

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?

Single, front-loaded sentence of 20 words with no wasted text. The read-only flag is placed at the beginning, maximizing scannability.

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?

With one parameter and no output schema, the description clearly explains what the tool does and how to obtain the input. It does not describe the output format, but for a simple source fetch this is adequate.

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% and the schema description for content_uri already states 'Opaque content_uri taken from a GetClassVersions entry.' The tool description repeats this without adding new meaning, so baseline 3 is appropriate.

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?

Description clearly states the verb 'Fetch' and resource 'source of a specific ABAP class version', and specifies the input source (content_uri from GetClassVersions). It distinguishes from sibling tools like GetClassVersionDiff.

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?

Explicitly states the prerequisite: content_uri taken from GetClassVersions. Provides clear context for when to use, though does not list alternative tools for other scenarios.

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

GetDataElementB

Retrieve ABAP data element definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
data_element_nameYesData element name (e.g., Z_MY_DATA_ELEMENT).

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description provides one behavioral trait: support for active/inactive versions. It lacks details on idempotency, error handling, or whether it is purely a read operation. The repeated mention of version is useful but insufficient for full transparency.

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?

Two sentences, 16 words, front-loaded with main action. No wasted words, but structured presentation (e.g., bullet points) could improve scanability.

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

Completeness3/5

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

No output schema, yet description does not mention what the returned definition contains or its format. For a retrieval tool, explaining the return structure would improve completeness. Adequate but with gaps.

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?

Input schema has 100% coverage with clear descriptions for both parameters. The description adds no new meaning beyond the schema; it only echoes 'active or inactive version.' Baseline of 3 is appropriate.

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 clearly states the tool retrieves an ABAP data element definition, specifying the verb and resource. However, it does not distinguish from similar siblings like 'ReadDataElement', missing a chance to clarify the difference.

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?

No guidance on when to use this tool versus alternatives (e.g., ReadDataElement, DeleteDataElement). The description only states what it does, not the context or conditions for appropriate use.

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

GetDdlA

Retrieve ABAP DDL source definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
ddl_nameYesDDL source name (e.g., Z_MY_VIEW).

TDQS

A3.6/5.0
Behavior3/5

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

Description indicates read-only behavior ('retrieve') and version support, but lacks details on authentication, rate limits, side effects, or return format. With no annotations, it provides minimal behavioral context beyond the obvious.

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?

Two sentences, front-loaded with key action and resource. Each sentence adds distinct value without redundancy or waste.

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 simple retrieval tool with 2 parameters and no output schema, the description covers the essential purpose and version support. Lacks mention of output format (e.g., returned as string), but is largely adequate.

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% with descriptions for both parameters. The description only reiterates the version parameter's enum values, adding no new meaning beyond the schema.

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?

Description clearly states the verb 'retrieve' and resource 'ABAP DDL source definition', specifying support for active/inactive versions. This differentiates it from sibling tools like ActivateDdl, CreateDdl, CheckDdl, etc.

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?

No guidance on when to use this tool vs alternatives (e.g., CheckDdl for syntax checking, CreateDdl for creation). Does not specify prerequisites or context.

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

GetDdlVersionDiffA

[read-only] Compute a unified diff between two CDS view (DDL source) versions, by their content_uris (taken from GetDdlVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetDdlVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetDdlVersions entry).

TDQS

A3.9/5.0
Behavior3/5

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

Declares '[read-only]' but does not elaborate on behavioral traits beyond annotations (none provided). No disclosure of output format, permissions, or error conditions. With no output schema, description should provide more detail.

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?

Single concise sentence with front-loaded behavioral hint. Every word earns its place; no redundancy.

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

Completeness3/5

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

Tool is simple with only two string params and no output schema. Description covers purpose and parameter origin but lacks output format details and error handling. Incomplete for full contextual understanding.

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?

Adds value beyond schema by specifying that content_uris originate from GetDdlVersions entries. Schema coverage is 100%, so baseline 3; the extra context of opaque URIs and their source justifies a 4.

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?

Description clearly specifies verb ('Compute a unified diff'), resource ('CDS view (DDL source) versions'), and distinguishes from siblings like GetDdlVersions and GetDdlVersionSource. The '[read-only]' tag further clarifies its nature.

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?

Implies usage context by stating content_uris are taken from GetDdlVersions entries, but does not explicitly say when to use this tool versus alternatives (e.g., GetDdlVersionSource). No exclusions or prerequisites beyond the implied dependency.

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

GetDdlVersionsA

[read-only] List the SAP version history of a CDS view (DDL source). Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetDdlVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
ddl_nameYesCDS view (DDL source) name.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description correctly marks the tool as [read-only] and lists the returned fields (versionId, author, etc.). However, it does not disclose potential behavioral traits such as result ordering, pagination limits, or error conditions, which would be helpful for safe invocation.

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 exceptionally concise: two sentences, no filler. The first sentence front-loads the purpose and read-only nature; the second enumerates return fields. Every word adds value, making it efficient for an agent to parse.

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

Completeness3/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 adequately lists return fields. However, it lacks context on result ordering (e.g., by version descending), potential pagination, or how to interpret the content_uri. For a version history tool, these gaps reduce completeness.

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?

The input schema provides 100% coverage with a clear description for the sole parameter 'ddl_name'. The tool description does not add additional meaning beyond the schema, such as formatting expectations or examples, so it meets the baseline.

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 clearly states 'List the SAP version history of a CDS view (DDL source)', specifying the verb 'List' and the resource 'version history'. It distinguishes from the sibling GetDdlVersionSource by noting that the returned content_uri is used to fetch source via that tool, and also from other version tools by naming DDL source specifically.

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 description implies usage for listing versions but does not explicitly state when to use this tool versus alternatives like GetDdlVersionDiff or other object version tools. There is no guidance on prerequisites or exclusions, leaving the agent to infer from context.

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

GetDdlVersionSourceA

[read-only] Fetch the source of a specific CDS view (DDL source) version by its content_uri (taken from a GetDdlVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetDdlVersions entry.

TDQS

A4.2/5.0
Behavior3/5

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

The description includes '[read-only]' to indicate safety. Since no annotations are provided, this helps. However, it does not detail return format, permissions, or potential costs. The minimal disclosure is adequate for a simple read operation but lacks depth.

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 a single sentence with a read-only tag. It is extremely concise, front-loaded with the key verb and resource, and contains no superfluous information.

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?

Given the tool's simplicity (one parameter, no output schema, read-only), the description provides enough context to use it correctly. It could mention the output is ABAP DDL source, but this is implicit from the name and context.

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?

The schema has 100% description coverage for the only parameter. The description adds context by specifying that content_uri comes from GetDdlVersions, which clarifies its provenance beyond the schema's generic description.

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 clearly states the tool fetches the source of a specific CDS view version using a content_uri. It references GetDdlVersions as the source of the URI, which distinguishes it from similar tools like GetDdlVersions and GetDdlVersionDiff.

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 implies usage after GetDdlVersions to retrieve source for a specific version. It does not explicitly state when not to use or list alternatives, but the context and named sibling provide sufficient guidance.

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

GetDomainB

Retrieve ABAP domain definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
domain_nameYesDomain name (e.g., Z_MY_DOMAIN).

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description only mentions version support but omits important behavioral details like response format, error behavior when domain not found, or that it is a read-only operation.

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?

Two short sentences with no wasted words. Efficiently conveys the core purpose and version support.

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

Completeness3/5

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

For a simple tool with only 2 parameters, the description covers primary behavior but lacks details on output and error states. Without an output schema, some additional context would be helpful for full completeness.

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% and the description adds no new meaning beyond what the schema already provides for both parameters. Baseline 3 is appropriate.

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 clearly states the tool retrieves ABAP domain definitions and highlights version support (active/inactive). However, it does not differentiate from sibling tools like 'ReadDomain'.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., ReadDomain, GetObjectInfo) or any prerequisites (e.g., domain must exist).

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

GetEnhancementImplA

[read-only] Retrieve source code of a specific enhancement implementation by its name and enhancement spot.

ParametersJSON Schema
NameRequiredDescriptionDefault
enhancement_nameYes[read-only] Name of the enhancement implementation
enhancement_spotYesName of the enhancement spot

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It declares '[read-only]' indicating a safe read operation, but discloses no other behavioral traits such as authentication needs, rate limits, or side effects. This is minimal beyond the read-only hint.

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 a single sentence with the [read-only] prefix front-loaded. Every word earns its place; no redundancy or wasted text.

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

Completeness3/5

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

While the tool is simple (2 required params, no nested objects, no output schema), the description does not explain what the 'source code' looks like (e.g., format, multiline string) or confirm that it returns the code text. It is adequate but could be more complete for agent understanding.

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 the parameter descriptions in the schema already provide meaning for 'enhancement_name' and 'enhancement_spot'. The description adds 'by its name and enhancement spot' which largely repeats the schema. Baseline score of 3 is appropriate as the description adds minimal value beyond the schema.

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 clearly states the verb 'retrieve', the resource 'source code of a specific enhancement implementation', and the distinguishing parameters (name and enhancement spot). It differentiates from sibling tools like GetEnhancements (which likely lists) and GetEnhancementSpot (which retrieves spot details).

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 description implies usage for retrieving source code of an enhancement implementation but provides no explicit guidance on when to use vs alternatives, no context or exclusions. It is adequate but lacks direction.

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

GetEnhancementsB

[read-only] Retrieve a list of enhancements for a given ABAP object.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYesName of the ABAP object
object_typeYes[read-only] Type of the ABAP object

TDQS

B3.4/5.0
Behavior3/5

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

The description includes '[read-only]' indicating non-destructive behavior, which adds transparency beyond the absent annotations. However, it does not disclose error handling, empty results behavior, or performance implications.

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?

Single sentence with front-loaded read-only hint. No wasted words. Efficient and clear.

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?

No output schema provided and description omits details about the returned enhancement list (format, fields, pagination). For a retrieval tool, this leaves significant gaps for an agent to understand the return value.

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% with clear parameter descriptions. The tool description adds no additional semantic meaning beyond restating the parameters' purpose. Baseline 3 is appropriate as the schema already documents the parameters adequately.

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?

Clearly states it retrieves a list of enhancements for a given ABAP object. The verb 'retrieve' and resource 'enhancements' are specific. Distinguished from siblings like GetEnhancementImpl which retrieves a specific implementation.

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?

No explicit guidance on when to use this tool versus alternatives. No mention of when not to use or any prerequisites. Implied usage from description is insufficient for an agent to decide between this and similar Get* tools.

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

GetEnhancementSpotA

[read-only] Retrieve metadata and list of implementations for a specific enhancement spot.

ParametersJSON Schema
NameRequiredDescriptionDefault
enhancement_spotYesName of the enhancement spot

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly includes '[read-only]', which transparently indicates that the operation does not modify state. Since annotations are absent, this self-disclosure is effective and there are no contradictions or hidden side effects disclosed.

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 a single sentence that is direct and free of redundancy. It communicates the essential function without unnecessary elaboration.

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?

The description adequately summarizes the expected output ('metadata and list of implementations') for a simple read operation, even without an output schema. It does not mention prerequisites or error cases, but these are not critical given the tool's straightforward nature.

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?

The sole parameter 'enhancement_spot' is described in the schema as 'Name of the enhancement spot', which is clear but adds no additional meaning beyond the schema. The description itself does not elaborate on the parameter's context or format, so it does not exceed the baseline for full schema coverage.

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 states a specific verb ('Retrieve'), a clear resource ('metadata and list of implementations'), and a target ('specific enhancement spot'), making the purpose immediately obvious. It also differentiates from sibling tools like GetEnhancements and GetEnhancementImpl by focusing on a single spot.

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 description does not mention when to use this tool versus alternatives such as GetEnhancements or GetEnhancementImpl. There is no explicit guidance on selection criteria or when to prefer this tool over related ones.

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

GetFunctionGroupB

Retrieve ABAP function group definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
function_group_nameYesFunctionGroup name (e.g., Z_MY_FUNCTIONGROUP).

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the tool retrieves a definition, without detailing what 'definition' includes, authentication needs, rate limits, or side effects. The version support is already in the schema.

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 a single sentence, concise and front-loaded. It is efficient but could benefit from slightly more detail without becoming verbose.

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 the low complexity and no output schema, the description is incomplete. It does not describe the return format or structure of the 'definition', leaving the agent uncertain about what to expect.

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 100%, so baseline is 3. The description adds no significant meaning beyond the schema; it merely paraphrases the version parameter's enum values.

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 clearly states the action ('Retrieve') and the resource ('ABAP function group definition'). It also mentions version support. However, it does not distinguish from the sibling tool 'ReadFunctionGroup', which likely has similar functionality.

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 description implies usage for retrieving function group definitions but provides no explicit guidance on when to use this tool versus alternatives like 'ReadFunctionGroup'. No exclusions or context are given.

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

GetFunctionModuleB

Retrieve ABAP function module definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
function_group_nameYesFunctionGroup name containing the function module (e.g., Z_MY_FUNCTIONGROUP).
function_module_nameYesFunctionModule name (e.g., Z_MY_FUNCTIONMODULE).

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It accurately portrays a read operation and mentions version handling, but lacks details on errors, authentication, or return format. It is minimally transparent.

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 extremely concise with two clear sentences. It front-loads the main purpose and version support without any unnecessary words.

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 the absence of an output schema, the description should explain return values and error handling. It only describes the retrieval action and version support, leaving significant gaps for a retrieval 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?

The input schema already covers all 3 parameters with descriptions (100% coverage). The description adds no additional semantic meaning beyond the schema, so baseline of 3 is appropriate.

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 clearly states it retrieves an ABAP function module definition and supports active/inactive versions. While it distinguishes from many sibling tools by specifying 'definition' and version support, it does not explicitly differentiate from the similar 'ReadFunctionModule' tool.

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?

No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or exclusions mentioned. Sibling tools like 'ReadFunctionModule' exist without differentiation.

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

GetFunctionModuleVersionDiffA

[read-only] Compute a unified diff between two ABAP function module versions, by their content_uris (taken from GetFunctionModuleVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetFunctionModuleVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetFunctionModuleVersions entry).

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It opens with [read-only], which is a key behavioral trait. Beyond that, it adds no details about potential errors, size limits, or what happens if URIs are invalid. This is adequate but minimal.

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 a single sentence, front-loaded with [read-only], and contains only essential information. Every part is relevant: the verb, the resource, the input method, and the source of the URIs. No wasted words.

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 simple diff tool with only 2 parameters and no output schema, the description covers the purpose, input source, and safety. It does not explain the output format (unified diff details) or any limitations, but the core functionality is clearly communicated. Slightly lacking but generally complete.

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 100%, so baseline is 3. The parameter descriptions already state 'Opaque content_uri of the OLD/base version (from a GetFunctionModuleVersions entry).' The tool description adds no additional parameter meaning beyond what the schema provides. It does not compensate with extra context because schema already has it.

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?

Description clearly states the verb 'Compute' and resource 'unified diff between two ABAP function module versions'. It specifies the input source (content_uris from GetFunctionModuleVersions) and uses [read-only] prefix to indicate safety. This is specific and distinct from sibling diff tools for other object types.

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?

Description explicitly says to use content_uris taken from GetFunctionModuleVersions entries, providing clear context on prerequisite. However, it does not mention when not to use this tool or list alternative tools for similar purposes, though the tool's name and description differentiate it sufficiently.

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

GetFunctionModuleVersionsA

[read-only] List the SAP version history of a ABAP function module. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetFunctionModuleVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
function_group_nameYesOwning function group name (required).
function_module_nameYesABAP function module name.

TDQS

A4/5.0
Behavior4/5

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

Declares read-only with '[read-only]' and lists all returned fields. Without annotations, it describes the operation well, though misses potential limitations like pagination.

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?

Single tight sentence, front-loaded with read-only annotation, no redundant words.

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?

Covers purpose, output structure, and links to related tool. Lacks details on sorting, filtering, or error handling, but sufficient for a version list.

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 description adds no new meaning to parameters beyond naming. Baseline applies.

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 clearly states it lists SAP version history of a function module, including specific fields. It distinguishes itself from sibling tools like GetFunctionModuleVersionDiff and GetFunctionModuleVersionSource.

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?

No explicit when-to-use or when-not-to-use guidance. It implies GetFunctionModuleVersionSource for source fetching, but lacks clear direction compared to alternatives.

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

GetFunctionModuleVersionSourceA

[read-only] Fetch the source of a specific ABAP function module version by its content_uri (taken from a GetFunctionModuleVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetFunctionModuleVersions entry.

TDQS

A4.3/5.0
Behavior3/5

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

The tool is marked [read-only], indicating no side effects, but no annotations are provided. The description does not elaborate on authentication, rate limits, or other behavioral traits beyond the read-only hint.

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 a single, concise sentence that front-loads the [read-only] tag. Every word is necessary and no redundant information is present.

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?

For a simple read-only tool with one parameter and no output schema, the description fully explains the purpose and origin of the input. It is complete for an agent to invoke correctly.

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?

The single parameter 'content_uri' is described in both the schema and the description as an opaque URI from GetFunctionModuleVersions. With 100% schema coverage, the description adds useful context about the source of the URI.

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 clearly states the tool fetches the source of an ABAP function module version using a content_uri from GetFunctionModuleVersions. It uses specific verb 'Fetch' and identifies the resource, distinguishing it from sibling tools that handle activation, deletion, or listing.

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 explains the prerequisite of having a content_uri from GetFunctionModuleVersions, providing context for when to use this tool. However, it does not explicitly state when not to use it or mention alternatives.

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

GetInactiveObjectsA

[read-only] Get a list of inactive ABAP objects — modified but not yet activated, pending activation. Shows classes, tables, CDS views, and other objects awaiting activation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description labels the tool as [read-only], indicating it does not modify data. With no annotations provided, this is helpful but lacks further behavioral details such as performance, return size, or authentication requirements.

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 two sentences long, front-loaded with the read-only hint and a clear purpose, with no extraneous information. It is optimally concise.

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?

Given the simple task with no parameters and no output schema, the description sufficiently covers what the tool does. It could mention the output format or limitations, but for a straightforward list tool, it is largely complete.

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?

There are no parameters in the input schema, so the description has no need to elaborate on parameters. It adequately explains the tool's function beyond the schema.

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 clearly states the tool retrieves a list of inactive ABAP objects that are modified but not activated. It specifies the types of objects included (classes, tables, CDS views, etc.), making its purpose unambiguous and distinct from sibling tools.

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 description implies the tool should be used when needing to see pending activations, but it does not explicitly compare with alternatives like ActivateObjects or other Get* tools, nor does it mention when not to use it.

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

GetIncludeA

[read-only] Read ANY single ABAP include source by name, from anywhere in the repository (an include may live outside any single program tree). This is the correct tool for include names (PROG/I) — ReadProgram does not read includes.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_nameYesName of the ABAP Include

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It marks the operation as '[read-only]' and clarifies the repository-wide scope. However, it does not mention potential errors, return format, or side effects, which for a read-only source fetch are minimal. The read-only marker and scope add useful transparency beyond a bare statement.

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?

Two sentences, no redundancy. The primary purpose is stated first, followed by a critical usage caveat. Every word earns its place.

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 single-parameter read tool with no output schema, the description covers purpose, scope, and routing. It omits explicit return value description, but the read nature makes it implicit. Overall, it provides sufficient context for an agent to call correctly.

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% (the only parameter 'include_name' is described). The description does not add any detail beyond the schema, such as format, case-sensitivity, or examples. Baseline of 3 is appropriate since the schema already documents the parameter adequately.

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 states a specific verb ('Read'), resource ('ABAP include source'), and scope ('by name, from anywhere in the repository'). It also distinguishes itself from the likely sibling ReadProgram, making its purpose unambiguous.

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 when to use this tool: 'This is the correct tool for include names (PROG/I)'. It also provides an exclusion: 'ReadProgram does not read includes'. This gives clear routing between tools.

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

GetIncludesListA

[read-only] Recursively discover and list ALL include files within an ABAP program or include.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNo[read-only] Timeout in ms for each ADT request.
detailedNo[read-only] If true, returns structured JSON with metadata and raw XML.
object_nameYesName of the ABAP program or include
object_typeYes[read-only] ADT object type of the parent. Only these four values are supported: 'PROG/P' (program), 'PROG/I' (include), 'FUGR' (function group), 'CLAS/OC' (class). Any other value is rejected by the schema.

TDQS

A3.6/5.0
Behavior3/5

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

The description discloses that the operation is read-only and recursive, which are behavioral traits not covered by annotations (none are provided). However, it does not describe the output format, pagination, or side effects beyond listing, and the detailed parameter's behavior is only documented in the schema, not the description. Given the lack of annotations, the description carries the burden and only partially fulfills it.

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 a single, efficient sentence that front-loads the read-only hint and core recursive behavior. There is no redundancy or filler; every word contributes to the purpose.

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?

The tool has no output schema, so the description should explain what the return value looks like. It only says 'list ALL include files' without specifying whether it returns names, full metadata, or how the 'detailed' parameter changes the response. The schema covers parameters but not return structure, leaving an agent uncertain about the expected output. For a tool with four parameters and no output schema, this is a significant gap.

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 100%, so all four parameters are already documented with descriptions, including the detailed flag and object_type enum. The tool description adds no extra meaning about parameters beyond what the schema provides, so a baseline of 3 is appropriate.

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 states a specific verb (discover and list), a clear resource (all include files within an ABAP program or include), and the recursive scope. It distinguishes itself from generic listing tools like GetStructuresList by focusing on includes, making the purpose unmistakable.

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 usage context is implied: an agent would use this when they need to enumerate include files for a given ABAP object. However, there is no explicit guidance on when not to use it or which alternative sibling tools (e.g., GetStructuresList, GetPackageContents) might be more appropriate for different scenarios.

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

GetInterfaceB

Retrieve ABAP interface definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
interface_nameYesInterface name (e.g., Z_MY_INTERFACE).

TDQS

B3.3/5.0
Behavior3/5

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

No annotations provided; description mentions reading and version support but lacks details on error behavior, authorization requirements, or side effects. Adequate for a simple read tool but not comprehensive.

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?

Two concise sentences, front-loaded with core functionality. No filler or redundant information.

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

Completeness3/5

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

Given the many sibling tools, the description lacks context for differentiation. For a simple getter, it covers basics but misses opportunity to clarify when to use this over similar 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 coverage is 100% and the description does not add value beyond the schema's parameter descriptions. The version parameter's description in schema already covers the versioning aspect.

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?

Description clearly states it retrieves an ABAP interface definition and supports version selection. However, it does not differentiate from the similar sibling 'ReadInterface', missing a chance to clarify distinct purpose.

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?

No guidance on when to use this tool versus alternatives like ReadInterface, GetClass, etc. The description only states what it does, not the context or prerequisites.

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

GetInterfaceVersionDiffA

[read-only] Compute a unified diff between two ABAP interface versions, by their content_uris (taken from GetInterfaceVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetInterfaceVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetInterfaceVersions entry).

TDQS

A4/5.0
Behavior3/5

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

The description includes the '[read-only]' hint, signaling no side effects. However, it does not detail the output format (e.g., unified diff text) or specify behavioral constraints like required permissions or error handling. Given no annotations, additional information would improve transparency.

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 a single sentence that efficiently conveys purpose and parameter context. It is well-structured and front-loaded with the read-only hint, though it could include a brief note on output without losing conciseness.

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

Completeness3/5

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

The description covers the main purpose and parameter sources but lacks details on return value format (unified diff), potential errors, or limitations. Given no output schema and low complexity, additional completeness would be beneficial but not critical.

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%, and the description adds value by clarifying which parameter is the old/base (content_uri_from) and which is new/compare (content_uri_to), and that values come from GetInterfaceVersions. This context goes beyond the schema descriptions.

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 explicitly states the action ('Compute a unified diff'), the resource ('two ABAP interface versions'), and the source of parameters ('from GetInterfaceVersions entries'). It differentiates from sibling tools like GetClassVersionDiff by specifying the object type.

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 indicates that content_uris should be taken from GetInterfaceVersions, providing clear context on prerequisites. It does not explicitly mention when not to use the tool or list alternatives, but the naming and sibling tools imply it is interface-specific.

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

GetInterfaceVersionsA

[read-only] List the SAP version history of a ABAP interface. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetInterfaceVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_nameYesABAP interface name.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description adds value by marking the tool as read-only and explaining the opaque content_uri for fetching source versions. It does not cover error handling or edge cases, but the core behavioral trait is disclosed.

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 three sentences, front-loaded with purpose and read-only flag. Every sentence adds value, with no redundancy or unnecessary words.

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?

Given no output schema, the description adequately lists return fields and references a sibling tool for source retrieval. It is slightly lacking in error or edge-case description, but sufficient for typical use.

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 100% with a clear description of 'interface_name'. The description adds no further semantic detail beyond what the schema already provides, so baseline 3 is appropriate.

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 clearly states the verb 'List' and the resource 'SAP version history of a ABAP interface', and enumerates returned fields. It distinguishes itself from siblings like GetInterfaceVersionDiff and GetInterfaceVersionSource by mentioning the content_uri link.

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 description does not provide explicit when-to-use or when-not-to-use guidance relative to sibling tools. It implies usage through purpose but lacks explicit exclusions or alternatives.

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

GetInterfaceVersionSourceA

[read-only] Fetch the source of a specific ABAP interface version by its content_uri (taken from a GetInterfaceVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetInterfaceVersions entry.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It includes '[read-only]' indicating safety. However, it does not disclose other behavioral traits such as rate limits, authentication, or side effects. For a simple read operation, this is adequate but not rich.

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 a single sentence with no fluff. It conveys the purpose, input source, and nature (read-only) efficiently.

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

Completeness3/5

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

Given no output schema and no annotations, the description explains the input source but does not describe the output format or what 'source' entails (e.g., code, XML). It is minimally complete for a simple tool but could be more informative.

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% for the single parameter. The description repeats the schema's explanation ('content_uri taken from a GetInterfaceVersions entry'), adding no new meaning beyond the schema. Baseline of 3 is appropriate.

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 clearly states the action ('Fetch the source') and the resource ('a specific ABAP interface version'), including the prerequisite source of the parameter (from GetInterfaceVersions). It distinguishes from sibling tools by specifying the resource type (interface) and the parameter naming.

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 explicitly states to use the content_uri from GetInterfaceVersions, which provides clear context on how to obtain the input. It does not mention when not to use or alternatives, but for a simple fetch tool, this is sufficient.

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

GetLocalDefinitionsB

Retrieve local definitions source code from a class (definitions include). Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
class_nameYesParent class name (e.g., ZCL_MY_CLASS).

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic action and version support, with no mention of side effects, security requirements, error handling, or return behavior.

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 two sentences (16 words) with no redundancy. The main action is front-loaded, and every sentence provides essential information.

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 simple retrieval tool with a fully described schema, the description is adequate. It does not need to explain return values since there is no output schema, but it could be slightly enhanced by clarifying what the source code output is.

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?

The schema already provides full descriptions for both parameters (100% coverage). The description adds no additional meaning beyond what is in the schema, merely restating the version support.

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 it retrieves local definitions source code from a class, which is clear. The phrase 'definitions include' is slightly ambiguous but does not obscure the main purpose. It distinguishes from sibling tools that delete or update local definitions, but does not explicitly differentiate from other GetLocal tools like GetLocalMacros.

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 description mentions it supports reading active or inactive versions, which gives some usage context but does not specify when not to use this tool or provide alternatives. There is no guidance on prerequisites, such as the class needing to exist.

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

GetLocalMacrosA

Retrieve local macros source code from a class (macros include). Supports reading active or inactive version. Note: Macros are supported in older ABAP versions but not in newer ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
class_nameYesParent class name (e.g., ZCL_MY_CLASS).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The description implies a read operation but does not explicitly state safety, idempotency, or permissions. It adds version capability but no further behavioral traits.

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 extremely concise, using only three sentences to state the purpose, version support, and an important contextual note. Every sentence carries value, with no wasted words.

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

Completeness3/5

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

The description is adequate for a simple retrieval tool, but it does not specify the return format (e.g., source code as a string). Given the lack of an output schema, the description should clarify what is returned.

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?

The schema already describes both parameters with 100% coverage, including clear descriptions and an enum for the version. The description adds no new parameter-specific meaning beyond what the schema provides.

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 clearly states the action (retrieve) and resource (local macros source code from a class), and mentions version support. However, it does not explicitly differentiate from similar sibling tools like GetLocalDefinitions or GetLocalTypes, which is needed for a top score.

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 description provides a contextual note about ABAP version support, which hints at when the tool is applicable, but it lacks explicit guidance on when to use this tool versus alternatives, and it does not mention any prerequisites or exclusions.

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

GetLocalTestClassB

Retrieve local test class source code from a class. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
class_nameYesParent class name (e.g., ZCL_MY_CLASS).

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only mentions retrieval and version support, omitting details on output format, auth requirements, or error conditions. This is insufficient for an agent to understand side effects or risks.

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?

Two sentences with no wasted words. The description is front-loaded with the primary purpose and includes a key detail about version support.

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

Completeness3/5

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

Given no output schema and no annotations, the description is minimal but covers the essential purpose. It lacks context on return value structure, prerequisites, or error scenarios, which would be helpful for a full understanding.

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 100%, so the schema already documents both parameters adequately. The description adds no new meaning beyond restating the version functionality.

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 clearly states the verb 'retrieve' and the resource 'local test class source code from a class'. It distinguishes from siblings by focusing on local test classes and mentioning version support, but could be more explicit about the relationship to the parent class.

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?

No guidance is provided on when to use this tool versus alternatives like GetUnitTest or ReadClass. The description does not mention scenarios or prerequisites.

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

GetLocalTypesA

Retrieve local types source code from a class (implementations include). Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
class_nameYesParent class name (e.g., ZCL_MY_CLASS).

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It implies a read operation but does not disclose error handling, prerequisites, or side effects. However, the description is not misleading and does not contradict any annotations (none exist).

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 a single sentence that front-loads the purpose with a clear verb and resource. Every word adds value, with no redundancy or fluff.

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

Completeness3/5

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

The description is adequate for a simple get tool with two parameters, but it lacks explanation of the return format, error cases, or what 'implementations include' means. Without an output schema, an agent might need more context to interpret results.

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%, and the description adds meaningful examples (e.g., 'ZCL_MY_CLASS' for class_name) and contextual explanation for the version parameter ('active' for deployed, 'inactive' for modified). This goes beyond the raw schema definitions.

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 clearly states the action (Retrieve), resource (local types source code from a class), and includes that implementations are included. It distinguishes itself from sibling tools like GetLocalDefinitions or GetLocalMacros by explicitly naming 'local types'.

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 description specifies the tool's purpose but does not provide explicit guidance on when to use it over alternatives. It mentions support for active/inactive versions but lacks when-not-to-use or alternative tool references for similar resources.

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

GetMessageClassA

Retrieve an ABAP message class (MSAG/T100) with its messages: name, description, package, master language and the message list (msgno, msgtext, self-explanatory).

ParametersJSON Schema
NameRequiredDescriptionDefault
message_class_nameYesMessage class name (e.g., ZMY_MSGS).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It lists the returned data but does not disclose side effects, authentication needs, rate limits, or error behavior. Basic read operation implied but not explicitly safe.

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?

Single sentence, front-loaded, no redundancy. Every word is meaningful and efficiently conveys the tool's purpose and output.

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

Completeness3/5

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

For a simple one-parameter tool with no output schema, the description covers the main outputs but lacks details on return format, error conditions, or what happens if the message class is not found. Adequate but not comprehensive.

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% with a well-described parameter (message_class_name). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly states the verb 'Retrieve' and the resource 'ABAP message class (MSAG/T100)' with specific items returned (name, description, package, master language, message list). It distinguishes from siblings like GetMessageClassMessage and CreateMessageClass.

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?

No explicit guidance on when to use this tool versus alternatives such as GetMessageClassMessage or other retrieval tools. The description implies read-only usage but does not state exclusions or prerequisites.

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

GetMessageClassMessageA

Retrieve a single message (by number) from an ABAP message class (MSAG/T100). Returns msgno, msgtext, self-explanatory flag and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
msgnoYesMessage number (e.g., "001").
message_class_nameYesParent message class name (e.g., ZMY_MSGS).

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It lists the return fields but does not disclose side effects (likely none as it is read-only), error behavior (e.g., if message not found), or any authentication or rate limit details. Minimally adequate.

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 a single, clear sentence that front-loads the action. Every word is meaningful, with no fluff or repetition.

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?

Given no output schema, the description provides a list of returned fields (msgno, msgtext, self-explanatory flag, description), which is helpful. However, it does not clarify whether there are additional fields or the exact data types, leaving minor gaps.

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 the description does not need to add parameter details. It does not add meaning beyond the schema's descriptions, which already include examples. Baseline score of 3 is appropriate.

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 clearly states the action ('Retrieve a single message') and the resource ('from an ABAP message class (MSAG/T100)'). It specifies what is returned (msgno, msgtext, self-explanatory flag, description), and the name distinguishes it from siblings like 'GetMessageClass'.

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?

While the name and description imply usage for retrieving a specific message, there is no explicit guidance on when to use this versus alternative tools like 'GetMessageClass' or 'CreateMessageClassMessage'. No exclusion criteria or prerequisites are mentioned.

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

GetMetadataExtensionC

Retrieve ABAP metadata extension definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
metadata_extension_nameYesMetadataExtension name (e.g., Z_MY_METADATAEXTENSION).

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose any behavioral traits such as read-only nature, permissions, or side effects. With no annotations, the description bears full burden but only states it 'retrieves' without confirming non-destructive behavior.

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?

Two concise sentences with no fluff. Could be slightly improved by combining, but overall efficient.

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?

Without an output schema, the description should explain the return value or structure, but it does not. The tool is relatively simple, but the documentation lacks completeness for an agent to understand what it will receive.

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 base score is 3. The description adds minimal value beyond the schema, merely restating that version is supported. No additional parameter context or examples are provided.

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 clearly states the verb 'retrieve' and the resource 'ABAP metadata extension definition', and mentions version support. However, it does not distinguish from the sibling tool 'ReadMetadataExtension', which likely performs a similar function.

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?

No guidelines are provided about when to use this tool versus alternatives like 'ReadMetadataExtension'. The description lacks context on prerequisites or recommended scenarios.

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

GetMetadataExtensionVersionDiffA

[read-only] Compute a unified diff between two CDS metadata extension versions, by their content_uris (taken from GetMetadataExtensionVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetMetadataExtensionVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetMetadataExtensionVersions entry).

TDQS

A4/5.0
Behavior3/5

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

The description includes a [read-only] hint but does not disclose the output format or any side effects. Since annotations are absent, the description carries the burden but provides minimal behavioral context beyond the read-only hint.

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 a single, well-structured sentence that front-loads the read-only hint and conveys all necessary information without unnecessary words. It is appropriately concise.

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?

The description explains the tool's purpose and input source clearly, but it does not describe the output format. Given the output schema is absent and the tool's complexity is moderate, a brief note on the diff output would improve completeness.

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?

With 100% schema coverage, the description adds value by specifying that content_uris come from GetMetadataExtensionVersions entries and labeling them as OLD/base and NEW/compare. This supplements the schema descriptions.

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?

Description clearly specifies the verb 'Compute a unified diff', the resource 'CDS metadata extension versions', and how to specify versions via content_uris from GetMetadataExtensionVersions. It distinguishes from sibling diff tools by being specific to metadata extensions.

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 description implies usage for comparing two metadata extension versions but does not explicitly state when not to use it or mention alternatives. The context is clear but lacks exclusions or comparisons with similar diff tools like GetClassVersionDiff.

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

GetMetadataExtensionVersionsA

[read-only] List the SAP version history of a CDS metadata extension. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetMetadataExtensionVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
metadata_extension_nameYesCDS metadata extension name.

TDQS

A4/5.0
Behavior4/5

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

Explicitly marks as [read-only] and enumerates return fields. No annotations, so description carries full burden. Does not disclose auth/rate limits, but read-only is key behavioral trait.

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?

Single dense sentence with no fluff. Purpose, return fields, and follow-up tool are all included. Highly efficient.

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?

Adequate for a list tool with one parameter and no output schema. Mentions key fields and next step. Missing pagination/ordering details, but not critical.

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% with a single parameter. Description adds no further semantic value beyond the schema's description. Baseline 3 is appropriate.

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?

Clearly states it lists the version history of a CDS metadata extension, specifying the resource and action. Distinguishes from related tools like GetMetadataExtensionVersionDiff and GetMetadataExtensionVersionSource.

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?

Implies a workflow by mentioning content_uri and GetMetadataExtensionVersionSource, but lacks explicit when-to-use/avoid guidance or differentiation from numerous similar sibling tools.

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

GetMetadataExtensionVersionSourceA

[read-only] Fetch the source of a specific CDS metadata extension version by its content_uri (taken from a GetMetadataExtensionVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetMetadataExtensionVersions entry.

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries full burden. It marks the tool as [read-only], but does not describe the return format or any other behavioral traits such as side effects or error conditions.

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 a single sentence, 20 words, front-loaded with the [read-only] hint, and contains no unnecessary information.

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 read-only fetch tool with no output schema, the description references the prerequisite parent tool but does not specify the format of the source returned. Slightly incomplete, but adequate for typical usage.

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?

The only parameter content_uri is fully described in the schema (100% coverage). The description adds no additional meaning beyond restating the schema's description, so baseline of 3 is appropriate.

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 clearly states the tool fetches the source of a CDS metadata extension version using a content_uri, and references the parent tool GetMetadataExtensionVersions. It distinguishes from siblings like GetMetadataExtensionVersions and GetMetadataExtensionVersionDiff.

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 explains that the content_uri comes from a GetMetadataExtensionVersions entry, providing clear prerequisite context. It does not explicitly state when not to use, but the usage intention is well-defined.

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

GetNodeStructureLowA

[low-level] Fetch node structure from ADT repository. Used for object tree navigation and structure discovery. Can use session_id and session_state from GetSession to maintain the same session.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoOptional node ID (default: "0000" for root). Use to fetch child nodes.0000
session_idNoSession ID from GetSession. If not provided, a new session will be created.
parent_nameYesParent object name
parent_typeYesParent object type (e.g., "CLAS/OC", "PROG/P", "DEVC/K")
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.
with_short_descriptionsNoInclude short descriptions in response

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It does not state whether the operation is idempotent, safe, or has side effects. It only implies it is a read operation for navigation, but fails to disclose input validation behavior, error handling, or any restrictions.

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 extremely concise—two sentences, no fluff. The first sentence states the purpose, the second adds session context. Every word adds information, and it is front-loaded with the core action.

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

Completeness3/5

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

Given the tool has 6 parameters including nested objects and no output schema, the description does not explain the relationship between node_id and parent parameters, nor what the return value contains (e.g., child nodes, descriptions, structure). It is adequate for a simple tool but lacks completeness for a low-level navigation tool.

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?

All parameters are described in the input schema (100% coverage), so the baseline is 3. The description adds value by explaining session_id and session_state can be reused from GetSession to maintain the same session, which provides context beyond the schema's 'optional' and 'required' tags.

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 clearly states the tool fetches node structure from ADT repository for object tree navigation and structure discovery. It uses a specific verb ('Fetch') and resource ('node structure from ADT repository'), and the '[low-level]' prefix distinguishes it from higher-level siblings like 'GetObjectStructure'.

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 description mentions using session_id and session_state from GetSession for session reuse, which provides some guidance. However, it does not explicitly state when to use this tool vs alternatives like 'GetObjectStructureLow' or 'GetObjectNodeFromCache', nor does it include when-not-to-use or prerequisite conditions.

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

GetObjectInfoA

[read-only] Return ABAP object tree structure for packages (DEVC), classes (CLAS), programs (PROG), function groups (FUGR), and other objects. Shows root, group nodes, and terminal leaves up to maxDepth. Enrich each node with description and package via SearchObject if enrich=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
enrichNo[read-only] Whether to add description and package via SearchObject (default true)
maxDepthNo[read-only] Maximum tree depth (default depends on type)
parent_nameYes[read-only] Parent object name
parent_typeYes[read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P)

TDQS

A3.7/5.0
Behavior4/5

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

Description explicitly states [read-only], discloses tree depth up to maxDepth, and enrichment behavior via SearchObject. This is good for a read-only tool without annotations. Missing details on default depth per type or error handling.

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?

Three sentences: first states purpose and types, second explains tree structure, third describes enrichment. No redundancy, front-loaded with key information.

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 read-only tree query with no output schema, description covers core behavior (types, tree, enrichment, depth). Lacks return structure details and error handling, but adequate given complexity.

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%, but description adds context: enrichment depends on SearchObject, and depth is constrained. Small inconsistency: schema says maxDepth default=1, description says depends on type.

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?

Description clearly states it returns ABAP object tree structure for specific types (DEVC, CLAS, PROG, FUGR) with root, group nodes, and leaves. It lists types and mentions enrichment, which distinguishes from generic getters, though not explicitly from similar tree tools like GetObjectStructure.

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?

No guidance on when to use this tool versus alternatives like GetObjectStructure or GetClass. The description does not mention when not to use it or provide selection criteria beyond the listed types.

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

GetObjectNodeFromCacheA

[read-only] Returns a node from the in-memory objects list cache by OBJECT_TYPE, OBJECT_NAME, TECH_NAME, and expands OBJECT_URI if present.

ParametersJSON Schema
NameRequiredDescriptionDefault
tech_nameYes[read-only] Technical name
object_nameYes[read-only] Object name
object_typeYes[read-only] Object type

TDQS

A3.7/5.0
Behavior3/5

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

The description reveals it accesses an in-memory cache and is read-only, adding behavioral context beyond the schema. However, it does not disclose what happens if the node is missing, or if expansion always occurs.

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 a single, well-structured sentence that front-loads the read-only status and efficiently conveys the tool's purpose and parameter usage.

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

Completeness3/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 mentions return of a node and URI expansion, but lacks details on the return format, optionality of expansion, or error handling.

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?

The input schema already describes all three parameters with 100% coverage. The description adds value by explaining they are used as lookup keys to retrieve a specific node.

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 clearly states it is a read-only operation that returns a node from a specific cache, using three exact parameters and mentions URI expansion. This distinguishes it from sibling create/update/delete and other get tools.

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 description does not provide any guidance on when to use this tool versus alternatives like other get/read tools. No exclusion criteria or use-case hints are given.

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

GetObjectsByTypeC

[read-only] Retrieves all ABAP objects of a specific type (classes, tables, programs, interfaces, etc.) under a given parent node. Useful for listing all objects of one type within a package or composite object.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo[read-only] Output format: 'raw' or 'parsed'
node_idYes[read-only] Node ID
parent_nameYes[read-only] Parent object name
parent_typeYes[read-only] Parent object type
parent_tech_nameYes[read-only] Parent technical name
with_short_descriptionsNo[read-only] Include short descriptions

TDQS

C2.9/5.0
Behavior2/5

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

Only adds '[read-only]' for behavioral info. No annotations provided, so description carries full burden but fails to disclose other traits like prerequisites, rate limits, or error behavior.

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?

Two concise sentences with no wasted words; front-loaded with read-only tag. Could be more structured (e.g., bullet points for parameters) but efficient for the information given.

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?

With 6 parameters and no output schema, description lacks details on output format, pagination, or parameter constraints. Not complete for an AI agent to confidently invoke without additional context.

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

Parameters2/5

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

Tool description does not explain parameter meanings beyond what the schema provides. Schema descriptions are minimal ('[read-only]' tags) and don't add value, leaving parameters like parent_name and parent_type ambiguous.

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?

Description clearly states it retrieves ABAP objects of a specific type under a parent node, with examples. It differentiates from siblings like GetObjectsList by focusing on type filtering, but could be more precise about the parent node context.

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?

Provides use case guidance ('useful for listing all objects of one type within a package or composite object') but lacks explicit when-not or alternatives among the many sibling Get tools.

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

GetObjectsListA

[read-only] Recursively retrieves all child ABAP repository objects for a given parent — programs (PROG), function groups (FUGR), classes (CLAS), packages (DEVC), and other composite objects — including nested includes and subcomponents.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_nameYes[read-only] Parent object name
parent_typeYes[read-only] Parent object type (e.g. PROG/P, FUGR)
parent_tech_nameYes[read-only] Parent technical name
with_short_descriptionsNo[read-only] Include short descriptions (default: true)

TDQS

A4.2/5.0
Behavior3/5

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

The description labels the tool as '[read-only]' and describes retrieval behavior, but since no annotations exist, it lacks details on side effects, performance, rate limits, or authorization requirements. This is adequate but not comprehensive.

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 a single sentence that is front-loaded with the read-only hint and conveys all key information without extraneous words.

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 listing tool with no output schema, the description indicates the type of content returned (child objects, includes, subcomponents) but does not detail the structure or format. This is sufficient for most use cases but could be more complete.

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% with minimal parameter descriptions. The tool description adds value by explaining the recursive retrieval and listing example object types, providing context beyond the schema's basic field names.

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 clearly states the verb 'retrieves', the resource 'child ABAP repository objects', and specifies recursive behavior including nested includes and subcomponents. It lists object types (PROG, FUGR, CLAS, DEVC) distinguishing it from sibling tools like GetClass or GetFunctionGroup that retrieve single objects.

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 explains the tool's recursive nature and that it retrieves all children, implying use when a full tree is needed. However, it does not explicitly mention alternatives or when not to use it, though the context of siblings provides implicit differentiation.

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

GetObjectStructureB

[read-only] Retrieve ADT object structure as a compact JSON tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectnameYesADT object name (e.g. /CBY/ACQ_DDL)
objecttypeYesADT object type (e.g. DDLS/DF)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses read-only behavior and output format, but lacks details on authorization, caching, error handling, or return structure.

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 a single concise line, front-loaded with the read-only tag, containing no filler words. Perfectly concise for a simple tool.

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?

For a tool with no annotations and many read siblings, the description provides minimal context. Missing details on what 'object structure' entails or how to decide among alternatives.

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 100% with meaningful examples for both parameters. The description does not add parameter semantics beyond the schema, so baseline 3 is appropriate.

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 clearly states the verb 'Retrieve' and resource 'ADT object structure' with output format 'compact JSON tree'. It distinguishes from many siblings but lacks explicit differentiation from the very similar 'GetObjectStructureLow'.

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?

No guidance on when to use this tool versus siblings like GetObjectInfo or GetObjectStructureLow. The '[read-only]' tag implies safety but does not provide usage context.

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

GetObjectStructureLowA

[low-level] Retrieve ADT object structure as compact JSON tree. Returns XML response with object structure tree. Can use session_id and session_state from GetSession to maintain the same session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID from GetSession. If not provided, a new session will be created.
object_nameYesObject name (e.g., "ZMY_CLASS", "ZMY_PROGRAM")
object_typeYesObject type (e.g., "CLAS/OC", "PROG/P", "DEVC/K", "DDLS/DF")
session_stateNoSession state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Describes return as XML response, implying a read operation. Lacks details on error handling, performance implications, or whether it's stateless beyond session hints.

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 sentences, each serving a purpose: purpose, return type, session guidance. Could be slightly tighter by merging first two sentences, but overall efficient.

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?

Despite no output schema, the description inconsistently states 'compact JSON tree' then 'XML response' – a potential source of confusion. Does not explain the structure or contents of the tree, leaving gaps for an AI agent.

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?

Input schema covers 100% of parameters with clear examples and descriptions. The tool description adds minimal extra meaning beyond the schema, so baseline of 3 is appropriate.

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?

Clearly states it retrieves ADT object structure as a compact JSON tree, with a sibling GetObjectStructure suggesting this is a lower-level variant. Verb 'Retrieve' and resource 'ADT object structure' are specific.

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?

Mentions session management with GetSession, providing context for maintaining sessions. However, no explicit guidance on when to use this low-level variant versus GetObjectStructure or alternatives.

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

GetObjectVersionDiffA

[read-only] Compute a unified diff between two object versions. Pass the two opaque content_uris from GetObjectVersions entries; returns the unified diff (jsdiff) of their sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_typeYesObject type (same value used in GetObjectVersions).
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetObjectVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetObjectVersions entry).

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It declares read-only behavior and confirms output type (jsdiff unified diff). No further behavioral details (e.g., permissions, side effects) are disclosed.

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 a single, front-loaded sentence with no unnecessary words. Every element adds value, including the [read-only] tag and the output description.

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?

The description covers inputs, output type, and read-only nature. With no output schema, it adequately explains the return value (unified diff). Minor omission: no example diff format, but sufficient for agent usage.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds meaningful context beyond schema descriptions: it explains where to obtain content_uris and ties object_type enum to GetObjectVersions, enhancing parameter understanding.

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 clearly states the tool computes a unified diff between two object versions, specifying both inputs (content_uris) and output. It distinguishes from type-specific version diff siblings by being generic and accepting an object_type parameter.

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 explicitly instructs to pass content_uris from GetObjectVersions entries, providing clear usage context. It lacks explicit mention of when to use this generic tool vs type-specific alternatives, but the context is sufficient.

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

GetObjectVersionsB

[read-only] List the version history of an ABAP object. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version source via GetObjectVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYesObject name (e.g., ZCL_MY_CLASS, ZIF_MY_INTERFACE, Z_MY_TABLE).
object_typeYesObject type.
function_group_nameNoOwning function group name. Required when object_type is function_module.

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that the tool is read-only and lists the returned fields, including an opaque content_uri. However, it does not explain any limitations (e.g., pagination, version count limits, authorization requirements). Since no annotations are provided, the description carries the full burden, and these gaps reduce transparency.

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 a single sentence, front-loaded with the read-only flag and lists key output fields. It is concise and well-structured, though the sentence is somewhat long and could be split for readability.

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

Completeness3/5

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

No output schema exists, so the description must describe return values. It lists fields (versionId, author, etc.) but omits details like ordering, pagination, or whether all versions are returned. For a list tool, this is adequate but not exhaustive.

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 100%, so each parameter already has a clear description. The tool description adds no additional meaning beyond noting the content_uri field, which is about output rather than parameters. Thus, the description does not significantly enhance parameter understanding.

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 clearly states it lists version history of an ABAP object and enumerates returned fields. It distinguishes from sibling tools like GetObjectVersionSource and GetObjectVersionDiff by focusing on listing versions. However, it does not explicitly mention that it works for all object types defined in the schema, but the schema makes that clear.

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 description marks the tool as '[read-only]' implying safe use, but does not provide explicit guidance on when to use this generic version lister versus the specific version tools for each object type (e.g., GetClassVersions). No exclusion criteria or alternatives are mentioned.

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

GetObjectVersionSourceA

[read-only] Fetch the source code of a specific object version. Pass the opaque content_uri from a GetObjectVersions entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetObjectVersions version entry.
object_typeYesObject type (same value used in GetObjectVersions).

TDQS

A3.9/5.0
Behavior3/5

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

The description includes '[read-only]' tag, indicating no destructive side effects. No annotations are provided, so the description covers the safety profile adequately but could elaborate on return format or permissions.

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?

Extremely concise: one sentence plus a short instruction. No extraneous information; every word adds value.

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

Completeness3/5

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

The description is minimal and sufficient for basic usage, but given no output schema, it could explain what the returned source code contains. However, context signals show no output schema, so it is adequate.

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 100% for both parameters. The description adds the instruction to use content_uri from GetObjectVersions, which is already in the schema description. Since high coverage, a score of 3 is appropriate.

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 clearly states it fetches source code of a specific object version, using a content_uri from GetObjectVersions. The verb 'Fetch' and specific resource 'source code' are well-defined, and it distinguishes from type-specific version source tools by being generic.

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?

Explicitly instructs to pass the content_uri from GetObjectVersions, providing clear usage context. However, it does not mention when not to use or alternative tools, but the instruction is sufficient.

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

GetPackageB

Retrieve ABAP package metadata (description, super-package, etc.). Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
package_nameYesPackage name (e.g., Z_MY_PACKAGE).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions reading and version support but does not explicitly state it is read-only (no modifications) or cover permissions, rate limits, or error conditions. The description is too minimal given the lack of 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 two sentences, front-loading the purpose and adding a key behavioral detail. No extraneous words or redundancy.

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

Completeness3/5

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

The description outlines the basic functionality and hints at return values (description, super-package, etc.). However, it lacks critical context such as required authorizations, error handling, or how the response is structured, especially since no output schema is provided.

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%, and the schema already includes detailed descriptions for both parameters. The description adds little beyond what is in the schema, so it meets the baseline but does not enhance understanding.

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 clearly states the tool retrieves ABAP package metadata, specifying the resource and action. However, it does not differentiate from sibling tools like 'ReadPackage', which likely has overlapping functionality.

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 description provides no guidance on when to use this tool compared to alternatives or when not to use it. It only implies usage by mentioning support for active/inactive versions.

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

GetPackageContentsA

[read-only] Retrieve objects inside an ABAP package as a flat list. Supports recursive traversal of subpackages.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNoMaximum depth for recursive package traversal (default: 5)
package_nameYesName of the ABAP package (e.g., "ZMY_PACKAGE")
include_subpackagesNoInclude contents of subpackages recursively (default: false)
include_descriptionsNoInclude object descriptions in response (default: true)

TDQS

A3.9/5.0
Behavior4/5

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

The description marks the tool as read-only and mentions recursive traversal, adding value beyond the schema. However, it does not disclose return format, potential errors, or limits like default depth, which are partially covered by schema descriptions.

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 two sentences, front-loaded with '[read-only]', and every sentence contributes meaning. It is appropriately sized with no wasted words.

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

Completeness3/5

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

Given no output schema and no annotations, the description is adequate but incomplete. It does not specify what the flat list contains (e.g., object names, types) or any return structure, which is necessary for an agent to understand the output.

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 descriptions cover 100% of parameters, so baseline is 3. The description's mention of 'recursive traversal' echoes the include_subpackages and max_depth parameters but adds no new semantic meaning beyond the schema.

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 clearly states the tool retrieves objects inside an ABAP package as a flat list, with recursive subpackage support. This distinguishes it from sibling tools like GetPackage (package metadata) and GetPackageTree (hierarchical structure).

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 description implies use when a flat list of package objects is needed, but does not explicitly mention when not to use it or compare with alternatives like GetPackageTree or GetObjectInfo. No exclusionary guidance is provided.

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

GetPackageTreeA

[high-level] Retrieve complete package tree structure including subpackages and objects. Returns hierarchical tree with object names, types, and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
debugNoInclude diagnostic metadata in response (counts, types, hierarchy info). Default: false
max_depthNoMaximum depth for recursive package traversal. Default: 5
package_nameYesPackage name (e.g., "ZMY_PACKAGE")
include_subpackagesNoInclude subpackages recursively in the tree. If false, subpackages are shown as first-level objects but not recursively expanded. Default: true
include_descriptionsNoInclude object descriptions in response. Default: true

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It accurately describes the return value (hierarchical tree) and implies a read-only operation, but does not explicitly confirm no side effects or mention permissions. Good transparency for a retrieval 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?

The description is concise with two sentences: one for purpose and one for return details. No wasted words, and it is front-loaded with the high-level action.

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 the complexity (5 parameters, no output schema), the description is too brief. It does not explain the structure of the returned tree, what types of objects are included, or how to interpret the hierarchy. With siblings like GetPackageContents, more differentiation is needed.

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 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not describe how parameters affect the output or provide usage examples. No value added over schema.

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 clearly states the tool retrieves a complete package tree structure including subpackages and objects, returning hierarchical tree with names, types, and descriptions. This is specific and distinct from siblings like GetPackageContents or GetObjectStructureLow.

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 description gives a high-level purpose but no explicit guidance on when to use this tool vs alternatives like GetPackageContents. There is no 'use when' or 'not for' context, and no mention of prerequisites or limitations.

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

GetServiceBindingB

Retrieve ABAP service binding source/metadata by name via ADT Business Services endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoPreferred response format. "json" requests JSON from endpoint, "xml" parses XML payload, "plain" returns raw text.xml
service_binding_nameYesService binding name (for example: ZUI_MY_BINDING). Case-insensitive.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully inform about behavioral traits. However, it only states the retrieval action and endpoint, without disclosing safety (e.g., read-only nature), authentication, or other operational details.

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 a single, well-structured sentence that provides essential information without any unnecessary words or repetition. It is appropriately front-loaded.

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 the lack of output schema and annotations, the description should provide more context about the return value (e.g., what constitutes 'source/metadata') and potential error handling. The description is too minimal for a retrieval 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?

The input schema already documents both parameters well (100% coverage). The description adds no additional parameter context beyond what the schema provides, which is acceptable as the schema is sufficient.

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 clearly states the action ('Retrieve'), the resource ('ABAP service binding source/metadata'), and the method ('by name via ADT Business Services endpoint'). It is specific and informative, making the tool's purpose immediately clear.

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 description does not provide any guidance on when to use this tool versus alternatives, such as 'ReadServiceBinding' or other retrieval tools. No contextual usage hints or exclusions are mentioned.

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

GetServiceDefinitionA

Retrieve ABAP service definition definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
service_definition_nameYesServiceDefinition name (e.g., Z_MY_SERVICEDEFINITION).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It states the tool is read-only ('Retrieve') and handles versions, but doesn't mention authentication, rate limits, or whether it accesses the database or cache. Adequate but minimal.

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?

A single, well-structured sentence that immediately conveys the purpose and key feature. No superfluous words; every clause earns its place.

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?

Despite a simple interface (2 parameters, no output schema), the description fails to explain what the tool returns (e.g., XML structure, fields). The absence of output schema increases the need for descriptive completeness, which is unmet.

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 the baseline is 3. The description adds minimal value beyond the schema—'active' and 'inactive' are already defined as an enum. No extra meaning for 'service_definition_name' is provided.

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 clearly states the action ('Retrieve'), the resource ('ABAP service definition'), and a key differentiator ('Supports reading active or inactive version'). This distinguishes it from similar siblings like 'ReadServiceDefinition' and 'GetServiceBinding'.

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?

No explicit guidance on when to use this tool versus alternatives such as 'ReadServiceDefinition'. The description provides context about version support but lacks exclusions or alternative suggestions.

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

GetSessionA

[read-only] Get a new session ID and current session state (cookies, CSRF token) for reuse across multiple ADT operations. Use this to maintain the same session and lock handle across multiple requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
force_newNoForce creation of a new session even if one exists. Default: false

TDQS

A4.3/5.0
Behavior4/5

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

The description includes '[read-only]' upfront, signaling the tool is non-destructive. It also explains the output includes session ID and state. No annotations are provided, so the description carries the full burden and does so adequately.

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 a single concise sentence front-loaded with '[read-only]'. Every phrase adds value with no redundant information.

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?

For a tool with low complexity (one optional parameter, no output schema), the description fully covers purpose, usage, and behavioral transparency. It even mentions what is returned (session ID, state, cookies, CSRF token), making it complete.

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 100% as the only parameter 'force_new' has a description in the schema. The tool description does not add additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 clearly states the verb 'Get' and the resource 'Session', specifying it retrieves a new session ID and current session state (cookies, CSRF token). It distinguishes itself from sibling 'Get*' tools by being the only session-related tool.

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 explicitly says 'Use this to maintain the same session and lock handle across multiple requests,' giving clear context for when to use it. It implies it should be called before other ADT operations but does not explicitly state when not to use or provide alternative tools.

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

GetSqlQueryA

[read-only] Execute ABAP SQL SELECT queries on database tables and CDS views via SAP ADT Data Preview API. Use for ad-hoc data retrieval, row counts, and filtered queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
sql_queryYesSQL query to execute
row_numberNo[read-only] Maximum number of rows to return

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It flags the tool as [read-only] and specifies execution via SAP ADT Data Preview API, which implies safe read operations. However, it does not disclose potential error handling, performance limits, or response format.

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 extremely concise (two effective parts) and front-loaded with the read-only annotation. Every sentence adds value without redundancy.

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 simple query tool with two parameters and no output schema, the description covers purpose, usage, and safety. It could be enhanced by mentioning the return type (table data), but it remains fairly complete.

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 the description's contribution is minimal. It adds context like 'row counts' and 'filtered queries' but does not clarify parameter syntax or constraints beyond the schema.

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 clearly states the tool executes ABAP SQL SELECT queries on database tables and CDS views, with specific use cases (ad-hoc retrieval, row counts, filtered queries). It is distinct from sibling tools focused on activations, deletions, or full table content retrieval.

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 provides context on when to use the tool ('ad-hoc data retrieval, row counts, filtered queries') but does not explicitly exclude use cases or mention alternative sibling tools. This is a minor gap.

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

GetStructureB

Retrieve ABAP structure definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
structure_nameYesStructure name (e.g., Z_MY_STRUCTURE).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states 'Retrieve' without disclosing any behavioral traits such as error handling, authentication requirements, or side effects. Minimal disclosure.

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?

Extremely concise single sentence with no wasted words. Front-loaded with the verb and resource. Perfectly sized for the simple operation.

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

Completeness3/5

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

For a simple retrieval tool with comprehensive schema, the description is adequate but lacks context about the structure definition contents or prerequisites. Does not explain what the tool returns or any differences from similar siblings.

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 covers 100% of parameters with descriptions. The description adds little beyond what the schema already provides (e.g., 'active or inactive version' mirrors the enum). Baseline 3 is appropriate.

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?

Description clearly states 'Retrieve ABAP structure definition' with verb and resource. Mention of version support adds specificity. However, it does not differentiate from the sibling tool 'ReadStructure', which might perform a similar function.

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?

No explicit guidance on when to use this tool versus alternatives like ReadStructure. The description does not include usage context, prerequisites, or when not to use it.

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

GetStructuresListA

[read-only] Recursively list the structures embedded in an ABAP structure (.INCLUDE / append), as a tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNo[read-only] Timeout in ms for each ADT request.
versionNoVersion to read: "active" (default) or "inactive".active
structure_nameYesStructure name (e.g., Z_MY_STRUCTURE).
include_extensionsNo[read-only] Also find extension (append) structures via where-used (objects that `extend type <this> with …`). Default true. Set false to skip the (slower) where-used lookups and return includes only.

TDQS

A3.7/5.0
Behavior4/5

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

The description highlights the key behavioral trait 'read-only' and mentions recursion and tree output. It also notes in the schema that include_extensions uses slower where-used lookups. However, with no annotations provided, it does not fully disclose authorization needs or rate limits.

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?

Single sentence that conveys essential information without any extraneous text. The '[read-only]' prefix effectively front-loads the most critical behavioral note.

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

Completeness3/5

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

The tool has 4 parameters and no output schema. The description explains the purpose but does not detail the return format beyond 'as a tree', nor does it cover error conditions or edge cases. More specificity about the tree structure would improve completeness.

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% with all parameters well-described. The description adds overall context (recursive tree listing) but does not provide additional semantics beyond the schema's per-parameter descriptions. Baseline score of 3 is appropriate.

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 clearly specifies the action (recursively list) and the resource (structures embedded in an ABAP structure via INCLUDE/append), and indicates the output format (as a tree). This distinguishes it from siblings like GetStructure (single) or GetIncludesList (flat list).

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?

No explicit guidance on when to use this tool versus alternatives. The '[read-only]' hint is present but does not help the agent decide between this and other list/describe tools. Siblings like GetIncludesList and GetObjectStructure are not mentioned.

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

GetStructureVersionDiffA

[read-only] Compute a unified diff between two ABAP structure versions, by their content_uris (taken from GetStructureVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetStructureVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetStructureVersions entry).

TDQS

A4/5.0
Behavior3/5

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

Marked as [read-only], which is appropriate. No annotations provided, so description carries burden. It does not disclose auth needs, rate limits, or any side effects beyond read-only nature. Acceptable but minimal.

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?

Single sentence with [read-only] tag. Every word earns its place. Front-loaded with key info.

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?

Simple tool with 2 params, no output schema. Description conveys essential info. Could mention output format (unified diff) but not critical given common understanding.

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?

Both parameters have clear descriptions in schema, and description adds context about being from GetStructureVersions entries. 100% schema coverage plus extra context. Description adds value beyond schema.

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?

Description clearly states the verb 'Compute' and resource 'unified diff between two ABAP structure versions', with clear input sources ('content_uris taken from GetStructureVersions entries'). It distinguishes from sibling tools like GetStructureVersions.

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?

No explicit when-to-use or when-not-to-use guidance. The description mentions input source (GetStructureVersions), but does not compare with sibling diff tools or provide alternatives. Adequate but lacks formal guidelines.

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

GetStructureVersionsA

[read-only] List the SAP version history of a ABAP structure. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetStructureVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
structure_nameYesABAP structure name.

TDQS

A4/5.0
Behavior3/5

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

The description explicitly marks the tool as read-only with '[read-only]' and describes the returned fields. Since annotations are absent, the description carries full burden but lacks details on error handling, permissions, or pagination. It adds value beyond a minimal definition but is not exhaustive.

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 two sentences, well-structured, and front-loaded with '[read-only].' Every sentence provides essential information without redundancy.

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?

The description explains what the tool returns (version list with specific fields) and mentions the content_uri for source retrieval. It does not cover ordering or pagination, but given the simple read operation and absence of output schema, it is mostly complete.

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?

The sole parameter 'structure_name' is documented in the schema with 'ABAP structure name.' The description does not add additional meaning beyond that. With 100% schema description coverage, the baseline is 3.

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 clearly states the tool's action: 'List the SAP version history of a ABAP structure.' It specifies the resource (ABAP structure) and what is returned (version list with fields). It distinguishes from sibling tools like GetStructureVersionDiff and GetStructureVersionSource by noting the content_uri for fetching source via a separate tool.

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 provides clear context for when to use this tool (to list versions) and implicitly points to GetStructureVersionSource for fetching source content. However, it does not explicitly mention when not to use it or list alternatives like GetStructureVersionDiff for diffing versions.

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

GetStructureVersionSourceA

[read-only] Fetch the source of a specific ABAP structure version by its content_uri (taken from a GetStructureVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetStructureVersions entry.

TDQS

A4.4/5.0
Behavior4/5

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

The description includes '[read-only]' tag upfront, disclosing the non-destructive nature. With no annotations, it effectively communicates the safe read behavior, though it does not detail return format or potential errors.

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?

Single sentence with 15 words, front-loaded with the [read-only] tag. No wasted words; every part earns its place.

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 simple one-parameter read-only tool with full schema coverage, the description adequately explains what it does and the input source. It does not describe the output, but given no output schema, that is a minor gap.

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%. The description adds value by clarifying the parameter is 'opaque' and linking it to a GetStructureVersions entry, going beyond the schema's 'Opaque content_uri' description. This provides practical usage context.

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 clearly states the verb 'Fetch' and the resource 'source of a specific ABAP structure version', specifying the input 'content_uri' from a prior call. It distinguishes itself from sibling tools like GetStructureVersionDiff and GetStructureVersions.

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 explicitly instructs to take the content_uri from a GetStructureVersions entry, providing clear prerequisite context. It does not explicitly mention when not to use, but the requirement of a prior call implicitly limits usage.

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

GetTableA

Retrieve ABAP table definition. Supports reading active or inactive version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) for deployed version, "inactive" for modified but not activated version.active
table_nameYesTable name (e.g., Z_MY_TABLE).

TDQS

A3.7/5.0
Behavior4/5

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

Without annotations, the description carries the full burden of behavioral disclosure. The verb 'Retrieve' clearly indicates a read-only operation with no side effects, which is sufficient. Additionally, it specifies support for reading both active and inactive versions, adding useful behavioral context.

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 a single, concise sentence that front-loads the core purpose. It contains zero superfluous words and efficiently communicates the tool's function.

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

Completeness3/5

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

Given the tool has no output schema, the description could have explained what the returned table definition includes (e.g., fields, keys, metadata). It also lacks information on error conditions or required authorizations. However, for a simple retrieval tool, the description is minimally adequate.

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?

The input schema has 100% parameter description coverage, so the schema already explains both parameters (table_name and version) in detail. The description merely echoes 'active or inactive version' without adding new meaning or constraints, so it meets the baseline but does not exceed it.

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 clearly states the action ('Retrieve') and the resource ('ABAP table definition'), and distinguishes from siblings like GetTableContents (contents) and GetStructure by specifying it's about the table definition itself. The mention of active/inactive version further narrows the purpose.

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 description provides no guidance on when to use this tool versus alternatives like ReadTable or GetStructure. It does not specify prerequisites, context, or when not to use it, leaving the agent to infer usage from the name alone.

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

GetTableContentsA

[read-only] Retrieve contents (data preview) of an ABAP database table or CDS view. Returns rows of data like SE16/SE16N.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_rowsNoMaximum number of rows to retrieve
table_nameYesName of the ABAP table

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It correctly discloses that the tool is read-only via '[read-only]'. It implies the tool returns rows of data. However, it does not discuss other behavioral traits like pagination, performance implications, or error handling. The disclosure is sufficient but minimal.

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 a single, front-loaded sentence with a parenthetical analogy. Every word is necessary: '[read-only]' signals safety, 'Retrieve contents (data preview) of an ABAP database table or CDS view' states purpose and scope, and 'Returns rows of data like SE16/SE16N' clarifies output. No wasted words; highly concise.

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 simple tool with 2 parameters and no output schema, the description is largely complete. It conveys the core function, read-only nature, and return type via analogy. However, it could be more explicit about the return format (e.g., column details) given the absence of an output schema. Still, the analogy provides enough context for an agent to infer tabular data.

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 100%, so the schema already fully describes the parameters (table_name: 'Name of the ABAP table', max_rows: 'Maximum number of rows to retrieve'). The description adds minimal extra meaning by specifying 'ABAP database table or CDS view', slightly broadening the schema's 'ABAP table'. Overall, the description provides little additional value beyond the schema.

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 explicitly states the action 'Retrieve contents (data preview)' and the resource 'ABAP database table or CDS view'. It compares to SE16/SE16N, common ABAP data browsers, which clearly distinguishes it from sibling tools like 'GetTable' (metadata) or 'GetView' (metadata). The purpose is specific and unambiguous.

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 description indicates read-only usage with '[read-only]' and provides a real-world analogy (SE16/SE16N). However, it does not explicitly state when to use this tool versus other siblings (e.g., GetTable for structure) or when not to use it. The guidance is implied but not explicit, so it is adequate but not outstanding.

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

GetTableVersionDiffA

[read-only] Compute a unified diff between two ABAP table versions, by their content_uris (taken from GetTableVersions entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uri_toYesOpaque content_uri of the NEW/compare version (from a GetTableVersions entry).
content_uri_fromYesOpaque content_uri of the OLD/base version (from a GetTableVersions entry).

TDQS

A3.7/5.0
Behavior3/5

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

The description includes a '[read-only]' tag, indicating no state modifications, which is a key behavioral trait. However, it lacks details on output format, error handling, or what happens with invalid URIs. With no annotations, the description provides minimal behavioral context beyond the read-only hint.

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 a single, front-loaded sentence with essential information. No unnecessary words, and the read-only hint is placed first for quick scanning.

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

Completeness3/5

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

While the description covers purpose and input source, it does not describe the output format (e.g., unified diff string) or any limitations. Given the simplicity of the tool and absence of an output schema, more detail on the return value would improve completeness.

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?

The input schema already covers both parameters with descriptions that mention they come from GetTableVersions entries (100% coverage). The tool description's mention of GetTableVersions is redundant, adding no new semantic meaning beyond the schema.

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 clearly states the tool computes a unified diff between two ABAP table versions using content_uris. It specifies the resource (table versions) and verb (compute), and the mention of GetTableVersions distinguishes it from similar diff tools for other objects.

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 description implies the tool should be used after retrieving content_uris from GetTableVersions, but it does not explicitly state when to use this tool over alternatives or provide exclusion criteria. Usage guidance is only implicitly provided.

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

GetTableVersionsA

[read-only] List the SAP version history of a ABAP table. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and an opaque content_uri to fetch that version's source via GetTableVersionSource.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesABAP table name.

TDQS

A4/5.0
Behavior4/5

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

The description starts with '[read-only]', clearly indicating it's a non-destructive read operation. It lists the exact return fields and notes that the content_uri is opaque, which helps manage expectations. However, it does not mention error conditions, permissions, or ordering, leaving some gaps.

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 concise: a one-sentence purpose statement followed by a sentence enumerating return fields. Both sentences provide essential information without unnecessary fluff.

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?

The description covers the tool's purpose, return fields, and links to a related tool. It does not discuss ordering, limits, or error handling, but for a simple listing operation it is largely adequate.

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?

The schema already fully describes the single parameter 'table_name' with the description 'ABAP table name.' The description does not add additional semantics beyond that, but given 100% schema coverage, a score of 3 is appropriate.

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 clearly states the verb (List), resource (SAP version history of an ABAP table), and distinguishes from sibling version tools by specifying 'table'. It also mentions the specific return fields, including the opaque content_uri linking to GetTableVersionSource, further clarifying its role.

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 description does not explicitly state when to use this tool over its siblings (like GetTableVersionDiff or GetTableVersionSource). While it implies usage when needing a list of versions, it could provide more guidance on alternatives and exclusions.

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

GetTableVersionSourceA

[read-only] Fetch the source of a specific ABAP table version by its content_uri (taken from a GetTableVersions entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
content_uriYesOpaque content_uri taken from a GetTableVersions entry.

TDQS

A4.2/5.0
Behavior4/5

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

Opens with '[read-only]' explicitly marking the operation as safe and non-destructive. With no annotations provided, the description carries the full burden and adequately signals no side effects beyond fetching data.

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?

Single sentence, front-loaded with critical '[read-only]' marker, every word adds value. No fluff or repetition.

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?

Adequate for a read-only fetch tool with one parameter. Lacks description of return format (e.g., 'returns the source code as a string'), but this is consistent with other Get*VersionSource siblings and does not hinder correct invocation.

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% with description already explaining the parameter as 'Opaque content_uri taken from a GetTableVersions entry.' The tool description repeats this but adds no new meaning beyond what the schema provides. Baseline 3 is appropriate.

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?

Explicit verb 'fetch', resource 'source of a specific ABAP table version', and method 'by its content_uri (taken from a GetTableVersions entry)'. Clearly distinguishes from sibling Get*VersionSource tools which target different resource types.

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?

States prerequisite: 'taken from a GetTableVersions entry', indicating when to invoke. Does not explicitly state when not to use or mention alternatives, but the sibling context implies this is the correct tool for retrieving a table version's source after obtaining its content_uri.

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

GetTransactionA

[read-only] Retrieve ABAP transaction (t-code) details — program, screen, authorization object, and transaction type (dialog, report, OO).

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_nameYesName of the ABAP transaction

TDQS

A4/5.0
Behavior4/5

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

Description starts with '[read-only]' indicating non-destructive behavior. It lists exactly what details are retrieved (program, screen, etc.), providing clear behavioral insight beyond the schema.

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?

Single, front-loaded sentence with no redundant words. Efficiently conveys purpose and scope.

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?

Tool has one required parameter and no output schema; description covers the returned details sufficiently. Lacks mention of error conditions or authorization, but adequate for its simplicity.

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% with one parameter ('transaction_name') described adequately. The description adds no extra meaning beyond the schema, meeting baseline expectation.

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 clearly states 'Retrieve ABAP transaction (t-code) details' with specific attributes (program, screen, authorization object, transaction type). It distinguishes itself from sibling tools by targeting transactions uniquely.

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 description implies usage for retrieving transaction details but lacks explicit guidance on when to use this tool versus alternatives. No when-not or alternatives mentioned.

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

GetTransportA

[read-only] Retrieve ABAP transport request information including metadata, included objects, and status from SAP system.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_tasksNoInclude list of tasks in transport (default: true)
include_objectsNoInclude list of objects in transport (default: true)
transport_numberYesTransport request number (e.g., E19K905635, DEVK905123)

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It declares read-only behavior via '[read-only]', which is valuable. However, it does not disclose other traits like required authorizations, rate limits, or what happens if transport_number is invalid. Basic transparency is achieved but not exhaustive.

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?

Single sentence, front-loaded with key behavioral hint '[read-only]'. Every word contributes meaning without redundancy. Highly efficient and clear.

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, but description adequately conveys what the tool returns (metadata, objects, status). It covers the essential aspects for an agent to understand the purpose. Could be slightly improved by noting that it returns full transport details or listing example returned fields, but sufficient for correct invocation.

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?

Input schema provides 100% coverage with clear descriptions for all three parameters (transport_number, include_objects, include_tasks). The description does not add any additional semantic value beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly specifies the action (Retrieve), resource (ABAP transport request), and scope (including metadata, objects, status). Distinguishes itself from sibling tools like CreateTransport, ListTransports, and DeleteTransport by focusing on retrieval.

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?

Starts with '[read-only]' indicating it is for querying only, which helps set context. However, it does not explicitly mention when to use this over alternate retrieval tools like ListTransports, nor does it mention when not to use it. Lacks explicit alternatives or exclusion criteria.

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

GetTypeInfoA

[read-only] Retrieve ABAP type information for domains (DOMA), data elements (DTEL), table types, and structures. Returns field definitions, value ranges, fixed values, and DDIC metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
type_nameYesName of the ABAP type
include_structure_fallbackNoWhen true (default), tries DDIC structure lookup only if type lookup returns 404/empty.

TDQS

A4/5.0
Behavior3/5

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

The description labels the operation as '[read-only]' and states what is returned, but omits details like error behavior (e.g., on invalid type_name), permissions needed, or potential performance considerations. Since no annotations are provided, the description carries the full burden but leaves gaps.

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 a single sentence that is front-loaded with '[read-only]' and efficiently communicates purpose, scope, and output with no extraneous words.

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 simple retrieval tool with 2 parameters and no output schema, the description sufficiently covers what the tool does and returns. It lacks explicit instructions for error conditions or system prerequisites, but overall it is adequate.

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?

Both parameters have schema descriptions (100% coverage). The tool description adds value by listing supported types for 'type_name' (DOMA, DTEL, etc.) and clarifying the fallback behavior of 'include_structure_fallback', enriching the schema's meaning.

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 starts with '[read-only]' and clearly states it retrieves ABAP type information for specific object types (DOMA, DTEL, table types, structures) and lists the returned data (field definitions, value ranges, fixed values, DDIC metadata). This distinguishes it from sibling tools that perform other operations.

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 description enumerates supported types (domains, data elements, etc.) implying when to use this tool, but it does not explicitly contrast with other 'Get' sibling tools like GetDataElement or GetDomain, nor does it state when to prefer this over those.

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

GetUnitTestA

Retrieve ABAP Unit test run status and result for a previously started run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by RunUnitTest.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states 'Retrieve', indicating a read-only operation, but does not disclose authentication needs, rate limits, or potential side effects. The tool is simple and non-destructive, so the description is adequate but not rich.

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 a single sentence of 13 words, with no wasted phrases. It is front-loaded with the key action and resource.

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

Completeness3/5

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

For a simple one-parameter retrieval tool with no output schema, the description is adequate but could be more complete by noting that it returns both status and result details. Sibling tools exist (GetUnitTestResult, GetUnitTestStatus), so the combination is clear.

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 the baseline is 3. The description adds no meaning beyond the schema; it only restates the run_id context. No additional constraints or formatting hints are provided.

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 clearly states the verb 'Retrieve' and the resource 'ABAP Unit test run status and result', and specifies it is for a previously started run_id. This distinguishes it from siblings like RunUnitTest (which starts tests) and GetUnitTestResult/GetUnitTestStatus (which retrieve only result or status).

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 description implies use after RunUnitTest ('previously started run_id') but provides no explicit guidance on when to use this tool vs. alternatives like GetUnitTestResult or GetUnitTestStatus. No exclusions or prerequisites are stated.

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

GetUnitTestResultB

Retrieve ABAP Unit test run result for a run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoResult format: abapunit or junit.
run_idYesRun identifier returned by unit test run.
with_navigation_urisNoInclude navigation URIs in result if supported.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Retrieve' (a read operation) but does not mention idempotency, error handling, or other behaviors, leaving the agent with minimal information.

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 a single concise sentence of only 8 words, with no wasted text, and front-loads the core purpose effectively.

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 output schema, the description should indicate what the result contains (e.g., test details) or its dependency on RunUnitTest. It is too minimal to fully inform the agent about the tool's context and output.

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% and each parameter has a clear description in the schema. The tool description adds no additional semantic value beyond the schema, aligning with the baseline score of 3.

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 clearly states the verb 'Retrieve', the resource 'ABAP Unit test run result', and the key identifier 'run_id', which distinguishes it from siblings like GetUnitTest and GetUnitTestStatus.

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 description does not explicitly provide when-to-use or when-not-to-use guidance relative to sibling tools such as RunUnitTest or GetCdsUnitTestResult. It implies usage but lacks explicit context or prerequisites.

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

GetUnitTestStatusB

Retrieve ABAP Unit test run status for a run_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by unit test run.
with_long_pollingNoEnable long polling while waiting for status.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so description must disclose behavior. It does not mention read-only nature, side effects, auth requirements, or long-polling behavior (despite with_long_polling parameter).

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?

Single sentence is concise and front-loaded with the core action. However, it could include more detail without harming conciseness.

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?

Minimal description for a tool with no output schema and two parameters. Does not explain status return format, long-polling details, or typical usage scenarios.

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 parameters are already described. The description adds no extra meaning beyond 'for a run_id', which is already in schema.

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 uses the specific verb 'Retrieve' and resource 'ABAP Unit test run status', clearly distinguishing from siblings like GetUnitTest and GetUnitTestResult.

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?

No guidance on when to use this tool versus alternatives like GetUnitTestResult or GetCdsUnitTestStatus. No exclusions or context provided.

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

GetVirtualFoldersLowA

[low-level] Retrieve hierarchical virtual folder contents from ADT information system. Used for browsing ABAP objects by package, group, type, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
facet_orderNoOrder of facets in response (e.g., ["package", "group", "type"]). Default: ["package", "group", "type"]
preselectionNoOptional preselection filters (facet-value pairs for filtering)
with_versionsNoInclude version information in response
object_search_patternNoObject search pattern (e.g., "*", "Z*", "ZCL_*"). Default: "*"*
ignore_short_descriptionsNoIgnore short descriptions in response

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states retrieval without mentioning side effects, permissions, pagination, or return structure. This is insufficient for an agent to understand the tool's behavior.

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?

Description is a single, front-loaded sentence that efficiently conveys the tool's purpose without unnecessary words. It is appropriately sized.

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

Completeness3/5

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

Given the lack of output schema and annotations, the description should provide more context about the response structure and usage. It suffices for basic understanding but is not fully complete for a low-level browsing tool with 5 parameters.

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% with clear parameter descriptions. The tool description adds minimal extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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?

Description clearly states the verb 'Retrieve' and the resource 'hierarchical virtual folder contents,' and distinguishes from siblings via '[low-level]' and 'browsing' context. It is specific and unambiguous.

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?

Description mentions 'Used for browsing ABAP objects by package, group, type, etc.' but does not explicitly indicate when to avoid this tool or recommend alternatives. With many specific getter siblings, more guidance would be helpful.

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

GetWhereUsedA

[read-only] Search where-used references — find all objects that reference or depend on a given ABAP object. Answers: "where is X used", "who calls X", "what depends on X", "show usages of X". Returns referencing objects with types and packages. Supports a fixed set of object types (see object_type). Object types outside the supported list (e.g. RAP behavior definitions, service definitions/bindings, BAdI, search helps, message classes, classic DDIC views) are NOT supported and will fail.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameYesName of the ABAP object. For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name).
object_typeYesType of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function' / 'functiongroup' / 'fugr' (function group), 'functionmodule' / 'function_module' / 'fugr/ff' (function module — see object_name format), 'package' / 'devc/k', 'table' / 'tabl/dt', 'structure' / 'stru/dt', 'domain' / 'doma/dd', 'dataelement' / 'dtel', 'view' / 'ddls/df' (CDS DDL source only — classic DDIC views are not supported). Any other value throws 'Unsupported object type'.
disable_typesNoRemove these ADT object types from the default scope, keeping the rest (e.g. ['CLAS/OC'] to drop class usages). Applied on top of the default scope or of enable_only_types/enable_all_types.
enable_all_typesNoIf true, expands the scope to all available object types (Eclipse 'select all' behavior) by flipping every isSelected flag in the scope XML. Default: false (SAP default scope). Note: on large systems this can make the search significantly slower.
enable_only_typesNoRestrict the search to ONLY these ADT object types (e.g. ['TABL/DS','TABL/DT'] for structures, ['DDLS/DF'] for CDS sources). SAP applies the selection server-side, so unwanted types (e.g. hundreds of CLAS/OC) are never searched nor returned — use this instead of enable_all_types to avoid huge result sets. Values must be object-type codes from THIS object's where-used scope (the searchable categories, e.g. 'CLAS/OC','INTF/OI','FUGR/FF','DDLS/DF', not result-row codes like 'FUGR/F'). If any value is not searchable for the object the call returns an error listing the supported types — it never falls back to the unfiltered default set. Takes precedence over enable_all_types.

TDQS

A3.9/5.0
Behavior3/5

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

The description notes '[read-only]' to indicate non-destructive behavior and warns that unsupported object types will fail. However, it does not disclose potential performance impacts, authorization requirements, or rate limits. With no annotations, these gaps reduce transparency.

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 concise at two sentences plus a warning, front-loading the key purpose and usage. Every sentence adds value without redundancy or fluff.

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

Completeness3/5

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

The description covers core purpose, return data, and unsupported types, but lacks details on result handling like pagination, result limits, or handling of ambiguous names. For a search tool that may return large sets, this is a notable omission.

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% with detailed parameter descriptions. The main description adds context by noting that unsupported object types will fail, but does not add new meaning beyond the schema for parameters like disable_types or enable_all_types.

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 clearly states the tool is for searching where-used references, using specific verbs 'Search' and 'find'. It explicitly answers common questions like 'where is X used' and distinguishes from sibling tools by focusing on dependency analysis, not general object search or CRUD operations.

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 provides clear examples of when to use (e.g., 'who calls X') but does not explicitly state when not to use or list alternatives like SearchObject, which could be used for simple name-based searches.

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

ListFunctionGroupIncludesB

[read-only] List the includes (TOP, custom) of an ABAP function group.

ParametersJSON Schema
NameRequiredDescriptionDefault
function_group_nameYesFunction group name (e.g., Z_MY_FG).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only mentions '[read-only]' and the resource type, omitting details about side effects, authorization requirements, rate limits, pagination, or return behavior. This minimal information leaves the AI agent uncertain about safety and constraints.

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 concise—a single sentence with a useful '[read-only]' prefix. Every part contributes meaning, but it could be slightly more structured (e.g., separated info) without losing brevity. It is well front-loaded with the read-only indication.

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 the tool's simplicity (one parameter, no output schema), the description is incomplete. It fails to explain what the returned includes look like (e.g., names, metadata), whether the list is exhaustive, or how it handles empty groups. The sibling context suggests similar tools, but this description lacks closure for an agent deciding on usage.

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?

The input schema covers 100% of the single parameter with a description ('Function group name (e.g., Z_MY_FG).'), so the baseline is 3. The description adds no extra meaning beyond the schema, as it does not elaborate on format, character restrictions, or behavior when the group does not exist.

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 explicitly states the verb 'List' and the resource 'includes (TOP, custom) of an ABAP function group', which is specific and distinguishes from sibling tools like 'ListFunctionModules' (lists modules) and 'GetFunctionGroup' (gets function group details). The read-only tag further clarifies the operation type.

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 description provides no guidance on when to use this tool versus alternatives such as 'GetIncludesList' or other list tools. It does not specify prerequisites, limitations, or scoping advice like when to use this over a similar tool. The only hint is '[read-only]', which is insufficient for decision-making.

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

ListFunctionModulesB

[read-only] List the function modules of an ABAP function group.

ParametersJSON Schema
NameRequiredDescriptionDefault
function_group_nameYesFunction group name (e.g., Z_MY_FG).

TDQS

B3.4/5.0
Behavior2/5

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

Without annotations, the description carries the burden. It states '[read-only]' implying safe reading, but no details on required permissions, pagination, or potential performance impact. Minimal disclosure beyond basic safety.

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?

Single sentence efficiently conveys the purpose and read-only nature. No filler. Well-structured for quick understanding.

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 simple listing tool with one parameter, the description is adequate. It does not describe output format, but given the tool's clarity and no output schema, it is mostly complete. Slight gap in not mentioning what the list contains (e.g., names only).

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% as the only parameter is described. The description adds no further meaning to the parameter beyond what the schema provides, so baseline 3 is appropriate.

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 clearly states the tool's purpose: listing function modules of an ABAP function group. The verb 'List' and resource 'function modules' are specific. It distinguishes from sibling tools like ListFunctionGroupIncludes (lists includes) and GetFunctionModule (gets a specific module).

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?

No guidance on when to use this tool versus alternatives. The description only notes it is read-only but does not specify context, prerequisites, or compare with siblings like GetFunctionModule or ListFunctionGroupIncludes.

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

ListServiceBindingTypesA

List available service binding types (for example ODataV2/ODataV4) from ADT Business Services endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoxml

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It specifies the source endpoint but does not disclose behavioral traits such as whether listing is read-only, rate limits, or authentication needs. It minimally conveys a non-destructive list operation.

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?

Single sentence that efficiently conveys the tool's purpose. No wasted words; all content earns its place.

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?

Given the tool's simplicity (one optional parameter, no output schema), the description provides adequate context: what it does, examples, and source. It is complete for an agent to understand its role among many sibling tools.

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

Parameters2/5

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

The only parameter (response_format) is fully defined by the schema with an enum, but the description adds no information about its purpose or usage. With 0% schema description coverage, the description should have compensated, but it does not mention the parameter at all.

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?

Description clearly states the tool lists available service binding types with concrete examples (ODataV2/ODataV4) and specifies the source ('ADT Business Services endpoint'), distinguishing it from siblings like GetServiceBinding or ValidateServiceBinding.

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?

No explicit guidance on when to use this tool versus alternatives. The description implies it's for listing types, but does not mention exclusions or alternative tools for other actions, leaving the agent to infer usage.

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

ListTransportsB

[read-only] List transport requests for the current or specified user. Returns modifiable and/or released workbench and customizing requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoSAP user name. If not provided, returns transports for the current user.
modifiable_onlyNoOnly return modifiable (not yet released) transports. Default: true.

TDQS

B3.3/5.0
Behavior2/5

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

The description includes a '[read-only]' hint indicating non-destructive behavior, but no annotations are provided to reinforce this. It lacks details on response format, pagination, authentication, rate limits, or error handling. The description carries the full behavioral burden and does not fully disclose traits.

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 a single, concise sentence with no unnecessary words. It front-loads the read-only hint and efficiently conveys the core purpose and scope.

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

Completeness3/5

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

Given low complexity, full schema coverage, and no output schema, the description is adequate but could be improved by mentioning the return structure or fields. It tells what the tool returns (transport requests) but not their attributes.

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% and both parameters are described in the schema. The description adds marginal value by linking the returned transports (modifiable/released) to the modifiable_only parameter, but does not provide new meaning 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?

The description clearly states the verb (list) and resource (transport requests) and specifies scope (for current or specified user, modifiable/released, workbench/customizing). It distinguishes well from sibling create/update/delete tools but does not explicitly differentiate from other list tools like GetTransport.

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?

Implied usage context (listing transports for a user) but no explicit when-to-use vs alternatives. No guidance on when not to use this tool or mention of sibling tools like GetTransport.

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

ReadFunctionIncludeA

[read-only] Read ABAP function group include source code and metadata. Answers: "show function group include code", "display include source", "view include of function group". Returns source code and include metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to read: "active" (default) or "inactive".active
include_nameYesInclude name (e.g., LZ_MY_FGTOP, LZ_MY_FGU01).
function_group_nameYesFunction group name containing the include (e.g., Z_MY_FG).

TDQS

A3.9/5.0
Behavior3/5

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

The description includes a '[read-only]' tag and states it returns source code and metadata, signaling a safe read operation. However, with no annotations, it fails to disclose potential error conditions, size limits, or permission requirements, leaving some behavioral gaps.

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 two sentences with no wasted words. The first sentence front-loads the core purpose and read-only hint; the second provides concrete usage examples. Every sentence adds value.

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

Completeness3/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 mentions returning 'source code and include metadata' but lacks specifics on the metadata structure or response format. Version parameter implications are covered in schema, but overall completeness is adequate but not detailed.

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 100%, so the schema already describes all three parameters (function_group_name, include_name, version). The description adds no additional parameter meaning beyond what the schema provides, achieving the baseline of 3.

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 clearly states the tool reads ABAP function group include source code and metadata, using specific verbs like 'read' and provides example queries (e.g., 'show function group include code'). It distinguishes from sibling tools like ListFunctionGroupIncludes (which lists includes) and GetInclude (generic include) by focusing on function group includes specifically.

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 implies usage through example queries ('show function group include code') but does not explicitly state when not to use the tool or mention alternatives. It provides clear context for when to invoke, lacking only exclusions.

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

RuntimeAnalyzeProfilerTraceB

[runtime] Read profiler trace view and return compact analysis summary (totals + top entries).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoNumber of top rows for summary. Default: 10.
viewNohitlist
trace_id_or_uriYesProfiler trace ID or full trace URI.
with_system_eventsNoInclude system events.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description states 'Read' implying read-only, but does not disclose side effects, permissions required, or error behavior (e.g., when trace not found). It mentions 'compact analysis summary' but does not specify format or pagination.

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?

Single sentence with key information front-loaded: purpose, action, and output type. No extraneous words. Every part earns its place.

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

Completeness3/5

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

Given the tool's complexity (4 parameters, no output schema, no annotations), the description provides a high-level purpose but lacks details on output format, error handling, or usage examples. Context signals show many sibling tools, but description does not differentiate. Adequate but with gaps.

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 75% (3 of 4 parameters have descriptions). The description adds general context about the output (totals + top entries) but does not add meaning beyond schema for parameters. For high coverage, baseline score of 3 is appropriate.

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 clearly states the tool reads a profiler trace view and returns a compact analysis summary with totals and top entries. It uses specific verbs ('Read') and resource ('profiler trace view') and distinguishes from siblings like RuntimeGetProfilerTraceData which likely returns raw data.

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?

No explicit guidance on when to use this tool versus alternatives. No mention of prerequisites (e.g., trace must exist) or context for using different 'view' options. The description implicitly suggests it for summaries, but lacks explicit when-to-use or when-not-to-use instructions.

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

RuntimeCreateProfilerTraceParametersC

[runtime] Create ABAP profiler trace parameters and return profilerId (URI) for profiled execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
aggregateNo
sql_traceNo
amdp_traceNo
descriptionYesHuman-readable trace description.
all_db_eventsNo
explicit_on_offNo
with_rfc_tracingNo
all_dynpro_eventsNo
all_procedural_unitsNo
max_time_for_tracingNo
max_size_for_trace_fileNo
all_misc_abap_statementsNo
all_system_kernel_eventsNo
all_internal_table_eventsNo

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided, so description must disclose side effects. It only states creation and return of a URI, but does not mention if this is destructive, requires permissions, or the lifecycle of the parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is under-specifying for a complex tool. It lacks structure to convey multiple aspects (parameters, usage, behavior) and misses key information.

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

Completeness1/5

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

Given 14 parameters, no annotations, and no output schema, description is severely incomplete. Does not explain return value format, parameter details, or usage context, making it inadequate for proper agent invocation.

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

Parameters1/5

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

Schema has 14 parameters with only 7% description coverage. Description adds no parameter explanations beyond the schema. It fails to compensate for low schema coverage.

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?

Description clearly states the action (create), resource (ABAP profiler trace parameters), and output (profilerId URI). It distinguishes from sibling tools like RuntimeAnalyzeProfilerTrace which analyze existing traces.

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?

No guidance on when to use this tool versus alternatives like RuntimeRunClassWithProfiling. Does not explain prerequisites, recommended workflow, or context for invoking the tool.

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

RuntimeGetDumpByIdA

[runtime] Read a specific ABAP runtime dump by its ID. First use RuntimeListFeeds to find dumps and get their IDs, then pass dump_id here to read the full dump content.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoDump view mode: default payload, summary section, or formatted long text.default
dump_idYesFull runtime dump ID (e.g. from RuntimeListFeeds).
response_modeNoControls what is returned: "payload" — full parsed dump data, "summary" — compact key facts only (title, exception, program, line, user, date…), "both" — summary + full payload.both

TDQS

A4.2/5.0
Behavior4/5

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

The description indicates this is a read operation ('Read'), which is transparent. Without annotations, the description carries the burden, and it adequately discloses that the tool fetches existing dump content without side effects. It adds context beyond schema by linking to RuntimeListFeeds.

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 extremely concise with two short sentences. It front-loads the purpose and immediately provides a workflow hint. No unnecessary words.

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?

Given no output schema, the description doesn't detail the returned dump structure, but the response_mode parameter describes possible outputs. The workflow hint integrates with sibling tool RuntimeListFeeds. Completeness is adequate for a read operation.

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 baseline is 3. The description adds minimal extra meaning beyond what the schema already provides (the schema already mentions 'e.g. from RuntimeListFeeds' for dump_id). The description reinforces the workflow but doesn't elaborate on view or response_mode beyond their schema definitions.

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 clearly states 'Read a specific ABAP runtime dump by its ID', which is a specific verb-resource pairing. It also distinguishes from sibling tools by mentioning the prerequisite step of using RuntimeListFeeds, showing how this tool fits in a workflow.

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 provides explicit guidance: 'First use RuntimeListFeeds to find dumps and get their IDs, then pass dump_id here'. This tells when to use the tool and the required preceding step, though it doesn't explicitly mention when not to use it.

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

RuntimeGetProfilerTraceDataA

[runtime] Read profiler trace data by trace id/uri: hitlist, statements, or db accesses. Returns parsed JSON payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoStatement node ID (for statements view).
viewYesTrace view to retrieve.
with_detailsNoInclude statement details (for statements view).
trace_id_or_uriYesProfiler trace ID or full ADT trace URI.
with_system_eventsNoInclude system events.
auto_drill_down_thresholdNoAuto drill-down threshold (for statements view).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states the tool is read-only ('Read') and returns parsed JSON, but does not disclose potential constraints like required permissions, rate limits, or the absence of side effects beyond the implied read operation.

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 a single, front-loaded sentence that efficiently communicates the tool's purpose and key aspects without any wasted words.

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?

Given the complexity (6 parameters, no output schema), the description adequately covers the input and output (returns parsed JSON). It is missing explicit mention of no side effects, but overall is complete for a read-only data retrieval 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 parameters are fully described in the schema. The description adds minimal context by grouping views and mentioning trace_id_or_uri, but does not provide additional meaning beyond what is already in the schema.

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 clearly states the tool reads profiler trace data by trace id/uri, listing three specific views (hitlist, statements, db accesses) and indicating a parsed JSON return. It distinguishes from siblings like RuntimeAnalyzeProfilerTrace which imply analysis rather than raw reading.

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?

No guidance is provided on when to use this tool versus sibling tools such as RuntimeListProfilerTraceFiles or RuntimeAnalyzeProfilerTrace. The description does not mention when not to use it or any prerequisites.

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

RuntimeListFeedsA

[runtime] List available ADT runtime feeds or read a specific feed type. Feed types: dumps, system_messages, gateway_errors. Without feed_type returns available feed descriptors.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd of time range in YYYYMMDDHHMMSS format.
fromNoStart of time range in YYYYMMDDHHMMSS format.
userNoFilter feed entries by SAP username.
feed_typeNoFeed to read. "descriptors" lists available feeds, "variants" lists feed variants, others read that specific feed. Default: descriptors.descriptors
max_resultsNoMaximum number of entries to return.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the basic behavior (list or read feed) but lacks details on error handling, read-only nature, or authentication needs. It is adequate but not comprehensive.

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?

Two concise sentences with front-loaded '[runtime]' tag. No wasted words, efficient and clear.

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, but description mentions return 'available feed descriptors' or feed entries. For a tool with 5 parameters, it provides adequate context, though the return format is unspecified.

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%, baseline 3. The description adds minimal meaning beyond schema, e.g., explaining feed_type enum values and default. No extra semantic depth for other parameters.

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 clearly states 'List available ADT runtime feeds or read a specific feed type' and specifies the feed types and behavior without feed_type. It distinguishes itself from specific list siblings like RuntimeListDumps.

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 explains when to use the tool with or without feed_type. However, it does not explicitly mention when not to use it or compare with sibling tools like RuntimeListDumps.

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

RuntimeListProfilerTraceFilesB

[runtime] List ABAP profiler trace files available in ADT runtime. Returns parsed JSON payload.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description alone bears the burden. It only states the output format (parsed JSON) but does not disclose side effects, required permissions, or any other behavioral traits.

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 a single concise sentence. It could be slightly more structured (e.g., listing output fields), but it is efficient and front-loaded.

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?

With no output schema, the description should fully describe the return value. It only mentions 'parsed JSON payload' without specifying structure or content, leaving the agent underinformed compared to sibling tools.

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?

There are no parameters (0 params, 100% schema coverage). By rule, baseline is 4 since description does not need to compensate for missing parameter info.

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 clearly states the tool lists ABAP profiler trace files, a specific resource, and mentions it returns parsed JSON. Among many similar list/get sibling tools, this one is uniquely for profiler trace files.

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?

No guidance on when to use this tool versus alternatives like RuntimeGetProfilerTraceData or other list tools. The description lacks any context on appropriate usage scenarios.

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

RuntimeListSystemMessagesB

[runtime] List SM02 system messages. Returns structured entries with id, title, text, severity, validity period, and author.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd of time range in YYYYMMDDHHMMSS format.
fromNoStart of time range in YYYYMMDDHHMMSS format.
userNoFilter by author username.
max_resultsNoMaximum number of messages to return.

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states return fields but fails to mention whether the operation is read-only, any side effects, authorization needs, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but lacks structure. It is not overly verbose, but it omits important details. Could be more concise while adding value.

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 4 parameters and no output schema, the description is incomplete. It doesn't explain SM02, behavior with no parameters, or how time ranges work. More context is needed for a list with filters.

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% with descriptions for all parameters. The description adds no additional parameter meaning beyond what is in the schema, so baseline score of 3 is appropriate.

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 clearly states the tool lists SM02 system messages and specifies the return fields (id, title, text, severity, validity period, author). It distinguishes from sibling Runtime tools like RuntimeListDumps by focusing on system messages.

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?

No guidance on when to use this tool versus alternatives like RuntimeListDumps or other list tools. No mention of prerequisites or context for system messages.

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

RuntimeRunClassB

[runtime] Execute an ABAP class implementing if_oo_adt_classrun and return its output. Set profile=true to also capture a profiler trace (returns profilerId/traceId alongside output).

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoWhen true, run with the profiler and resolve the resulting traceId. Default false.
aggregateNo
sql_traceNo
amdp_traceNo
class_nameYesABAP class name to execute.
descriptionNoProfiler trace description (only used when profile=true).
all_db_eventsNo
explicit_on_offNo
with_rfc_tracingNo
all_dynpro_eventsNo
trace_lookup_urisNoAdditional URIs to consult when resolving the trace (advanced, profile=true).
max_trace_attemptsNoMax polling attempts to resolve traceId after execution (default 5). Only used when profile=true.
all_procedural_unitsNo
max_time_for_tracingNo
trace_retry_delay_msNoDelay in ms between trace polling attempts (default 2000). Only used when profile=true.
max_size_for_trace_fileNo
all_misc_abap_statementsNo
all_system_kernel_eventsNo
all_internal_table_eventsNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions output and profiler trace but does not disclose error handling, side effects, or the response format. For a runtime execution tool, this is insufficient.

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 two sentences, front-loaded with the main purpose. It is concise but could be tighter by avoiding repetition of 'profile=true'. Overall, it earns its place.

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

Completeness1/5

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

Given 19 parameters, no output schema, and no annotations, the description is extremely sparse. It does not explain return values, error conditions, or the meaning of most parameters, making it incomplete for a complex tool.

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

Parameters2/5

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

Schema description coverage is only 32%. The description only explains the profile parameter minimally; it does not cover the many other boolean and numeric parameters. The description fails to compensate for the low schema coverage.

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 clearly states the tool's purpose: execute an ABAP class implementing if_oo_adt_classrun and return its output. It also explains the optional profiling feature, distinguishing it from the sibling tool RuntimeRunClassWithProfiling by inclusion of the profile parameter.

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 description implies usage for running a class with optional profiling but does not explicitly state when to use this tool vs. alternatives like RuntimeRunClassWithProfiling. No guidance on prerequisites or conditions is provided.

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

RuntimeRunClassWithProfilingA

[runtime][deprecated] Execute ABAP class with profiler enabled and return created profilerId + traceId. Prefer RuntimeRunClass with profile=true; this tool is kept for backward compatibility and will be removed in a future major release.

ParametersJSON Schema
NameRequiredDescriptionDefault
aggregateNo
sql_traceNo
amdp_traceNo
class_nameYesABAP class name to execute.
descriptionNoProfiler trace description.
all_db_eventsNo
explicit_on_offNo
with_rfc_tracingNo
all_dynpro_eventsNo
trace_lookup_urisNoAdditional URIs to consult when resolving the trace (advanced).
max_trace_attemptsNoMax polling attempts to resolve traceId after execution (default 5). Increase for slow systems (e.g. SAP trial cloud).
all_procedural_unitsNo
max_time_for_tracingNo
trace_retry_delay_msNoDelay in ms between trace polling attempts (default 2000).
max_size_for_trace_fileNo
all_misc_abap_statementsNo
all_system_kernel_eventsNo
all_internal_table_eventsNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so description carries full burden. It mentions return values but not whether the operation is destructive, read-only, or what side effects occur (e.g., changes to system state). Lacks disclosure of permissions or limitations.

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?

Two sentences, front-loaded with action and return, followed by deprecation warning. No redundant information.

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 the tool's complexity (18 parameters, no output schema, no annotations), the description is insufficient. It does not explain profiler parameters, how the class is executed, or how to use the returned IDs. The deprecation guidance is helpful but overall completeness is low.

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

Parameters2/5

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

Schema description coverage is low (28%), yet the description adds no explanation for any of the 18 parameters. It only mentions the return values. The description fails to compensate for the missing parameter documentation.

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?

Description explicitly states 'Execute ABAP class with profiler enabled and return created profilerId + traceId', providing a specific verb and resource. It distinguishes from the sibling tool RuntimeRunClass by noting the deprecation and preferred alternative.

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 advises to prefer RuntimeRunClass with profile=true, states this tool is for backward compatibility, and warns of removal in a future major release. This provides clear when-to-use and when-not-to-use guidance.

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

RunUnitTestC

Start an ABAP Unit test run for provided class test definitions. Returns run_id for status/result queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
testsYesList of container/test class pairs to execute.
titleNoOptional title for the ABAP Unit run.
contextNoOptional context string shown in SAP tools.
durationNo
risk_levelNo

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose all behavioral traits. However, it only states that the tool starts a test run and returns a run_id. It does not mention important aspects such as whether the run is asynchronous, whether it compiles test classes, what side effects may occur (e.g., database changes from test fixtures), required authorizations, or error handling. For a test execution tool, this is a significant omission.

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 a single sentence of 12 words, which is concise and front-loaded with the action ('Start an ABAP Unit test run'). Every word serves a purpose. However, it is on the borderline of under-specification: while concise, it omits necessary details, so it cannot earn a 5.

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

Completeness1/5

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

Given the complexity of the tool (6 parameters, nested objects, no output schema, no annotations), the description is far from complete. It does not explain how to structure the 'tests' array, what the scope options mean, how duration and risk_level affect execution, or how to handle potential errors. The agent needs to infer a lot from the parameter names and schema alone. A complete description would include typical usage patterns and relationship with result querying tools.

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

Parameters2/5

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

Schema description coverage is 50%, meaning several parameters lack descriptions. The description only refers to 'provided class test definitions,' which corresponds to the 'tests' parameter but does not elaborate on other parameters like scope, duration, risk_level, context, or title. The description adds minimal value beyond the schema; for example, it does not explain how to use the optional scope or risk_level filters. A more informative description would compensate for the low coverage.

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 clearly states the action ('Start an ABAP Unit test run') and the resource ('for provided class test definitions'), and specifies the return value ('Returns run_id for status/result queries'). It distinguishes from sibling tools like GetUnitTestResult and GetUnitTestStatus, which query results, and CreateUnitTest, which creates test definitions. The purpose is unambiguous and specific.

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 description implies that after starting a test run, the agent should use the returned run_id to query status/result with other tools, but it does not explicitly say 'Use this to initiate a test run, then use GetUnitTestStatus or GetUnitTestResult to monitor/results.' There is no guidance on when not to use this tool or alternatives, such as CreateCdsUnitTest for CDS-specific tests. Usage context is implied but not explicit.

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

SearchObjectA

[read-only] Search ABAP repository by object name or wildcard pattern (e.g. 'ZOK*'). Answers: "find object X", "does X exist", "list objects matching...", "search for program/class/table by name". Supports all repository object types — optionally filter by type (PROG, CLAS, INTF, DEVC, TABL, DDLS, DTEL, FUGR, SRVD, SRVB, BDEF, DDLX, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNo[read-only] Maximum number of results to return
object_nameYes[read-only] Object name or mask (e.g. 'MARA*')
object_typeNo[read-only] Optional ABAP object type (e.g. 'TABL', 'CLAS/OC')

TDQS

A4.3/5.0
Behavior4/5

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

The description begins with '[read-only]', which indicates no side effects. It explains the search behavior but does not detail pagination, case sensitivity, or error handling. Given no annotations, this is adequate transparency.

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 concise but includes examples and use cases. It is front-loaded with the read-only tag and main purpose. Minor redundancy could be trimmed, but overall efficient.

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 search tool with 3 well-documented parameters and no output schema, the description covers the core functionality and use cases. It is complete but could mention the return format or limitations of maxResults.

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 description coverage is 100%, and the description adds value by providing examples for object_name and listing many valid object types for object_type. This enriches the semantic understanding beyond the schema.

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 clearly states it searches the ABAP repository by object name or wildcard pattern, provides examples like 'ZOK*', and lists the types of questions it answers. It distinguishes itself from sibling Get* tools by focusing on pattern-based search across all object types.

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 clear context for when to use the tool (e.g., 'find object X', 'does X exist'). However, it does not explicitly mention when not to use it or provide alternatives like specific Get* tools for known objects.

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

UpdateBehaviorDefinitionB

Operation: Update, Create. Subject: BehaviorDefinition. Will be useful for updating or creating behavior definition. Update source code of an existing ABAP Behavior Definition (BDEF). Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBehavior Definition name
activateNoActivate after update. Default: true
lock_handleNoLock handle from LockObject. If not provided, will attempt to lock internally (not recommended for stateful flows).
source_codeYesNew source code
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

B3.4/5.0
Behavior4/5

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

Explicitly states the process: Locks, updates, unlocks, and optionally activates. This reveals the sequential behavior and that activation is optional. No contradictions with annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is relatively short but includes a redundant first sentence ('Operation: Update, Create. Subject: BehaviorDefinition.') that adds no value. The remaining sentences are clear and structured.

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

Completeness3/5

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

Given the complexity (5 params, no output schema), the description covers the main behavior (lock, update, unlock, activate) and explains lock_handle handling. However, it lacks information on failure scenarios, return value, or when activation is needed vs. using ActivateBehaviorDefinition separately.

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% with parameter descriptions, but the description adds extra semantics: explains that lock_handle can be omitted (internal lock) and warns against using it in stateful flows. This provides useful context 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?

Clearly states it updates the source code of an existing ABAP Behavior Definition (BDEF) with locking/unlocking and optional activation. However, the first line mentions 'Update, Create' which is slightly misleading given the tool name and sibling CreateBehaviorDefinition, but the core action is clear.

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?

No explicit guidance on when to use this tool versus CreateBehaviorDefinition or ActivateBehaviorDefinition. The phrase 'Will be useful for updating or creating' is vague and doesn't help differentiate from siblings.

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

UpdateBehaviorImplementationA

Update source code of an existing ABAP behavior implementation class. Updates both main source (with FOR BEHAVIOR OF clause) and implementations include. Uses stateful session with proper lock/unlock mechanism.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate behavior implementation after update. Default: true.
class_nameYesBehavior Implementation class name (e.g., ZBP_MY_ENTITY). Must exist in the system.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.
behavior_definitionYesBehavior Definition name (e.g., ZI_MY_ENTITY). Must match the behavior definition used when creating the class.
implementation_codeYesImplementation code for the implementations include. Contains the actual behavior implementation methods.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It adds behavioral context by mentioning stateful session with lock/unlock mechanism, but omits potential side effects, prerequisites (e.g., class must exist), or error handling, which is incomplete for a 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?

Two sentences are efficient and front-loaded with the core purpose, followed by key behavioral detail. No wasted words.

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

Completeness3/5

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

Given no output schema and no annotations, the description covers the main action and stateful session but lacks details on return values, effects of the 'activate' parameter, or what happens on failure. Moderately complete for a moderate-complexity 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 the input schema already describes all 5 parameters. The description does not add extra meaning beyond what is in the schema, earning the baseline score of 3.

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 clearly states it updates source code of an existing ABAP behavior implementation class, specifying key clauses (FOR BEHAVIOR OF) and coverage of main source and implementations include. This distinguishes it clearly from siblings like CreateBehaviorImplementation.

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 description implies usage for updating an existing class but does not provide explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives among the many sibling tools.

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

UpdateCdsUnitTestC

Update a CDS unit test class local test class source code.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesGlobal test class name (e.g., ZCL_CDS_TEST).
test_class_sourceYesUpdated local test class ABAP source code.
transport_requestNoTransport request number (required for transportable packages).

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states 'Update', which implies mutation. It does not disclose permissions, reversibility, side effects, or what happens after update. Significant gap in behavioral context.

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 a single, concise sentence that is front-loaded. However, it could be slightly clearer by avoiding redundancy ('CDS unit test class local test class'). Efficient but room for improvement.

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?

The description is too minimal for an update tool. It does not mention prerequisites (e.g., the class must exist), return values, or any post-update behavior. Lacks completeness given no output schema.

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% with each parameter already described. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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 uses a specific verb 'Update' and identifies the resource as 'CDS unit test class local test class source code', which is clear. However, it does not differentiate from sibling tools like UpdateLocalTestClass or UpdateUnitTest, causing potential confusion.

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?

No guidance is provided on when to use this tool versus alternatives, nor are there any exclusions or prerequisites mentioned. The description lacks context for appropriate usage.

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

UpdateClassC

Operation: Update, Create. Subject: Class. Will be useful for updating or creating class. Update source code of an existing ABAP class. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate after update. Default: false.
class_nameYesClass name (e.g., ZCL_TEST_CLASS_001).
source_codeYesComplete ABAP class source code.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

C2.7/5.0
Behavior3/5

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

Mentions 'Locks, updates, unlocks, and optionally activates', providing some behavioral insight, but no details on locking side effects, required preconditions, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short description but includes redundant and contradictory phrases like 'Operation: Update, Create' and 'Will be useful for updating or creating class', wasting space.

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?

Lacks information about prerequisites (e.g., transport requirements), expected return values, and potential errors. For an update tool with critical side effects, this is insufficient.

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 covers all parameters with descriptions (100% coverage). Description adds minimal extra meaning beyond naming the fields, so baseline 3 applies.

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

Purpose3/5

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

Description states 'Update source code of an existing ABAP class' which is clear, but also ambiguously mentions 'Operation: Update, Create' and 'creating class', conflicting with its actual function and sibling CreateClass tool.

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?

No explicit when-to-use or alternatives provided. The description vaguely suggests it can be used for creating classes, but that is misleading as sibling CreateClass exists and schema lacks creation fields.

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

UpdateDataElementC

Operation: Update, Create. Subject: DataElement. Will be useful for updating or creating data element. Update an existing ABAP data element. Locks, updates with provided parameters (complete replacement), unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoLength - for predefinedAbapType or refToPredefinedAbapType
activateNoActivate data element after update (default: true)
decimalsNoDecimals - for predefinedAbapType or refToPredefinedAbapType
data_typeNoData type (CHAR, NUMC, etc.) - for predefinedAbapType or refToPredefinedAbapType
type_kindNoType kind: domain, predefinedAbapType, refToPredefinedAbapType, refToDictionaryType, refToClifTypedomain
type_nameNoType name: domain name, data element name, or class name (depending on type_kind)
descriptionNoNew data element description
search_helpNoSearch help name
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
field_label_longNoLong field label (max 40 chars)
data_element_nameYesData element name to update (e.g., ZZ_TEST_DTEL_01)
field_label_shortNoShort field label (max 10 chars)
set_get_parameterNoSet/Get parameter ID
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.
field_label_mediumNoMedium field label (max 20 chars)
field_label_headingNoHeading field label (max 55 chars)
search_help_parameterNoSearch help parameter

TDQS

C2.9/5.0
Behavior3/5

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

Without annotations, the description must convey behavioral traits. It mentions locking, complete replacement, and optional activation, which adds some transparency. However, it omits authorization requirements, rollback behavior, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Update, Create. Subject: DataElement. Will be useful for updating or creating data element.' could be condensed. The remaining sentences are efficient.

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?

With 17 parameters and no output schema or annotations, the description lacks completeness. It does not explain return values, error handling, prerequisites, or what happens on partial updates. It is insufficient for a complex 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?

The input schema covers 100% of parameters with descriptions. The description adds that updates are a 'complete replacement', which provides extra context. Baseline 3 is appropriate as the schema already does heavy lifting.

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 clearly states the tool updates an existing ABAP data element. However, it also mentions 'updating or creating', which conflicts with the sibling CreateDataElement tool. The main purpose is clear but slightly muddled.

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 description lists steps (lock, update, unlock, activate) but does not provide explicit guidance on when to use this tool versus CreateDataElement or other alternatives. No when-not-to-use information is given.

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

UpdateDdlA

Operation: Update, Create. Subject: DDL source. Will be useful for updating or creating a DDL source. Update DDL source code of an existing CDS View or Classic View. Locks, updates, unlocks, and optionally activates. Use CreateDdl to create a new DDL source.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate after update. Default: false.
ddl_nameYesDDL source name (e.g., ZOK_R_TEST_0002).
ddl_sourceYesComplete DDL source code.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description discloses the lock-update-unlock-activate sequence, providing useful behavioral context. However, it omits details on failure states, idempotency, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description has redundancy (e.g., repeating 'Update, Create' and 'DDL source') and could be more streamlined. It is not excessively long but could be tighter.

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

Completeness3/5

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

Given the complexity of updating ABAP DDL sources, the description covers the main actions but lacks return value info and error handling details. It is adequate but not thorough.

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% and the description adds little beyond the schema's parameter descriptions. The mention of locking/activation provides some context but no additional semantic detail.

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 clearly states the tool updates DDL source code of an existing CDS or Classic View, distinguishing it from CreateDdl for new sources. The verb and resource are precise.

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 differentiates from CreateDdl but lacks explicit guidance on when to use vs other siblings like ActivateDdl or CheckDdl. It mentions the optional activation and transport requirement, but could be more directive.

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

UpdateDomainC

Operation: Update, Create. Subject: Domain. Will be useful for updating or creating domain. Update an existing ABAP domain. Locks, updates with provided parameters (complete replacement), unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoField length (max depends on datatype)
activateNoActivate domain after update (default: true)
datatypeNoData type: CHAR, NUMC, DATS, TIMS, DEC, INT1, INT2, INT4, INT8, CURR, QUAN, etc.
decimalsNoDecimal places (for DEC, CURR, QUAN types)
lowercaseNoAllow lowercase input
descriptionNoNew domain description (optional)
domain_nameYesDomain name to update (e.g., ZZ_TEST_0001)
sign_existsNoField has sign (+/-)
value_tableNoValue table name for foreign key relationship
fixed_valuesNoArray of fixed values for domain value range
package_nameYesPackage name (e.g., ZOK_LOCAL, $TMP for local objects)
conversion_exitNoConversion exit routine name (without CONVERSION_EXIT_ prefix)
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable packages.

TDQS

C2.9/5.0
Behavior3/5

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

The description discloses that the tool locks, performs a complete replacement update, unlocks, and optionally activates. This provides useful behavioral context. However, it does not clarify what happens to parameters not provided (e.g., whether they are cleared or retained) or the exact effects of locking/unlocking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, but the opening 'Operation: Update, Create' is somewhat redundant and could be removed. It includes necessary behavioral information but could be more streamlined.

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 the tool's complexity with 13 parameters and no output schema, the description lacks details on return values, error handling, and the effect on unspecified parameters. For a tool that potentially creates domains, the description should clarify the creation scenario more explicitly.

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?

All 13 parameters are described in the input schema with full coverage. The description adds no additional parameter semantics beyond the schema. With high schema coverage, a baseline of 3 is appropriate.

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 clearly states that the tool updates an existing ABAP domain, with specification of locking, replacement, unlocking, and activation. However, it also ambiguously mentions 'Operation: Update, Create,' suggesting it might also create domains, which may confuse the agent. It distinguishes from siblings like CreateDomain and ActivateDomain by focusing on update behavior.

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 description only vaguely states 'will be useful for updating or creating domain' without providing explicit guidance on when to use this tool versus alternatives like CreateDomain or CheckDomain. No conditions or prerequisites are mentioned.

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

UpdateFunctionGroupA

Update metadata (description) of an existing ABAP function group. Function groups are containers for function modules and don't have source code to update directly. Uses stateful session with proper lock/unlock mechanism.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesNew description for the function group.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.
function_group_nameYesFunction group name (e.g., ZTEST_FG_001). Must exist in the system.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description must carry the burden. It discloses stateful session and lock/unlock mechanism, which is helpful. However, it omits other important traits such as error handling (what if function group doesn't exist?), authorization requirements, and whether the operation is reversible. Thus moderate transparency.

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?

Two sentences front-load the main purpose and provide key context (no source code, stateful session). No extraneous information. Efficiency is high.

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

Completeness3/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 should hint at return values or error conditions. It does not. While the core purpose is clear, the agent lacks complete context about what the tool returns (e.g., success/failure indication) and potential side effects beyond locking. Incomplete for a 3-parameter 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 description coverage is 100%, so parameters are already well-documented in the schema. The description adds no new semantics beyond confirming that the function group must exist. Baseline of 3 is appropriate as the description doesn't compensate for any gaps.

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?

Description clearly states it updates metadata (description) of an existing ABAP function group. It distinguishes from siblings like CreateFunctionGroup, DeleteFunctionGroup, and ReadFunctionGroup by focusing on update, and clarifies that function groups are containers without direct source code update, avoiding confusion with UpdateFunctionModule.

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?

Description implies when to use (for metadata updates only, not source code) but does not explicitly state when not to use or name alternative tools like UpdateFunctionModule. The statement about function groups being containers without source code provides some guidance but lacks explicit exclusions.

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

UpdateFunctionIncludeB

Operation: Update. Subject: FunctionInclude. Will be useful for updating a function group include. Update source code of an existing ABAP function group include.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate the include after the source update. Default: false. Set true to make the updated source the active version immediately.
source_codeYesComplete ABAP include source code.
include_nameYesInclude name (e.g., LZOK_FG_MCP01F01). Include must already exist.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable includes.
function_group_nameYesFunction group name containing the include (e.g., ZOK_FG_MCP01).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral traits. It only states the basic action (update source code) without mentioning side effects, required authorizations, or activation behavior (though the activate parameter is present). It also fails to note that the include must already exist (only mentioned in parameter schema).

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 extremely concise, consisting of two short sentences and a header-like phrase. No redundant information is present.

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 the tool has 5 parameters, 3 required, and no output schema, the description is too brief. It does not explain what happens after the update (e.g., return value), whether the source is overwritten entirely, or the relationship between update and activation.

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 100%, so parameters are already well-documented. The description adds minimal extra value beyond what the schema provides, such as noting that the include must already exist for include_name. Baseline is 3.

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 clearly states 'Update source code of an existing ABAP function group include.' It uses a specific verb (Update) and resource (FunctionInclude), distinguishing it from CreateFunctionInclude and DeleteFunctionInclude among siblings.

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?

No explicit guidance on when to use this tool vs alternatives like UpdateFunctionGroup or when not to use it. The description merely says 'will be useful for updating a function group include' without providing context for selection.

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

UpdateFunctionModuleC

Operation: Update, Create. Subject: FunctionModule. Will be useful for updating or creating function module. Update source code of an existing ABAP function module. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate function module after source update. Default: false. Set to true to activate immediately.
source_codeYesComplete ABAP function module source code. Must include FUNCTION statement with parameters and ENDFUNCTION. Example: FUNCTION Z_TEST_FM IMPORTING VALUE(iv_input) TYPE string EXPORTING VALUE(ev_output) TYPE string. ev_output = iv_input. ENDFUNCTION.
transport_requestNoTransport request number (e.g., E19K905635). Required for transportable function modules.
function_group_nameYesFunction group name containing the function module (e.g., ZOK_FG_MCP01).
function_module_nameYesFunction module name (e.g., Z_TEST_FM_MCP01). Function module must already exist.

TDQS

C2.4/5.0
Behavior3/5

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

Description mentions locks, update, unlock, optional activation, which adds behavior beyond schema. However, no annotations provided, and details like lock duration or failure handling are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is redundant (e.g., 'Operation: Update, Create. Subject: FunctionModule.' then 'Will be useful for updating or creating function module.'). Could be consolidated.

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?

No output schema or annotations. Description omits error conditions, return values, and detailed locking/activation behavior. Incomplete for a tool with 5 parameters.

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 covers all parameters with descriptions (100% coverage). Description adds no parameter-specific value beyond repeating schema info.

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

Purpose2/5

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

Description claims both update and create, but input schema requires function_module_name to already exist, so create is misleading. Sibling including CreateFunctionModule further confuses. Purpose is not clear.

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?

No guidance on when to use this tool over alternatives like CreateFunctionModule or UpdateFunctionGroup. Lacks context for selection.

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

UpdateInterfaceC

Operation: Update, Create. Subject: Interface. Will be useful for updating or creating interface. Update source code of an existing ABAP interface. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate interface after update. Default: true.
source_codeYesComplete ABAP interface source code with INTERFACE...ENDINTERFACE section.
interface_nameYesInterface name (e.g., ZIF_MY_INTERFACE). Must exist in the system.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.

TDQS

C2.4/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It discloses that the tool 'Locks, updates, unlocks, and optionally activates' the interface, which is helpful. However, it does not explain what triggers activation, whether unlocking is automatic, or what happens if the interface does not exist (for update scenario). Still, it provides some behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains redundancy: 'Operation: Update, Create. Subject: Interface.' is nearly restating the name. The sentence 'Will be useful for updating or creating interface' is vague and adds little. It could be more concise by removing the first sentence and focusing on behavioral details.

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 the complexity of updating ABAP interfaces (requires locks, transports, activation) and the presence of CreateInterface sibling, the description is incomplete. It does not explain prerequisites like required authorizations, whether the interface must exist already, or the effect of the 'activate' parameter. Missing details that are not covered by schema or annotations.

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% and each parameter has a clear description. The description adds minimal value beyond the schema, noting 'Locks, updates, unlocks' but not linking to specific parameters. With high schema coverage, baseline is 3. No contradictions or additional parameter context are provided.

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

Purpose2/5

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

The description starts with 'Operation: Update, Create. Subject: Interface' and later says it 'will be useful for updating or creating interface', but the tool is named UpdateInterface and there is a separate CreateInterface sibling. This creates ambiguity about the tool's actual function – is it for updating existing interfaces or also creating new ones? The description does not clearly distinguish its purpose from CreateInterface.

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?

No explicit guidance is provided on when to use this tool versus alternatives like CreateInterface or other update tools. The description mentions updating existing interfaces but also suggests creating, yet offers no criteria for choosing this tool over CreateInterface. Missing context on prerequisites or when to use.

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

UpdateLocalDefinitionsA

Update local definitions in an ABAP class (definitions include). Manages lock, check, update, unlock, and optional activation.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
definitions_codeYesUpdated source code for local definitions.
transport_requestNoTransport request number.
activate_on_updateNoActivate parent class after updating. Default: false

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions the internal process (lock, check, update, unlock, optional activation) but lacks details on failure handling, rollback, or side effects. This is adequate but not comprehensive.

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 two sentences, front-loading the purpose and following with a summary of the process. Every sentence contributes value without redundancy.

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

Completeness3/5

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

The description covers the tool's purpose and internal steps but does not specify return values or error behavior. Given no output schema, this is a gap. Prerequisites (e.g., class existence) are implied but not stated.

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 each parameter is described. The description adds context by clarifying that 'definitions include' and linking the activation step to the 'activate_on_update' parameter, enhancing understanding beyond the schema.

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 clearly states the verb (Update) and resource (local definitions in an ABAP class). It explains that it manages lock, check, update, unlock, and optional activation, which distinguishes it from siblings like UpdateClass (which updates entire class) or UpdateLocalMacros (which updates macros).

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 description implies usage for updating local definitions but does not explicitly state when to use this tool over alternatives like UpdateClass or CreateLocalDefinitions. No exclusions or conditional guidance are provided.

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

UpdateLocalMacrosB

Update local macros in an ABAP class (macros include). Manages lock, check, update, unlock, and optional activation. Note: Macros are supported in older ABAP versions but not in newer ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
macros_codeYesUpdated source code for local macros.
transport_requestNoTransport request number.
activate_on_updateNoActivate parent class after updating. Default: false

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 full burden. It mentions the lifecycle (lock, check, update, unlock, activation) but lacks details on error handling, side effects, or consequences of failure. It is adequate but incomplete.

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?

Two sentences, front-loaded with purpose and steps, then a note. No redundant information. Could be slightly more structured, but efficient.

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?

For a mutation tool with 4 parameters and no output schema or annotations, the description lacks detail on return values, permissions, or potential data loss. The lock/unlock mention helps, but it is not comprehensive.

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?

All four parameters have schema descriptions (100% coverage). The description adds minimal value beyond the schema, only hinting at 'optional activation' corresponding to activate_on_update. Baseline 3 is appropriate.

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 clearly states the tool updates local macros in an ABAP class, and mentions the process steps (lock, check, update, unlock, activation). It contrasts with sibling tools like DeleteLocalMacros and GetLocalMacros, but does not explicitly differentiate from other Update* tools.

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 description does not specify when to use this tool over alternatives. Only a note on version compatibility is provided, which is a constraint, not guidance on choosing between tools.

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

UpdateLocalTestClassA

Update a local test class in an ABAP class. Manages lock, check, update, unlock, and optional activation of parent class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
test_class_codeYesUpdated source code for the local test class.
transport_requestNoTransport request number (required for transportable objects).
activate_on_updateNoActivate parent class after updating test class. Default: false

TDQS

A3.5/5.0
Behavior3/5

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

Discloses that the tool manages lock, check, update, unlock, and optional activation, which informs the agent of the underlying process. However, with no annotations, it misses details on failure handling, side effects, or return behavior.

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?

Two concise sentences: first clearly states the purpose, second lists the managed steps. No wasted words, efficiently conveys the core action and lifecycle.

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

Completeness3/5

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

Covers the main update action and lifecycle but omits mention of the transport_request parameter (critical for transportable objects) and does not describe the tool's output or error handling. Some gaps remain given the complexity and no output schema.

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%, with each parameter described in the schema. The tool description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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?

Specifically states it updates a local test class in an ABAP class, and distinguishes form siblings like DeleteLocalTestClass and GetLocalTestClass. Mentions lifecycle steps (lock, check, update, unlock, activation) which clarifies its unique role.

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?

No explicit guidance on when to use versus alternatives (e.g., UpdateClass for main class code, DeleteLocalTestClass for removal). The lifecycle description implies a safe update process but lacks exclusions or prerequisites.

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

UpdateLocalTypesA

Update local types in an ABAP class (implementations include). Manages lock, check, update, unlock, and optional activation.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesParent class name (e.g., ZCL_MY_CLASS).
local_types_codeYesUpdated source code for local types.
transport_requestNoTransport request number.
activate_on_updateNoActivate parent class after updating. Default: false

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses a multi-step workflow (lock, check, update, unlock, activation), adding some transparency. However, it lacks details on error handling, permissions, or what happens to existing settings.

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 concise and front-loaded, conveying the main action and key steps in a single sentence. A slightly more structured approach could improve clarity, but it is efficient.

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 the lack of output schema and annotations, the description is incomplete. It does not explain return values, potential errors, or the activation behavior in detail. With many sibling tools, more context is needed to ensure correct selection.

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?

The input schema has 100% description coverage for all 4 parameters, so the description does not need to add much. It adds no extra meaning beyond the schema, and the baseline of 3 is appropriate.

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 clearly identifies the verb 'Update' and the resource 'local types in an ABAP class', distinguishing it from siblings like UpdateLocalDefinitions and UpdateLocalMacros. It specifies the scope and includes implementations.

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 description implies usage context by mentioning the steps (lock, check, update, unlock, activation), but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or when not to use it.

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

UpdateMessageClassA

Operation: Update. Subject: Message Class (MSAG). Update a message class header (e.g. its description). To add or change individual messages use CreateMessageClassMessage / UpdateMessageClassMessage.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesNew short description for the message class.
transport_requestNo(optional) Transport request number. Required for transportable objects.
message_class_nameYesMessage class name (e.g., ZMY_MSGS).

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It identifies as an 'Update' implying mutation, but does not mention permissions, side effects, whether updates are incremental or full, or what response to expect. The ambiguity with 'e.g. its description' also suggests incomplete specification of updatable fields.

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?

Two sentences front-loaded with operation and subject. Every sentence provides essential information without redundancy. Highly efficient.

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?

Given the low complexity (3 params, no nested objects, no output schema), the description is nearly complete. It explains what the tool does and provides usage guidance. The only missing element is a mention of return behavior (e.g., success/failure indication), but this is common and does not significantly impair understanding.

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 100%, so each parameter already has documented meaning. The tool description adds minimal extra value by linking 'description' to the header update example, but does not deepen understanding of transport_request or message_class_name beyond the schema.

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 clearly states it updates a message class header (e.g., description). It distinguishes from sibling tools like CreateMessageClassMessage/UpdateMessageClassMessage by explicitly noting their use for individual messages.

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?

The description explicitly provides when to use this tool (update header) and when not to (add/change individual messages), offering specific alternative tools.

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

UpdateMessageClassMessageA

Operation: Update. Subject: a single message inside a Message Class (MSAG). Change the text / flags of an existing message in an ABAP message class (T100). Upserts the message if it does not exist yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
msgnoYesMessage number (e.g., "001").
msgtextYesNew message text. May contain placeholders &1 &2 &3 &4 (or &).
descriptionNo(optional) Long description for the message.
self_explanatoryNo(optional) Mark the message as self-explanatory.
transport_requestNo(optional) Transport request number. Required for transportable objects.
message_class_nameYesParent message class name (e.g., ZMY_MSGS).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It discloses the mutation nature (update/upsert) and mentions transport requirements for transportable objects. However, it lacks details on side effects, permission requirements, or what happens to existing flags/fields not specified in the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains some redundancy (e.g., 'Operation: Update. Subject: a single message inside a Message Class (MSAG).') which could be condensed. It is two sentences, which is reasonable, but the first sentence could be more direct.

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

Completeness3/5

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

Given the lack of output schema and annotations, the description provides a basic understanding of the tool but leaves gaps. It explains the upsert behavior and transport requirement, but does not cover error conditions, the exact flags that can be updated (only self_explanatory is in schema), or how the update interacts with existing data.

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 description coverage is 100% for all 6 parameters. The description adds extra context beyond the schema: it explains that msgtext may contain placeholders (&1, &2, etc.) and clarifies that transport_request is required for transportable objects. This adds meaningful semantic guidance.

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 clearly states the action (update/upsert) and the resource (a single message inside an ABAP message class T100). It distinguishes from siblings by indicating upsert behavior, which is different from create-only tools like CreateMessageClassMessage.

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?

No explicit guidance on when to use this tool versus alternatives like CreateMessageClassMessage. The description mentions upsert behavior but does not provide context on preferred usage scenarios or when to avoid using it.

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

UpdateMetadataExtensionB

Operation: Update, Create. Subject: MetadataExtension. Will be useful for updating or creating metadata extension. Update source code of an existing ABAP Metadata Extension (DDLX). Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMetadata Extension name
activateNoActivate after update. Default: true
lock_handleNoLock handle from LockObject. If not provided, will attempt to lock internally.
source_codeYesNew source code
transport_requestNoTransport request number (required for transportable packages).

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: it locks, updates, unlocks, and optionally activates. This adds transparency beyond the input schema, though it omits authorization needs, error conditions, or side effects like version changes.

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 brief (3 sentences) and front-loads key information. However, the initial 'Operation: Update, Create. Subject: MetadataExtension' is somewhat redundant with the tool name. Still, it is efficient and to the point.

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

Completeness3/5

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

Given no output schema and 5 parameters, the description covers the main action (update source code) and process (lock-unlock-activate) but lacks details on return values, error handling, or prerequisites like transport request necessity. It is minimally complete.

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% with parameter descriptions. The description does not add any extra semantics beyond what is already in the schema, so baseline score of 3 is appropriate.

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?

Description states it updates or creates metadata extensions, but specifically details updating source code of an existing one. With a sibling CreateMetadataExtension tool, the create aspect is misleading, reducing clarity. However, the verb 'Update' and resource 'MetadataExtension' are clearly identified.

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?

No guidance on when to use this tool over alternatives like CreateMetadataExtension or CheckMetadataExtension. The description lacks any context about prerequisites, exclusion criteria, or comparative scenarios.

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

UpdateServiceBindingC

Operation: Update, Create. Subject: ServiceBinding. Will be useful for updating or creating service binding. Update publication state of an existing ABAP service binding.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_nameYesPublished service name.
binding_variantNoService binding variant. Determines OData version for publish/unpublish routing.ODATA_V4_UI
response_formatNoxml
service_versionNoPublished service version. Optional.
service_binding_nameYesService binding name to update.
desired_publication_stateYesTarget publication state.

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. While it indicates mutation (updating state), it omits details on permissions, side effects, reversibility, or response characteristics. The mention of 'Create' further muddles the expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (three sentences), but the first sentence is redundant ('Operation: Update, Create. Subject: ServiceBinding.'). It could be more concise and front-loaded with the core action.

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 the tool's complexity (6 parameters, no output schema, many siblings), the description is insufficient. It does not explain relationship to CreateServiceBinding, return values, or edge cases, leaving significant gaps for an agent.

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?

The input schema covers 83% of parameters with descriptions, so the schema already provides good meaning. The description does not add any additional parameter-specific guidance, but the baseline effort is adequate.

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

Purpose3/5

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

The description states 'Update publication state of an existing ABAP service binding,' which clearly identifies the primary action and resource. However, it also mentions 'Operation: Update, Create' and 'useful for updating or creating,' creating ambiguity about whether it can create new bindings. This is misleading given the tool name and the existence of a sibling CreateServiceBinding tool.

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 description provides no guidance on when to use this tool versus alternatives like CreateServiceBinding or other Update tools. It lacks any contextual cues or exclusions, leaving the agent without clear decision-making information.

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

UpdateServiceDefinitionC

Operation: Update, Create. Subject: ServiceDefinition. Will be useful for updating or creating service definition. Update source code of an existing ABAP service definition. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate service definition after update. Default: true.
source_codeYesComplete service definition source code.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.
service_definition_nameYesService definition name (e.g., ZSD_MY_SERVICE). Must exist in the system.

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds some behavioral context by stating the tool 'Locks, updates, unlocks, and optionally activates', which is useful. However, it does not disclose side effects, permission requirements, or error conditions, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat redundant, starting with metadata-like phrases ('Operation: Update, Create') then repeating similar ideas. It could be more concise and focused. The structure is not optimal.

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 that the tool is a mutation operation with no output schema and no annotations, the description should provide more context such as return values, prerequisites, or confirmation steps. It mentions optional activation but lacks completeness.

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?

The input schema has 100% description coverage so the schema already explains all four parameters. The description adds minimal extra value, only noting the optional activation. Baseline 3 is appropriate.

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

Purpose3/5

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

The description mentions both 'Update' and 'Create', but the tool name and the specific action 'Update source code of an existing ABAP service definition' indicate it is primarily an update tool. The mixed messaging reduces clarity, and while siblings include CreateServiceDefinition, the description does not clearly distinguish this tool from that one.

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 description provides no explicit guidance on when to use this tool versus alternatives like CreateServiceDefinition or other update tools. It vaguely says 'useful for updating or creating', but fails to specify scenarios or prerequisites.

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

UpdateStructureA

Operation: Update, Create. Subject: Structure. Will be useful for updating or creating structure. Update DDL source code of an existing ABAP structure. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate structure after source update. Default: true.
ddl_codeYesComplete DDL source code for structure. Example: '@EndUserText.label : \'My Structure\' @AbapCatalog.tableCategory : #TRANSPARENT define structure zz_s_test_001 { client : abap.clnt not null; id : abap.char(10); name : abap.char(255); }'
structure_nameYesStructure name (e.g., ZZ_S_TEST_001). Structure must already exist.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.

TDQS

A3.5/5.0
Behavior4/5

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

The description reveals important behavioral traits: 'Locks, updates, unlocks, and optionally activates.' This discloses lock management and activation behavior that is not captured in the schema or annotations (which are absent). This helps the agent understand side effects and workflow integration.

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 relatively concise at three sentences, but includes repetitive phrases like 'Operation: Update, Create' and 'Subject: Structure.' These could be merged or removed. Overall it is front-loaded with the main purpose, earning a 4.

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?

With no output schema and moderate complexity (4 params, 2 required), the description covers the essential workflow: updating DDL, locking, unlocking, and optional activation. It lacks information on error handling or return values, but given the absence of annotations and output schema, it provides sufficient context for an agent to use the tool correctly.

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?

The schema already provides 100% description coverage for all four parameters, including examples for ddl_code. The tool description does not add any additional meaning or real-world context beyond what the schema provides. Baseline score of 3 is appropriate since the schema does the heavy lifting.

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 'Update DDL source code of an existing ABAP structure,' which clearly identifies the tool's purpose: modifying an existing structure's DDL. The phrase 'Operation: Update, Create' is slightly misleading because the tool only updates existing structures (structure_name must already exist), but the core action is clear. Among sibling tools like CreateStructure, this distinction is implied.

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 description provides no explicit guidance on when to use this tool versus alternatives like CreateStructure or CheckStructure. It vaguely says 'Will be useful for updating or creating structure,' but creation is not supported. No exclusions or prerequisites are mentioned, leaving the agent without decision support.

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

UpdateTableB

Operation: Update, Create. Subject: Table. Will be useful for updating or creating table. Update DDL source code of an existing ABAP table. Locks, updates, unlocks, and optionally activates.

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoActivate table after source update. Default: true.
ddl_codeYesComplete DDL source code for table. Example: '@EndUserText.label : \'My Table\' @AbapCatalog.tableCategory : #TRANSPARENT define table ztst_table { key client : abap.clnt not null; key id : abap.char(10); name : abap.char(255); }'
table_nameYesTable name (e.g., ZZ_TEST_TABLE_001). Table must already exist.
transport_requestNoTransport request number (e.g., E19K905635). Optional if object is local or already in transport.

TDQS

B3.1/5.0
Behavior3/5

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

Discloses that it locks, updates, unlocks, and optionally activates. With no annotations, the description bears the burden, and it partially meets it. However, it does not mention permissions, rollback, or error handling behavior. The activation behavior is mentioned but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short but includes redundant phrases like 'Will be useful for updating or creating table'. It is somewhat concise but could be more direct and better structured, e.g., by removing the first two sentences.

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

Completeness3/5

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

Covers the main action (update DDL) and side effects (lock, activate). However, it lacks explanation of return values (no output schema), error conditions, or prerequisites beyond the schema. The 'Create' mention is misleading. Adequate for a tool with good schema coverage but not complete.

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 the schema already documents all parameters. The description adds context about locking and activation but does not significantly enhance parameter understanding beyond the schema. Baseline 3 is appropriate.

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 that it updates DDL source code of an existing ABAP table, which is specific. However, it also mentions 'Update, Create' as operations and says 'useful for updating or creating table', which creates ambiguity since creating a table is a separate sibling tool (CreateTable). Could be clearer about only updating existing tables.

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?

No explicit guidance on when to use this tool versus alternatives like CreateTable or ActivateTable. The description does not state when not to use it (e.g., for new tables). Only implies usage for updating existing tables.

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

UpdateUnitTestA

Update an ABAP Unit test run. Note: ADT does not support updating unit test runs and will return an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesRun identifier returned by CreateUnitTest/RunUnitTest.

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description must cover behavior. It transparently states that the tool will return an error when used, which is honest about its lack of functionality. However, it doesn't detail the error format or side effects.

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 consists of two short sentences. The first states the purpose concisely, and the second adds a critical caveat. There is no unnecessary information, and every word is informative.

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

Completeness3/5

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

Given the tool has one parameter and no output schema, the description covers the basic purpose and warns of failure. However, it lacks detail about what the update would do if it worked, and the note about failure is essential. Completeness is adequate for a simple stub 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 description coverage is 100% for the single parameter 'run_id', which is well-documented in the schema. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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 clearly states 'Update an ABAP Unit test run' with a specific verb and resource. It distinguishes from sibling tools like CreateUnitTest and RunUnitTest. The additional note about ADT not supporting updates is informative but does not obscure the purpose.

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 explicitly warns that ADT does not support updating and will return an error, effectively telling the agent not to use this tool. This is strong usage guidance, though no alternative tools are mentioned.

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

ValidateServiceBindingB

Validate service binding parameters (name, service definition, package, version) via ADT validation endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoOptional description used during validation.
package_nameNoABAP package for the binding.
service_binding_nameYesService binding name to validate.
service_binding_versionNoService binding version (for example: 1.0).
service_definition_nameYesService definition linked to binding.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided. The description mentions 'via ADT validation endpoint' but does not disclose side effects, read-only nature, or authentication requirements. Since it is validation, it likely has no side effects, but this is not stated.

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?

Single sentence with no unnecessary words. It is front-loaded with the tool's core purpose.

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

Completeness3/5

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

The tool has 5 parameters (2 required) and no output schema. The description does not explain the return value (e.g., success/failure or error details). It is adequate but could be more complete.

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 100%, meeting the baseline. The description lists the parameters being validated, but does not add additional semantics beyond what the schema already provides.

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 clearly states the tool validates service binding parameters and specifies the validated fields (name, service definition, package, version). The verb 'Validate' is specific, but it does not differentiate from sibling tools, though no other sibling is a validation tool for service bindings.

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?

No guidance on when to use this tool versus alternatives like CreateServiceBinding or UpdateServiceBinding. It does not mention prerequisites or context for validation.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv9.0.0
    • AddedGetEnhancementSpot
    • AddedGetInclude
    • AddedGetIncludesList
  2. 18 tool updatesv8.12.1
    • RemovedGetDataElementVersionDiff
    • RemovedGetDataElementVersions
    • RemovedGetDataElementVersionSource
    • RemovedGetDomainVersionDiff
    • RemovedGetDomainVersions
    • RemovedGetDomainVersionSource
    • RemovedGetEnhancementSpot
    • RemovedGetFunctionGroupVersionDiff
    • RemovedGetFunctionGroupVersions
    • RemovedGetFunctionGroupVersionSource
    • RemovedGetInclude
    • RemovedGetIncludesList
    • ChangedGetObjectVersionDiff1 field changed
      • changedInput schema / properties / object_type / enum
        Previous value: -[
        -  "class",
        -  "program",
        -  "interface",
        -  "function_group",
        -  "function_module",
        -  "table",
        -  "structure",
        -  "ddl",
        -  "domain",
        -  "data_element",
        -  "package",
        -  "behavior_definition",
        -  "metadata_extension"
        -]New value: +[
        +  "class",
        +  "program",
        +  "interface",
        +  "function_module",
        +  "table",
        +  "structure",
        +  "ddl",
        +  "behavior_definition",
        +  "metadata_extension"
        +]
    • ChangedGetObjectVersions1 field changed
      • changedInput schema / properties / object_type / enum
        Previous value: -[
        -  "class",
        -  "program",
        -  "interface",
        -  "function_group",
        -  "function_module",
        -  "table",
        -  "structure",
        -  "ddl",
        -  "domain",
        -  "data_element",
        -  "package",
        -  "behavior_definition",
        -  "metadata_extension"
        -]New value: +[
        +  "class",
        +  "program",
        +  "interface",
        +  "function_module",
        +  "table",
        +  "structure",
        +  "ddl",
        +  "behavior_definition",
        +  "metadata_extension"
        +]
    • ChangedGetObjectVersionSource1 field changed
      • changedInput schema / properties / object_type / enum
        Previous value: -[
        -  "class",
        -  "program",
        -  "interface",
        -  "function_group",
        -  "function_module",
        -  "table",
        -  "structure",
        -  "ddl",
        -  "domain",
        -  "data_element",
        -  "package",
        -  "behavior_definition",
        -  "metadata_extension"
        -]New value: +[
        +  "class",
        +  "program",
        +  "interface",
        +  "function_module",
        +  "table",
        +  "structure",
        +  "ddl",
        +  "behavior_definition",
        +  "metadata_extension"
        +]
    • RemovedGetPackageVersionDiff
    • RemovedGetPackageVersions
    • RemovedGetPackageVersionSource
  3. 8 tool updatesv8.6.1
    • AddedCreateMessageClass
    • AddedCreateMessageClassMessage
    • AddedDeleteMessageClass
    • AddedDeleteMessageClassMessage
    • AddedGetMessageClass
    • AddedGetMessageClassMessage
    • AddedUpdateMessageClass
    • AddedUpdateMessageClassMessage
  4. 37 tool updatesv8.5.0
    • AddedGetBehaviorDefinitionVersionDiff
    • AddedGetBehaviorDefinitionVersions
    • AddedGetBehaviorDefinitionVersionSource
    • AddedGetClassVersionDiff
    • AddedGetClassVersions
    • AddedGetClassVersionSource
    • AddedGetDataElementVersionDiff
    • AddedGetDataElementVersions
    • AddedGetDataElementVersionSource
    • AddedGetDdlVersionDiff
    • AddedGetDdlVersions
    • AddedGetDdlVersionSource
    • AddedGetDomainVersionDiff
    • AddedGetDomainVersions
    • AddedGetDomainVersionSource
    • AddedGetFunctionGroupVersionDiff
    • AddedGetFunctionGroupVersions
    • AddedGetFunctionGroupVersionSource
    • AddedGetFunctionModuleVersionDiff
    • AddedGetFunctionModuleVersions
    • AddedGetFunctionModuleVersionSource
    • AddedGetInterfaceVersionDiff
    • AddedGetInterfaceVersions
    • AddedGetInterfaceVersionSource
    • AddedGetMetadataExtensionVersionDiff
    • AddedGetMetadataExtensionVersions
    • AddedGetMetadataExtensionVersionSource
    • AddedGetObjectVersionDiff
    • AddedGetPackageVersionDiff
    • AddedGetPackageVersions
    • AddedGetPackageVersionSource
    • AddedGetStructureVersionDiff
    • AddedGetStructureVersions
    • AddedGetStructureVersionSource
    • AddedGetTableVersionDiff
    • AddedGetTableVersions
    • AddedGetTableVersionSource
  5. 2 tool updatesv8.2.0
    • AddedGetObjectVersions
    • AddedGetObjectVersionSource
  6. 14 tool updatesv8.1.0
    • ChangedCreateBehaviorDefinition1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateClass1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateDataElement1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateDdl1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateDomain1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateFunctionGroup1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateInterface1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateMetadataExtension1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreatePackage1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateServiceBinding1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateServiceDefinition1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateStructure1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedCreateTable1 field changed
      • addedInput schema / properties / master_language
        Added value: +{
        +  "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.",
        +  "type": "string"
        +}
    • ChangedGetWhereUsed2 fields changed
      • addedInput schema / properties / disable_types
        Added value: +{
        +  "description": "Remove these ADT object types from the default scope, keeping the rest (e.g. ['CLAS/OC'] to drop class usages). Applied on top of the default scope or of enable_only_types/enable_all_types.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / enable_only_types
        Added value: +{
        +  "description": "Restrict the search to ONLY these ADT object types (e.g. ['TABL/DS','TABL/DT'] for structures, ['DDLS/DF'] for CDS sources). SAP applies the selection server-side, so unwanted types (e.g. hundreds of CLAS/OC) are never searched nor returned — use this instead of enable_all_types to avoid huge result sets. Values must be object-type codes from THIS object's where-used scope (the searchable categories, e.g. 'CLAS/OC','INTF/OI','FUGR/FF','DDLS/DF', not result-row codes like 'FUGR/F'). If any value is not searchable for the object the call returns an error listing the supported types — it never falls back to the unfiltered default set. Takes precedence over enable_all_types.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  7. 12 tool updatesv8.0.0
    • AddedActivateDdl
    • RemovedActivateView
    • AddedCheckDdl
    • RemovedCheckView
    • AddedCreateDdl
    • RemovedCreateView
    • AddedDeleteDdl
    • RemovedDeleteView
    • AddedGetDdl
    • RemovedGetView
    • AddedUpdateDdl
    • RemovedUpdateView
  8. 1 tool updatev7.1.1
    • ChangedUpdateFunctionInclude1 field changed
      • addedInput schema / properties / activate
        Added value: +{
        +  "default": false,
        +  "description": "Activate the include after the source update. Default: false. Set true to make the updated source the active version immediately.",
        +  "type": "boolean"
        +}
  9. 7 tool updatesv7.1.0
    • AddedCreateFunctionInclude
    • AddedDeleteFunctionInclude
    • AddedGetStructuresList
    • AddedListFunctionGroupIncludes
    • AddedListFunctionModules
    • AddedReadFunctionInclude
    • AddedUpdateFunctionInclude
  10. 2 tool updatesv7.0.0
    • AddedActivateServiceDefinition
    • AddedCreatePackage
  11. 2 tool updatesv6.11.3
    • RemovedActivateServiceDefinition
    • RemovedCreatePackage
  12. 5 tool updatesv6.11.0
    • ChangedGetAbapAST1 field changed
      • removedInput schema / properties / filePath
        Removed value: -{
        -  "description": "Optional file path to write the result to",
        -  "type": "string"
        -}
    • ChangedGetAbapSemanticAnalysis1 field changed
      • removedInput schema / properties / filePath
        Removed value: -{
        -  "description": "Optional file path to write the result to",
        -  "type": "string"
        -}
    • ChangedGetAbapSystemSymbols1 field changed
      • removedInput schema / properties / filePath
        Removed value: -{
        -  "description": "Optional file path to write the result to",
        -  "type": "string"
        -}
    • ChangedGetIncludesList1 field changed
      • changedInput schema / properties / object_type / description
        Previous value: -"[read-only] ADT object type (e.g. PROG/P, PROG/I, FUGR, CLAS/OC)"New value: +"[read-only] ADT object type of the parent. Only these four values are supported: 'PROG/P' (program), 'PROG/I' (include), 'FUGR' (function group), 'CLAS/OC' (class). Any other value is rejected by the schema."
    • ChangedGetWhereUsed3 fields changed
      • changedInput schema / properties / enable_all_types / description
        Previous value: -"If true, searches in all available object types (Eclipse 'select all' behavior). Default: false (uses SAP default scope)"New value: +"If true, expands the scope to all available object types (Eclipse 'select all' behavior) by flipping every isSelected flag in the scope XML. Default: false (SAP default scope). Note: on large systems this can make the search significantly slower."
      • changedInput schema / properties / object_name / description
        Previous value: -"Name of the ABAP object"New value: +"Name of the ABAP object. For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name)."
      • changedInput schema / properties / object_type / description
        Previous value: -"Type of the ABAP object (class, interface, program, table, etc.)"New value: +"Type of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function' / 'functiongroup' / 'fugr' (function group), 'functionmodule' / 'function_module' / 'fugr/ff' (function module — see object_name format), 'package' / 'devc/k', 'table' / 'tabl/dt', 'structure' / 'stru/dt', 'domain' / 'doma/dd', 'dataelement' / 'dtel', 'view' / 'ddls/df' (CDS DDL source only — classic DDIC views are not supported). Any other value throws 'Unsupported object type'."

TDQS

B3.1/5.0

Scored across 193 tools

Disambiguation3/5

Tools are generally distinct by object type (class, interface, table, etc.) but there are several confusing overlaps: GetObjectVersions vs GetClassVersions, GetUnitTest vs GetUnitTestStatus vs GetUnitTestResult, and RunUnitTest vs CreateUnitTest are nearly identical. The low-level tools (GetObjectStructureLow, GetNodeStructureLow) add ambiguity despite descriptions.

Naming Consistency4/5

Most tools follow a clear Get/Create/Update/Delete/Activate/Check + object pattern, but there are deviations like ListTransports, ReadFunctionInclude, DescribeByList, and GetSqlQuery. Also a mix of List and Get for similar operations, and some low-level suffixes (Low) break the pattern.

Tool Count1/5

193 tools is extremely excessive for any MCP server, even a comprehensive ABAP development tool. Many tools are redundant (e.g., GetObjectVersions alongside type-specific version tools, multiple unit test status tools), and the surface could be reduced to ~50 tools without losing functionality.

Completeness4/5

The tool set covers the full lifecycle of ABAP development objects: create/read/update/delete for most types, plus activation, syntax checks, version history, diffs, unit testing, and runtime profiling. Minor gaps include missing update/delete for packages and some service definition operations, but the coverage is generally strong.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    Not graded
    maintenance
    An MCP server that facilitates seamless interaction with SAP ABAP systems to manage development objects, transport requests, and source code. It provides a comprehensive suite of tools for performing syntax checks, object searches, and code modifications via the ADT API.
    100
    -
  • A
    license
    C
    quality
    D
    maintenance
    An MCP server that enables seamless communication between ABAP systems and MCP clients using the ABAP Development Tools (ADT) API. It provides tools for managing ABAP objects, handling transport requests, and performing code analysis directly through MCP-compatible interfaces.
    100
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server for SAP ABAP development that enables AI assistants and code editors to interact with SAP systems via ABAP Developer Toolkit (ADT) APIs, supporting read, create, update, and delete of ABAP objects.
    100
    90
    MIT