SAP ADT MCP Server
Enables interaction with SAP systems via the ABAP Development Tools (ADT) REST API, allowing AI assistants to read ABAP source code, inspect Data Dictionary (DDIC) objects, fetch CDS view definitions, and execute ABAP SQL queries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SAP ADT MCP ServerShow me the source code for ABAP class CL_SALV_TABLE"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SAP ADT MCP Server
MCP server for SAP ABAP Development Tools (ADT) REST API. Enables AI assistants to read, create, and modify ABAP source code, inspect DDIC objects, execute SQL queries, manage transports, analyze traces, fetch short dumps, control the debugger, and more — across multiple SAP systems from a single server instance.
Tools (66)
Source Code & DDIC (11)
Tool | Description | Input |
| Fetch ABAP program/report source code |
|
| Fetch ABAP class source code |
|
| Fetch function module source code |
|
| Fetch function group source code |
|
| Fetch ABAP include source code |
|
| Fetch ABAP interface source code |
|
| Fetch CDS view DDL source |
|
| Fetch DDIC structure definition |
|
| Fetch ABAP database table definition |
|
| Fetch DDIC data element definition |
|
| Fetch DDIC domain definition |
|
Repository & Search (3)
Tool | Description | Input |
| Search ABAP objects by name pattern (wildcards supported) |
|
| Fetch transaction details (package, app component) |
|
| Fetch package contents (objects with types/descriptions) |
|
Create, Change & Execute (12)
Tool | Description | Input |
| Create, write source, and activate a program |
|
| Modify an existing program (lock, write, activate, unlock) |
|
| Create, write source, and activate a class |
|
| Modify an existing class (lock, write, activate, unlock) |
|
| Create, write source, and activate an interface |
|
| Modify an existing interface (lock, write, activate, unlock) |
|
| Create, write source, and activate a CDS view |
|
| Modify an existing CDS view (lock, write, activate, unlock) |
|
| Execute a program and return WRITE output |
|
| Execute ABAP SQL query and return results as table |
|
| Fetch ST22 short dumps for a date |
|
| Fetch CSRF token and session cookie | (none) |
Transport Management (7)
Tool | Description | Input |
| List all modifiable transports for current user | (none) |
| Get full transport details (tasks, objects, status) |
|
| Check transport requirements for an object |
|
| Create a new transport request |
|
| Release a transport for import |
|
| Delete a transport request |
|
| List SAP system users | (none) |
SAT Trace (7)
Tool | Description | Input |
| List ABAP runtime traces (SAT/SE30) |
|
| Get performance hit list for a trace |
|
| Get database access statistics for a trace |
|
| Get statement-level call tree for a trace |
|
| Delete a runtime trace |
|
| Create a trace collection configuration |
|
| Delete a trace configuration |
|
ST05 Performance Trace (3)
Tool | Description | Input |
| Enable SQL/buffer/RFC/auth trace for a user |
|
| Disable all active performance traces | (none) |
| Get active trace types, user filter, and server info | (none) |
Cross Trace (5)
Tool | Description | Input |
| Enable cross trace for RAP, OData, SADL, BAdI, Gateway |
|
| Disable a cross trace activation |
|
| List active cross trace activations | (none) |
| List captured cross trace results |
|
| Get detailed records for a cross trace |
|
Service Binding (3)
Tool | Description | Input |
| Get OData service binding details |
|
| Publish an OData service binding |
|
| Unpublish an OData service binding |
|
Debugger (14)
Tool | Description | Input |
| Start debugger listener (opens stateful session) |
|
| Stop listener and close debug session |
|
| Check if a debugger session is attached |
|
| Set a breakpoint at a source location |
|
| Remove a breakpoint |
|
| Attach to a running ABAP debug session |
|
| Get the current call stack | (none) |
| Get variable values |
|
| Get child/nested variable values |
|
| Set a variable value during debugging |
|
| Step into/over/return/continue/terminate |
|
| Navigate to a stack frame |
|
| Set a watchpoint on a variable (pause on value change) |
|
| List all active watchpoints | (none) |
Multi-System (1)
Tool | Description | Input |
| List all configured SAP systems with IDs, hostnames, and clients | (none) |
All tools accept an optional system_id parameter to target a specific SAP system. Omit to use the default (first configured) system.
Prerequisites
Node.js v18 or later
SAP user with S_ADT_RES authorization for ADT resource access
ICF services activated under
/sap/bc/adt/(via transactionSICF)Role SAP_BC_DWB_ABAPDEVELOPER or equivalent
Installation
git clone https://github.com/ethanhan2014/sap-adt-mcp.git
cd sap-adt-mcp
npm install
npm run buildConfiguration
Option 1: Single system via .env
cp .env.example .envEdit .env with your SAP system connection details:
SAP_HOSTNAME=your-sap-host.example.com
SAP_SYSNR=50
SAP_USERNAME=YOUR_USER
SAP_PASSWORD=YOUR_PASSWORD
SAP_CLIENT=001
SAP_LANGUAGE=ENVariable | Description | Example |
| SAP system hostname |
|
| System number (port = |
|
| SAP user |
|
| SAP password |
|
| SAP client |
|
| Logon language (default: |
|
Option 2: Multiple systems via systems.json
Create systems.json in the project root (see systems.json.example):
[
{
"id": "DEV",
"hostname": "dev-system.sap.com",
"sysnr": "50",
"client": "001",
"username": "YOUR_USER",
"password": "YOUR_PASSWORD",
"language": "EN"
},
{
"id": "QA",
"hostname": "qa-system.sap.com",
"sysnr": "00",
"client": "001",
"authType": "certificate",
"certThumbprint": "YOUR_CERT_THUMBPRINT",
"language": "EN"
}
]When systems.json is present, .env is ignored for system configuration. The first system is the default. Use system_id on any tool call to target a specific system.
Supported auth types:
basic (default) — username/password
certificate — X.509 client certificate via
certThumbprint
Usage
Claude Code
Add to ~/.claude.json:
{
"mcpServers": {
"sap-adt": {
"command": "node",
"args": ["/path/to/sap-adt-mcp/dist/index.js"]
}
}
}Cline (VS Code)
Add to Cline MCP settings (cline_mcp_settings.json):
{
"mcpServers": {
"sap-adt": {
"command": "node",
"args": ["/path/to/sap-adt-mcp/dist/index.js"],
"disabled": false,
"autoApprove": []
}
}
}Standalone
npm startDevelopment (with MCP Inspector)
npx @modelcontextprotocol/inspector node dist/index.jsTech Stack
TypeScript + Node.js
MCP SDK (
@modelcontextprotocol/sdk)Axios for HTTP
SAP ADT REST API over HTTPS with Basic Auth or X.509 Certificate
Available Tools
66 toolsattach_debuggerB
Attach the debugger to a running ABAP session
| Name | Required | Description | Default |
|---|---|---|---|
| debug_mode | No | Debugging mode (default: user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose behavioral traits like whether it requires an existing debugger listener, side effects, or error conditions. The minimal description 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the tool's purpose. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (debugger attachment), the lack of output schema, and no annotations, the description is incomplete. It does not explain return values, prerequisites, or behavior when no session is running.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no additional meaning beyond what the schema already provides for debug_mode and system_id. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('attach the debugger') and the target ('to a running ABAP session'). It is specific and distinguishes itself from sibling debugger tools like debugger_step or set_debugger_breakpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 start_debugger_listener or debugger_step. 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.
change_abap_classA
Modify an existing ABAP class in the SAP system. Locks the object, writes the new source, activates, and unlocks. Use get_class first to read the current source.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Class name (e.g. ZCL_MY_CLASS) | |
| source | Yes | Complete new ABAP class source code including CLASS definition and IMPLEMENTATION. | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavioral traits: locks the object, writes source, activates, and unlocks. This informs the agent about side effects and execution steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no wasted words. Purpose is front-loaded, and the usage guideline is immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema or annotations, the description adequately covers purpose, prerequisites, and behavior. Missing details on return value or error handling, but acceptable for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by clarifying that the source parameter must include complete CLASS definition and IMPLEMENTATION. Provides additional context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Modify an existing ABAP class' with specific verb and resource, distinguishing it from sibling tools like create_abap_class and change_abap_program.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite: 'Use get_class first to read the current source.' Does not explicitly state when not to use or alternatives, but gives clear context for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_abap_programA
Modify an existing ABAP program/report in the SAP system. Locks the object, writes the new source, activates, and unlocks. Use get_abap_program first to read the current source.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Program name (e.g. ZHANZ_TEST) | |
| source | Yes | Complete new ABAP source code. Must start with REPORT statement. | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses locking, writing, activating, and unlocking—key behaviors for a modification tool. No annotations provided, so description carries full burden. Lacks mention of error handling or required authorizations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences; first states purpose, second gives prerequisite guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a complicated tool: mentions lifecycle steps. Lacks return value description (e.g., transport request, success indicator). However, no output schema exists, so burden is higher. Still, the core workflow is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value: source must start with REPORT, system_id defaults to default system. These details help correct invocation beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Modify' and resource 'existing ABAP program/report'. Distinguishes from siblings like 'create_abap_program' and 'change_abap_class' by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use 'get_abap_program first to read the current source', guiding the agent to a necessary prerequisite step. Implicitly distinguishes from creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_cds_viewA
Modify an existing CDS view (DDL source) in the SAP system. Locks the object, writes the new source, activates, and unlocks. Use get_cds_view first to read the current source.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | CDS view name (e.g. ZHANZ_MY_VIEW) | |
| source | Yes | Complete new CDS DDL source code including all annotations and define view statement | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses locking, writing, activating, and unlocking, which are key behaviors. However, missing details on error handling, permissions, or impact on dependent objects, making it only adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the action and steps, then provide usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a modification tool with no output schema, description covers the core process but lacks details on failure scenarios (e.g., activation errors), locking conflicts, or post-modification validation. Adequate for basic use but incomplete for robust agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. Description adds no new meaning beyond repeating the schema's description for 'source' parameter. No extra context for 'name' or 'system_id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool modifies an existing CDS view (DDL source) and lists the steps: lock, write, activate, unlock. This specific verb+resource distinguishes it from sibling tools like get_cds_view (read) and create_cds_view (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use get_cds_view first to read current source, providing clear context for when to use this tool. Lacks explicit 'when not to use' but the single guideline is effective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_interfaceA
Modify an existing ABAP interface in the SAP system. Locks the object, writes the new source, activates, and unlocks. Use get_interface first to read the current source.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Interface name (e.g. ZIF_MY_INTERFACE) | |
| source | Yes | Complete new ABAP interface source code including INTERFACE definition. | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes locking, writing, activating, unlocking – discloses side effects beyond 'modify'. However, lacks details on failure handling or prerequisites for locking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no fluff. Critical information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and prerequisite. Missing output/return info (e.g., success indicator or transport number), but adequate for a modification tool with 3 params and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds no extra semantic detail beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Modify an existing ABAP interface' – clear verb+resource. Distinguishes from sibling create_interface and get_interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using get_interface first to read current source. Could mention avoid using for creation or deletion, but still helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_abap_classA
Create a new ABAP class in the SAP system. Creates the class, writes source code, and activates it. By default creates in $TMP (local objects, no transport required).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Class name (must start with Z or Y, e.g. ZCL_MY_CLASS) | |
| description | Yes | Short description of the class (max 70 chars) | |
| source | Yes | ABAP class source code. Must include CLASS definition and IMPLEMENTATION. | |
| package | No | Development package (default: $TMP for local objects) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool creates, writes source, and activates the class. However, it does not discuss error handling, overwriting, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the core action and adds the default behavior efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with 5 parameters and no output schema, the description adequately explains the overall process and default package behavior. It lacks details on return values but is sufficient for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond the schema, except mentioning the default package behavior which is already in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'ABAP class', and includes the actions of writing source and activating. It distinguishes from siblings like 'change_abap_class' and 'create_abap_program'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies default behavior ($TMP local objects) implying when a transport is not required. It does not explicitly say when to use alternatives like 'change_abap_class', 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.
create_abap_programA
Create a new ABAP program/report in the SAP system. Creates the program, writes source code, and activates it. By default creates in $TMP (local objects, no transport required).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Program name (must start with Z or Y, e.g. ZHANZ_TEST) | |
| description | Yes | Short description of the program (max 70 chars) | |
| source | Yes | ABAP source code. Must start with REPORT statement. | |
| package | No | Development package (default: $TMP for local objects) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses creation, source writing, and activation. No annotations provided, so description carries full burden. Lacks details on permissions, overwriting behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. Front-loaded with main action: 'Create a new ABAP program/report in the SAP system.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations. Description adequately explains creation but does not mention return values, error handling, or post-creation state. Could include activation confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 5 parameters with descriptions (100% coverage). Description adds the key constraint that source must start with REPORT statement, which is not in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 program/report, writes source code, and activates it. It distinguishes from siblings like change_abap_program and create_abap_class by specifying creation behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions default package $TMP for local objects without transport, implying use for local testing. Does not explicitly exclude scenarios or compare to alternatives like change_abap_program.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cds_viewA
Create a new CDS view (DDL source) in the SAP system. Creates the DDL source, writes the definition, and activates it. By default creates in $TMP.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | CDS view name (must start with Z or Y, e.g. ZHANZ_MY_VIEW) | |
| description | Yes | Short description (max 70 chars) | |
| source | Yes | CDS DDL source code including annotations and define view statement | |
| package | No | Development package (default: $TMP) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses creation, writing, activation, and default package. Missing details on overwrite behavior, error handling, and activation consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no filler words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a creation tool but misses details on error scenarios, return information, and system prerequisites. No output schema to rely on, so description should compensate more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by noting default package ($TMP) and that name must start with Z or Y, which is not explicitly in schema (though schema says 'must start with Z or Y'). Improves understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new CDS view (DDL source) in the SAP system' with specific actions (Creates, writes, activates). Distinguishes from sibling 'change_cds_view'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention alternatives or prerequisites. Only default package is noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interfaceA
Create a new ABAP interface in the SAP system. Creates the interface, writes source code, and activates it. By default creates in $TMP (local objects, no transport required).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Interface name (must start with Z or Y, e.g. ZIF_MY_INTERFACE) | |
| description | Yes | Short description of the interface (max 70 chars) | |
| source | Yes | ABAP interface source code. Must include INTERFACE definition. | |
| package | No | Development package (default: $TMP for local objects) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors (writes source code, activates, defaults to $TMP) but omits potential side effects like overwriting existing interfaces, authorization needs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that front-load the main purpose and include essential context without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description covers creation workflow and default behavior well but could mention what is returned (e.g., success message or object name) and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 each parameter. The description adds value by explaining the default for 'package' ($TMP) and implying naming convention for 'name', but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose with specific verb ('Create') and resource ('ABAP interface'), includes key steps (writes source code, activates), and distinguishes from siblings like 'change_interface' by implying creation vs. modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the default package $TMP as a usage hint but does not explicitly state when to use this tool vs alternatives (e.g., when to create vs. change an interface) or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_trace_configB
Create a trace collection configuration to capture an ABAP runtime trace
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | Object name to trace (e.g. program or transaction) | |
| process_type | No | Process type: HTTP, DIALOG, RFC, etc. (default: any) | |
| description | No | Description for the trace configuration | |
| max_executions | No | Maximum number of executions to capture (default: 10) | |
| object_type | No | Object type: any, report, transaction, functionmodule, url (default: any) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as whether the configuration starts tracing immediately, permissions required, or side effects. It only states the creation act.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no annotations), the description lacks crucial context such as what the return value is, how to use the created config, or subsequent steps. It is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains all parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a trace collection configuration to capture an ABAP runtime trace, with a specific verb and resource. It distinguishes from sibling tools like delete_trace_config or get_trace_hitlist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 list_traces or enable_cross_trace. The purpose is implied but not explicitly contrasted with other trace-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_transportB
Create a new transport request in the SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| devclass | Yes | Development class/package (e.g. ZPACKAGE) | |
| description | Yes | Transport description text | |
| ref | No | Object reference URI | |
| operation | No | Operation (default: I_CTS_OBJECT_CHECK) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details. It does not disclose whether the tool requires specific authorizations, what happens on failure, or if it has any side effects. The description is too minimal to inform the agent about the tool's behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and to the point. However, it is slightly too brief; adding a sentence about typical usage or return value would improve structure without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 5 parameters (2 required), no output schema, and no annotations, the description is incomplete. It does not explain what the tool returns (e.g., the new transport number), nor does it address important behavioral details. The minimal information leaves the agent under-informed for proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage with clear parameter descriptions (e.g., default for 'operation', examples for 'devclass'). The tool description adds no additional meaning beyond what the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new transport request in the SAP system', using a specific verb ('create') and resource ('transport request'). This distinguishes it from sibling tools like 'delete_transport', 'release_transport', and 'list_user_transports', providing clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of prerequisites, when not to use it, or any comparison to sibling tools. For example, it does not indicate that 'release_transport' should be used after creating a transport, leaving the agent without context for proper workflow sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debugger_goto_stackB
Navigate to a specific stack frame in the debugger
| Name | Required | Description | Default |
|---|---|---|---|
| stack_type | Yes | Stack type identifier | |
| position | Yes | Stack position (0-based) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but fails to disclose effects (e.g., does it change the current frame? trigger side effects?) or requirements (e.g., active session).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded. While efficient, it lacks structure; a bit more detail could improve without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 3 parameters and no output schema, the description does not explain preconditions, return values, or how navigation works, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning; it relies on the schema's parameter descriptions, which are adequate but minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Navigate') and the resource ('specific stack frame in the debugger'), distinguishing it from sibling tools like debugger_step and get_debugger_stack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description omits context such as prerequisites (e.g., active debug session) or comparisons to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debugger_stepA
Execute a debug step. stepInto/stepOver/stepReturn/stepContinue use batch mode (step+getStack). stepRunToLine/stepJumpToLine/terminateDebuggee use action mode.
| Name | Required | Description | Default |
|---|---|---|---|
| step_type | Yes | Step type: stepInto, stepOver, stepReturn, stepContinue, stepRunToLine, stepJumpToLine, terminateDebuggee | |
| uri | No | Source URI (required for stepRunToLine/stepJumpToLine) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden of behavioral disclosure. It reveals that stepInto/stepOver/stepReturn/stepContinue operate in batch mode (step + getStack), which is additional context beyond the schema. No contradictory behaviors are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first defines the tool's purpose, and the second efficiently explains the two behavioral modes. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, 1 required) and lack of output schema, the description covers the essential behavioral modes and parameter relationships. It omits details about prerequisites (e.g., active debugger session) and error conditions, but is adequate for the stepping context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by clarifying the batch vs action mode distinction for step_type and indicating that uri is required only for certain step types. This helps agents understand parameter dependencies beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Execute a debug step' and lists all step types, differentiating batch mode (stepInto/stepOver/stepReturn/stepContinue) from action mode (stepRunToLine/stepJumpToLine/terminateDebuggee). This effectively distinguishes it from sibling tools like set_debugger_breakpoint or debugger_goto_stack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two modes of operation (batch vs action) and implies when to use each based on step type. However, it does not explicitly state when not to use this tool or provide alternatives for related actions like breakpoint insertion or stack navigation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_debugger_breakpointB
Remove a breakpoint from the debugger
| Name | Required | Description | Default |
|---|---|---|---|
| breakpoint_id | Yes | Breakpoint ID to delete | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 fails to mention side effects (e.g., is it destructive?), authorization needs, or behavior if the breakpoint does not exist. The description is too minimal for a deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It is front-loaded with the verb 'Remove', making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with two parameters and no output schema, the description is adequate but not exhaustive. It lacks behavioral context and doesn't mention the optional system_id parameter, but the schema compensates partially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described in schema). The description adds no parameter information 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'breakpoint' in the context of the debugger. It clearly distinguishes from sibling tools like set_debugger_breakpoint (add) and other debugger operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites (e.g., active debug session), and no exclusions. Sibling tools like set_debugger_breakpoint exist, but no comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_traceB
Delete a runtime trace
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID to delete | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as destructiveness, permission requirements, or side effects. For a delete operation, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core function. No unnecessary words, but could benefit from front-loading key constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is minimally adequate. However, it lacks important context such as whether deletion is irreversible or if it requires specific permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters. The description does not add any additional meaning beyond what the schema already provides, 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.
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 'runtime trace'. It is distinct from sibling tools like 'delete_trace_config' which deals with configurations, not traces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'delete_trace_config' or what happens if the trace is active. No context on prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_trace_configC
Delete a trace collection configuration
| Name | Required | Description | Default |
|---|---|---|---|
| config_id | Yes | Configuration ID to delete | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of disclosing behaviors, but it only states 'Delete' without explaining side effects, reversibility, or permissions. The agent has no insight into the consequences 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at only five words, which is efficient for a simple delete operation. However, given the lack of annotations, a slightly more detailed description could have been warranted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive action with no output schema and no annotations, the description is insufficiently complete. It omits critical behavioral context such as confirmation requirements, effects on related data, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage. The description adds no additional semantic information beyond what the schema provides, so it meets the baseline but does not improve clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'trace collection configuration', making the purpose straightforward. However, it does not differentiate from the sibling tool 'delete_trace', which may cause confusion about which resource is being deleted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 instead of alternatives like 'delete_trace' or 'create_trace_config'. The description 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.
delete_transportB
Delete a transport request from the SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| transport_number | Yes | Transport number (e.g. DEVK900123) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 'Delete', implying a destructive action, but fails to mention consequences like irreversibility, required permissions, or side effects (e.g., impact on dependent objects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It efficiently conveys the core purpose without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 minimally adequate. It conveys the action and resource but lacks details on post-invocation effects or return values, which would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 additional information 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'transport request', with specific application context 'from the SAP system'. This distinguishes it from siblings like 'release_transport' or 'create_transport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance provided. The description does not specify when to use this tool versus alternatives such as 'release_transport', nor does it mention prerequisites or conditions for invoking the delete operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_cross_traceA
Disable an ABAP Cross Trace activation by its ID. Use get_cross_trace_activations to find the activation ID.
| Name | Required | Description | Default |
|---|---|---|---|
| activation_id | Yes | Activation ID to delete | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 'Disable', implying mutation, but does not explain side effects, reversibility, permissions, or what happens to associated data. This is minimal transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that accomplishes its purpose without any wasted words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the essential action and prerequisite. However, it lacks details on what the tool returns or any confirmation of success. Given the lack of output schema, some additional context on outcome would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 a brief note on system_id ('Omit to use default system') but no deeper semantics. Baseline 3 is appropriate as the description does not significantly augment schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disable') and the resource ('ABAP Cross Trace activation by ID'). It also references a related tool to find the ID, making the purpose unambiguous and distinct from siblings like enable_cross_trace or delete_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite: use get_cross_trace_activations to obtain the activation ID. While it doesn't explicitly mention when not to use the tool, the purpose is straightforward and the guidance is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_st05_traceB
Disable ST05 performance trace. Stops all active trace collection on the server.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic effect (stops trace collection) but does not disclose side effects, reversibility, permissions, or impact on existing traces. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that provide essential information without extraneous content. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one optional param, no output schema), the description is minimally adequate but lacks details on effect granularity (e.g., does it clear traces?) and comparison with delete_trace. Missing guidance for agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single parameter (system_id) with an example and default behavior. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (disable) and the resource (ST05 performance trace), and it specifies that it stops all active trace collection. This distinguishes it from sibling tools like enable_st05_trace or get_st05_trace_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 delete_trace or disable_cross_trace. It does not mention context, prerequisites, or edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_cross_traceA
Enable ABAP Cross Trace for a user. Traces RAP, OData, SADL, BAdI, Gateway and other framework components continuously (up to max_traces). Unlike SAT trace which captures only 1 execution, cross trace captures multiple requests over time.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | SAP username to trace (default: current user) | |
| description | No | Trace description (default: 'Cross trace <USER>') | |
| max_traces | No | Maximum number of traces to capture (default: 100) | |
| expiry_hours | No | Hours until trace auto-deletes (default: 24) | |
| components | No | Component names to trace (default: all available components). Use list_cross_trace_components to see available names. | |
| trace_level | No | Trace detail level 1-3 (default: 2) | |
| request_type_filter | No | Filter by request type: T=Transaction, C=RFC, U=URL, O=OData V2, 4=OData V4, B=Batch, etc. (default: all) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 continuous tracing, auto-deletion via expiry_hours, and a max_traces limit. However, it omits potential side effects (e.g., performance impact, replacing existing traces, authorization requirements) and does not confirm whether enabling again extends the trace or creates a new one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The first sentence states the action and purpose; the second provides a critical distinction from SAT trace. All information is relevant and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 optional parameters, no output schema, and no annotations, the description covers the core functionality and key differentiator. It lacks details on return value (e.g., trace ID), but given the simplicity of enabling a trace, it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so baseline is 3. The description adds minimal param insight beyond the schema (only the sentence about components defaulting to all and the request_type_filter examples). No significant added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enables ABAP Cross Trace for a user, listing specific framework components (RAP, OData, SADL, etc.) and contrasting it with SAT trace, which captures only one execution. This distinguishes it from sibling tools like enable_st05_trace and disable_cross_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contrasts cross trace with SAT trace ('Unlike SAT trace...'), implying cross trace is for continuous monitoring over time. It mentions defaults and a sibling tool list_cross_trace_components, but does not explicitly state when to use or avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_st05_traceA
Enable ST05 performance trace (SQL trace, buffer trace, etc.) for a specific user. By default enables SQL trace with stack trace. The trace runs continuously until disabled with disable_st05_trace.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | SAP username to trace (default: current user) | |
| sql | No | Enable SQL trace (default: true) | |
| buffer | No | Enable buffer trace (default: false) | |
| enqueue | No | Enable enqueue trace (default: false) | |
| rfc | No | Enable RFC trace (default: false) | |
| http | No | Enable HTTP trace (default: false) | |
| auth | No | Enable authorization trace (default: false) | |
| stack_trace | No | Include ABAP stack traces (default: true) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes default behavior (SQL trace with stack trace) and continuous running, but lacks details on performance impact, idempotency, or what happens if already enabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and variants, second explains duration and defaults. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers defaults and operation, but does not explain output/return value or prerequisites for system_id; somewhat adequate for a trace tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds default behavior context but no new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool enables ST05 performance trace for a specific user, listing variants like SQL trace. Distinguishes from sibling tools like disable_st05_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates trace runs until disabled with disable_st05_trace, but does not mention when not to use or differentiate from enable_cross_trace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_programA
Execute an ABAP program/report on the SAP system and return the list output. The program must be activated. Returns the WRITE output as plain text.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Program name to execute (e.g. ZHANZ_MCP_HELLO) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 the program must be activated and that output is plain text, but omits important details such as authorization requirements, error handling, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no filler. It front-loads the core action and is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description covers core functionality, precondition, and output format. Missing details like error handling and timeout behavior, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions (100% coverage). The description adds examples ('e.g. ZHANZ_MCP_HELLO', 'e.g. DEV') but does not provide significant additional meaning beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes an ABAP program/report and returns WRITE output as plain text. It uses a specific verb 'Execute' and resource 'ABAP program/report', and is distinct from sibling tools like debugger or trace tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for running ABAP programs that must be activated, but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions for not using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_sqlA
Execute an ABAP SQL query on the SAP system and return results as a table. Use standard ABAP SQL syntax (e.g. SELECT vbeln, erdat FROM vbak UP TO 10 ROWS).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ABAP SQL query | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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. The description does not specify whether the tool is read-only (only SELECT queries) or allows modifications (INSERT, UPDATE, DELETE). It lacks warnings about destructive potential, security implications, or execution restrictions, which is critical for an SQL execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the tool's purpose, and includes a practical example. Every word is functional; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description sufficiently explains the input and return format ('results as a table'). It could be improved by mentioning error handling, performance limits, or the scope of allowed SQL statements, but it is not critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, but the description adds meaningful context: for 'query', it provides an example and clarifies standard ABAP SQL syntax; for 'system_id', it explains default behavior ('Omit to use default system'). This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 SQL query on the SAP system and return results as a table.' It includes an example of standard ABAP SQL syntax, making it specific and distinguishable from sibling tools like get_table or create_abap_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear example of when to use the tool ('SELECT vbeln, erdat FROM vbak UP TO 10 ROWS') and implies standard SQL syntax usage. However, it does not explicitly state when not to use it or mention alternatives among siblings, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_st22_dumpsA
Fetch ABAP runtime error dumps (ST22/short dumps) for a specific date. Returns dump time, user, runtime error type, and program. Queries the SNAP table and parses the encoded dump headers.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYYMMDD or YYYY-MM-DD format (e.g. 20260402) | |
| user | No | Filter by SAP username (e.g. WF-BATCH) | |
| max_results | No | Max dumps to return (default: 100) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses that it queries the SNAP table and parses encoded dump headers, implying a read-only operation. It does not mention rate limits or authentication, but for a fetch operation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and key capabilities. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description includes the fields returned (time, user, error type, program) and explains the data source. It does not describe pagination or error handling, but the max_results parameter is documented in the schema. Overall, it provides sufficient context for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for all parameters. The description does not add meaning beyond what the schema provides, but the background on data source and parsing is contextually useful. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches ABAP runtime error dumps (ST22/short dumps) for a specific date, listing returned fields and the underlying mechanism (query SNAP table, parse headers). It is distinct from sibling tools which focus on debugging, tracing, or transport operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or provide context for exclusion. While the tool is specialized enough that implicit usage is clear, there is no guidance on scenarios like multiple dates or handling large result sets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_abap_programB
Fetch ABAP program/report source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Program name (e.g. ZHANZ_CMR) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, required permissions, rate limits, or potential side effects. For a read operation, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key action. No redundant information, though it could benefit from structured formatting (e.g., bullet points) for complex details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fails to mention the return format (likely source code text). The tool is simple but for completeness, a note about the nature of the returned data would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions in the schema are sufficient. The tool description adds no extra meaning beyond stating the resource type (ABAP program/report source code).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches ABAP program/report source code, using specific verb 'Fetch' and resource 'ABAP program/report source code'. This distinguishes it from sibling get_* tools that retrieve different SAP objects (e.g., get_class, get_function_module).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like change_abap_program or execute_program. The description omits context such as prerequisites or typical use cases, 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.
get_binding_detailsB
Get OData service binding details (service URLs, versions, status)
| Name | Required | Description | Default |
|---|---|---|---|
| binding_name | Yes | Service binding name (e.g. ZUI_TRAVEL_O4) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only implies a read operation via 'get' without explicitly stating it is read-only or discussing side effects, permissions, or rate limits. The description lacks sufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose efficiently. Some additional structure (e.g., listing returned fields) might improve readability, but it remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 params, no output schema), the description provides adequate context by listing the types of details returned. It could specify return format more, but it is sufficient for an agent to understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters (binding_name and system_id). The description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves OData service binding details including specific fields like URLs, versions, and status. This distinguishes it from siblings such as publish_service_binding or unpublish_service_binding, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor does it mention prerequisites or exclusions. It simply states what the tool does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cds_viewA
Fetch CDS view DDL source definition from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | CDS view name (e.g. I_BUSINESSPARTNER) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action ('Fetch') without disclosing behavioral traits such as permissions, side effects, or rate limits. The absence of details leaves the agent with limited understanding of tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool, the description adequately conveys the return value (DDL source definition) and parameters. It lacks details about the exact structure of the return, but this is not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters; the description does not add meaning beyond the schema, meeting the baseline for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 specific resource 'CDS view DDL source definition', distinguishing it from sibling tools like create_cds_view and change_cds_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided; usage is implied by the name and sibling tools, but no guidance is given for exclusion or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_classA
Fetch ABAP class source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Class name (e.g. CL_ABAP_TYPEDESCR) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a read-only operation ('fetch') and does not contradict any annotations (none provided). However, it lacks details about side effects, authentication requirements, or what 'source code' precisely entails (e.g., full source, partial).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key action and resource. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with two simple parameters and no output schema, the description is mostly complete. It covers the action and the resource. Minor gap: does not specify the format of the returned source code, but the tool name and action are clear enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters (name and system_id). The description adds no extra meaning beyond what the schema already provides, so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'fetch', resource 'ABAP class source code', and context 'from SAP system'. It distinguishes from sibling tools like get_abap_program or get_interface which fetch different ABAP object source codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over alternatives. While the name suggests it is for class source code, there is no mention of exclusions or comparisons to other get_* tools like get_abap_program or get_function_module.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cross_trace_activationsB
List all active ABAP Cross Trace activations. Shows activation IDs, user filters, enabled state, expiry, and component count.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, description only states it lists activations and shows fields. No disclosure of side effects, permissions, or limits. Implies safe read but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences. First states purpose, second enumerates output fields. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple list operation with one parameter and no output schema. But lacks differentiation from similar sibling tools and omits pagination or limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional parameter, which already has a description. The tool description adds no extra meaning to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'active ABAP Cross Trace activations', with specifics on output fields. Distinguishes from siblings like 'list_cross_traces' but could be more explicit about the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives like 'list_cross_traces' or 'get_cross_trace_records'. Does not state it's read-only or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cross_trace_recordsA
Get detailed records for a specific cross trace. Shows framework-level trace records with components, timestamps, and content.
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID from list_cross_traces | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'shows' records, implying a read operation, but does not disclose permissions, error handling, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that immediately states the action and result, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no nested objects) and no output schema, the description provides adequate context by listing return components (timestamps, content). It lacks pagination info but is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no additional meaning beyond the schema. It mentions 'specific cross trace' but does not elaborate on parameter usage or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed records for a specific cross trace' with a specific verb and resource, distinguishing it from sibling tools like list_cross_traces and enable_cross_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the action of getting records for a trace, but the description does not explicitly state when to use this tool versus alternatives like get_trace_hitlist 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.
get_csrf_tokenA
Fetch a CSRF token and session cookie from the SAP system. Useful for making authenticated POST/PUT/DELETE requests to ADT or other SAP ICF services.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 of behavioral disclosure. It mentions fetching a token and cookie but does not disclose whether this creates a session, whether the token has an expiration, or any side effects. For a tool that likely modifies server state (session creation), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core function, and every word adds value. There is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explains what it returns and its purpose. However, it could mention typical usage patterns (e.g., using the token in Authorization headers) or error scenarios, which would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'system_id', is fully described in the schema (100% coverage). The description does not add any additional meaning beyond what the schema provides. Baseline score of 3 is appropriate as the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Fetch') and nouns ('CSRF token', 'session cookie'), clearly distinguishing the tool from sibling tools like get_abap_program or get_table. It also states the purpose for authenticated POST/PUT/DELETE requests, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is 'Useful for making authenticated POST/PUT/DELETE requests', providing clear context for when to use it. However, it does not specify when not to use it or mention alternatives, which would improve the score further.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_data_elementB
Fetch DDIC data element definition from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Data element name (e.g. MATNR) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description characterizes the tool as a fetch operation, implying read-only and non-destructive behavior. However, without annotations, it fails to disclose what happens if the element does not exist (error? empty response?) or any performance implications. The description is neutral but minimally informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core purpose. It front-loads the action and object. However, some might argue brevity sacrifices useful context like output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not outline what the definition contains (e.g., domain, data type, length). For a fetch tool, knowing the response structure is important for agent decision-making. The description is incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear param descriptions. The tool description adds no extra parameter semantics beyond restating 'data element definition'. Baseline of 3 is appropriate since schema already describes the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch DDIC data element definition from SAP system' clearly states the action (fetch), the specific resource (DDIC data element), and the domain (SAP system). It distinguishes itself from sibling tools like get_table or get_domain by naming a distinct object type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, it does not mention that the data element is an ABAP Dictionary concept, nor does it contrast with other get_* tools for different object types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debugger_child_variablesB
Get child/nested variable values (structure components, table rows)
| Name | Required | Description | Default |
|---|---|---|---|
| variable_name | Yes | Parent variable name to expand | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It only states it retrieves child variables, but fails to disclose what happens if the variable has no children, if it requires an active debugger session, or if the operation is non-destructive. Minimal disclosure leaves the agent uninformed about failure modes or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise line that front-loads the core purpose. Every word is relevant and there is no redundancy. However, it is extremely brief and could benefit from a bit more structure or context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple parameters and no output schema, the description lacks crucial context: it does not mention that an active debugger session is required (via 'get_debugger_session' or similar), nor does it describe the return format. With 100% schema coverage, the core parameter info is present, but the agent is left without operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 2 parameters with 100% description coverage. The tool description adds 'structure components, table rows' hinting at the nature of nested values, but the schema already explains 'Parent variable name to expand' and system ID usage. Since schema coverage is high, the description adds marginal value, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get child/nested variable values (structure components, table rows)' clearly states the tool's purpose: retrieving nested values from a parent variable. The examples 'structure components, table rows' provide useful specificity. Among siblings, it is distinct from 'get_debugger_variables' which likely lists top-level variables, making differentiation straightforward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for expanding variables to see their children, but does not explicitly state when to use this tool versus alternatives like 'get_debugger_variables'. No 'when-not' guidance or prerequisites are mentioned. The context is clear but incomplete, lacking direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debugger_sessionA
Check if a debugger session is currently attached. Returns session info without blocking.
| Name | Required | Description | Default |
|---|---|---|---|
| terminal_id | No | Terminal identifier (default: MCP_TERMINAL) | |
| ide_id | No | IDE identifier (default: MCP_IDE) | |
| user | No | SAP username (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'without blocking', a useful behavioral trait. However, it does not disclose authentication requirements, whether session info includes errors or empty states, or any side effects. No annotations are provided to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value, and the structure is clear and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description only vaguely mentions 'Returns session info'. It does not detail what fields are included or possible statuses. Given the complexity of debugger state, a more complete description would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are covered in the input schema with descriptions. The tool description adds no additional semantics beyond the schema. With 100% schema 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and resource 'debugger session', clearly indicating a read-only operation. It distinguishes from sibling tools like attach_debugger, start_debugger_listener, and debugger_step that perform actions or mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to check session status without blocking, but gives no explicit guidance on when to use this tool vs alternatives such as get_debugger_stack or get_debugger_variables. No when-not conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debugger_stackB
Get the current call stack in the debugger
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior. It only states 'get', implying a read operation, but does not mention dependencies (e.g., requires an active debugger session via attach_debugger) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and resource, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the optional parameter and lack of output schema, the description should specify prerequisites (e.g., active debug session) and what the result contains (e.g., stack frames). It does not, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one optional parameter system_id already described in the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'the current call stack in the debugger', distinguishing it from sibling tools like debugger_goto_stack (navigation) and get_debugger_variables (variables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., debugger_goto_stack to navigate the stack). The description lacks context about prerequisites such as an active debugger session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_debugger_variablesA
Get variable values in the current debug context. Returns value statements for each variable.
| Name | Required | Description | Default |
|---|---|---|---|
| variable_names | Yes | Array of variable names to inspect | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must communicate behavior. It indicates a read operation returning value statements, but lacks details on scope (local vs global), error states, or required session state. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. Every word serves a function with no redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool, but fails to contextualize the need for an active debugger session or how to set one up using sibling tools. Given no output schema, more detail on the return format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters. The description's mention of 'value statements' adds some context about output, but does not enhance parameter meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get variable values), the resource (variable values), and the context (current debug context). It effectively distinguishes from sibling tools like 'set_debugger_variable_value' and 'get_debugger_child_variables'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites (e.g., needing an active debug session) or when not to use it (e.g., for child variables, use a different tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domainB
Fetch DDIC domain definition from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Domain name (e.g. MATNR) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., read-only, auth requirements, side effects). It only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and lack of output schema, the description is minimally adequate but lacks context on how this tool relates to similar ones (e.g., what a DDIC domain is) and does not compensate for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully describes the two parameters. The description does not add 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' and clearly identifies the resource 'DDIC domain definition from SAP system'. It distinguishes from sibling tools like get_data_element or get_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_data_element or get_table. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_function_groupB
Fetch ABAP function group source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Function group name (e.g. SVAT) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It accurately describes a read operation ('Fetch'), but does not disclose any potential side effects, authorization needs, or performance considerations. The description 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, yet the description does not specify the format of the returned source code (e.g., string, array of lines). An agent would need to infer this. Given low complexity, the description should at least hint at the output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no additional information about parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'ABAP function group source code', and the context 'from SAP system'. This distinguishes it from sibling tools like get_function_module or get_abap_program.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives like get_function_module or search_object. There is 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.
get_function_moduleB
Fetch function module source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| function_group | Yes | Function group name (e.g. 2032) | |
| function_name | Yes | Function module name (e.g. SD_SALESDOCUMENT_CREATE) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 a fetch operation without confirming read-only nature, potential side effects, or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is minimally adequate but does not explain return format, error handling, or integration with SAP system states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, meaning all three parameters have descriptions. The added description 'Fetch function module source code' does not provide additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch function module source code from SAP system' uses a specific verb ('fetch') and clearly identifies the resource ('function module source code'). It distinguishes from sibling tools like 'get_function_group' and 'get_class' 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.
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 'get_function_group' or 'get_class'. There is no mention of prerequisites, preferred contexts, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_includeB
Fetch ABAP include source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Include name (e.g. LSVATF01) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the action without mentioning permissions, side effects, or output nature. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it could be slightly more informative without loss of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with two parameters, the description is somewhat complete but lacks context on output format, prerequisites, or default behavior. Not fully sufficient for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains parameters. The description adds no additional meaning beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch ABAP include source code from SAP system', using a specific verb and resource. It distinguishes from sibling tools like get_abap_program or get_class by specifying the ABAP include type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., get_abap_program for programs, get_class for classes). The description 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.
get_interfaceB
Fetch ABAP interface source code from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Interface name (e.g. IF_ABAP_TIMER_HANDLER) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description omits behavioral details such as idempotency, error behavior, or permission requirements, leaving the agent with incomplete safety cues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, but could be slightly more informative without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not clarify the return format (e.g., source code as a string), leaving ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Fetch') and the resource ('ABAP interface source code'), making it distinct from siblings like get_class or get_cds_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 change_interface or create_interface, 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.
get_packageA
Fetch ABAP package contents (list of objects with types and descriptions) from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name (e.g. $TMP) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It correctly indicates a read operation (fetching contents) and hints at the return format, but does not explicitly state safety (e.g., read-only) or other behavioral traits like error handling when package is not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, front-loaded with the core action and result. Every word serves the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explains what the tool returns. Minor gap: it does not mention behavior for missing packages or limitations like pagination, but overall complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters have clear descriptions in the schema. The tool description adds no additional meaning or context beyond what is already in the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'ABAP package contents', specifying the output as a list of objects with types and descriptions. It distinguishes from sibling get_* tools by targeting a specific resource (package contents) uniquely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While the name and description imply it is for fetching package contents, it does not mention exclusions or direct the agent to other tools for similar but different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_st05_trace_stateA
Get the current ST05 performance trace state — shows which trace types are active, the user filter, and server info.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly indicates a read operation ('Get') and outlines the returned information. Without annotations, it carries the burden, but it is sufficient for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the verb and resource, and no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explains the return value (what the state shows). For a low-complexity tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear parameter description. The tool description does not add further parameter details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get', the resource 'ST05 performance trace state', and lists what the state includes (active trace types, user filter, server info). It distinguishes itself from sibling tools like enable/disable_st05_trace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_trace_hitlist or enable_st05_trace. It does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_structureB
Fetch DDIC structure definition from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Structure name (e.g. BAPISDHD1) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but fails to disclose behavioral traits like error handling, authorization requirements, or side effects. It only implies a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence with no redundant information. Ideal length for a straightforward fetch tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of the returned structure definition. The agent cannot anticipate the response format or content, which is critical for a fetch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description provides an example for the name parameter but no additional meaning beyond what the schema already offers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and resource ('DDIC structure definition from SAP system'), differentiating from sibling tools like get_table or get_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., get_table for table definitions). The description does not mention prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tableA
Fetch ABAP database table definition from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Table name (e.g. VBAK) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a read operation but lacks explicit declaration of side effects or permissions. With no annotations, it partially fulfills disclosure but doesn't elaborate on network dependencies 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words; starts with verb and clearly states purpose. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple retrieval tool with two parameters and no output schema. Lacks details on return format or error handling but is sufficient given low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions (e.g., 'Table name (e.g. VBAK)'). The description adds no extra meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and resource ('ABAP database table definition'), distinguishing it from sibling 'get_*' tools that fetch other entities like classes or CDS views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to use get_table vs. get_structure or other data retrieval tools. Missing context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_db_accessC
Get database access statistics for a trace
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID from list_traces | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It only states 'Get' implying a read operation, but no details on side effects, permissions, or what constitutes 'statistics'. Very 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of 6 words is extremely concise. While not wasteful, it may be too terse for full utility, but it is structured and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 fails to explain what 'database access statistics' entail or the format of results. For a tool with moderate complexity, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The tool description adds no extra parameter meaning beyond what the schema provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets 'database access statistics for a trace', specifying both the resource and scope. It is specific enough to distinguish from siblings like get_trace_hitlist, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_trace_statements or get_trace_hitlist. No prerequisites or context for appropriate usage provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_hitlistB
Get performance hit list for a trace (most expensive calls)
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID from list_traces | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full burden. It implies a read-only operation but does not explicitly state safety, potential side effects, or requirements such as authorization or trace existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the key verb and resource. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 params, no output schema), the description adequately conveys the purpose. However, it could be improved by hinting at the output structure or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides 100% coverage with descriptions for both parameters. The description adds no additional semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('performance hit list for a trace'), and specifies it contains the most expensive calls. This distinguishes it from sibling tools like get_trace_db_access or get_trace_statements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 list_traces or get_trace_statements. The description does not mention appropriate contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_statementsA
Get aggregated call tree with statement-level performance for a trace
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID from list_traces | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 what is returned but does not disclose behavioral traits such as read-only nature, performance impact, or prerequisites like trace existence. With no annotations, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with key information, no redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two well-documented parameters and no output schema, the description is fairly complete. It could mention the return format but overall is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for both parameters. The tool description adds no additional 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.
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 'aggregated call tree with statement-level performance for a trace', which is specific and distinguishes it from sibling tools like get_trace_hitlist or get_trace_db_access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for trace performance analysis but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionA
Fetch ABAP transaction details (package, application component) from SAP system
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Transaction code (e.g. VA01) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 does not mention behavioral traits such as required permissions, potential errors, or any side effects. The read-only nature is implied but not stated, and there is no discussion of limitations or safety considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose. No unnecessary words or redundancy. It is well-structured and front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the essential purpose and what is fetched. However, it could be slightly improved by specifying the return format (e.g., an object with package and application component). Overall, it is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 minimal extra meaning beyond the schema (e.g., examples for transaction code and system ID). It meets the baseline but does not provide deeper insight into parameter relationships or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' and clearly identifies the resource 'ABAP transaction details (package, application component)'. It distinguishes itself from sibling tools like 'get_transport' or 'get_package' by focusing on transaction details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need transaction details, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. The context of sibling tools provides implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transportB
Get full details of a transport request by number. Returns description, status, owner, target system, tasks, and object list.
| Name | Required | Description | Default |
|---|---|---|---|
| transport_number | Yes | Transport number (e.g. EUPK902297) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only lists return fields without disclosing read-only nature, side effects, or authentication requirements. For a read operation, it lacks safety indicators.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a list of returned fields, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description lists return fields adequately. Lacks error handling or prerequisite details, but sufficient for straightforward retrieval.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters; description aligns with transport_number and hints at system_id via 'target system', but adds no new semantic detail beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', resource 'transport request', and lists returned fields, distinguishing it from sibling tools like 'create_transport' and 'delete_transport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_transport_info' or 'list_user_transports'. No exclusion criteria or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transport_infoC
Check transport info for an ABAP object. Returns available transports and lock status.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | Object URI (e.g. /sap/bc/adt/programs/programs/ztest) | |
| devclass | Yes | Development class/package (e.g. ZPACKAGE) | |
| operation | No | Operation (default: I_CTS_OBJECT_CHECK) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
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 returns but does not state side effects, mutability, or required authorizations. The 'check' verb implies read-only, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description is too brief. It fails to explain return format, interpretation of lock status, or the significance of the four parameters, especially with two required ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional semantic value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'transport info for an ABAP object', and mentions returns ('available transports and lock status'). However, it does not distinguish from sibling tools like 'get_transport' or 'list_user_transports'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 omits any context about prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_watchpointsB
List all active watchpoints in the current debug session.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits like read-only, authorization needs, or side effects beyond listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no waste, though slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, description is adequate but lacks output details and side-effect disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description; description adds no extra meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'list', resource 'active watchpoints', and scope 'current debug session', distinguishing from sibling tools like insert_watchpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing watchpoints but lacks explicit when/when-not guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_watchpointA
Set a watchpoint on a variable. Execution will pause when the variable's value changes. Must have an active debug session.
| Name | Required | Description | Default |
|---|---|---|---|
| variable_name | Yes | Variable name to watch (e.g. VBAK-FAKSK) | |
| condition | No | Optional condition expression for the watchpoint | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the pause behavior and prerequisite, but omits important details such as whether watchpoints persist across sessions, limits on number of watchpoints, performance impact, or how to remove them. The behavioral disclosure is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 sentences), front-loaded with the action, and every sentence is meaningful. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 core functionality and prerequisite but lacks details on errors, scope, or lifecycle. It is minimally adequate for a simple tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond the schema, so baseline 3 applies. No additional semantic value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set a watchpoint on a variable') and the effect ('Execution will pause when the variable's value changes'). It distinguishes from siblings like breakpoints by focusing on variable changes, and includes a prerequisite ('Must have an active debug session').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to monitor variable changes during debugging, but does not explicitly compare to alternatives like breakpoints or provide when-not-to-use guidance. The prerequisite is stated but no further context on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cross_tracesB
List captured ABAP Cross Trace results for a user. Shows trace IDs, request types (OData V2/V4, URL, RFC, etc.), and service names.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | SAP username (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states listing action, missing details on side effects, idempotency, or permissions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second lists output fields. Front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately conveys core purpose but lacks details on output format, pagination, or default behavior when user parameter is omitted (schema covers defaults but description could reinforce). Leaves some gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing clear descriptions for parameters. Description adds marginal value by linking the user parameter to the 'for a user' aspect, but output fields mentioned are not parameter-related. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists captured ABAP Cross Trace results for a user and specifies the fields returned (trace IDs, request types, service names), distinguishing it from sibling tools like list_traces or get_cross_trace_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides no guidance on when to use this tool vs alternatives (e.g., list_traces, get_cross_trace_records). No when-not or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_systemsA
List all configured SAP systems with their IDs, hostnames, and client numbers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly indicates a read-only operation returning all configured systems, but does not disclose potential permissions required or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and scope, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description is largely complete, stating what it lists and what is returned. It could be enhanced by clarifying if 'all configured' means only systems accessible to the user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters are present, so the schema coverage is 100%. The description adds value by specifying the return fields (IDs, hostnames, client numbers), which is useful beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'all configured SAP systems', and specifies what information is returned (IDs, hostnames, client numbers). This differentiates it from sibling list tools like list_system_users, list_traces, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it implies listing all systems, it does not mention when not to use it or suggest alternative tools for filtered views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_usersA
List SAP system users. Useful for transport ownership and user lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states listing users, but does not indicate if it is read-only, permissions needed, or any side effects. Minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no waste. First sentence states purpose, second gives use case. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is adequate. It covers purpose and usage context. Could mention return format or pagination but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with system_id described as optional. Description adds nothing 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'list' and resource 'SAP system users'. The use case for transport ownership and user lookups differentiates it from sibling tools like list_systems or list_user_transports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it is useful for transport ownership and user lookups, implying when to use it. Does not provide when-not-to-use or alternatives, 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.
list_tracesA
List ABAP runtime traces (SAT/SE30) for a user. Traces must be created via SAP GUI (transaction SAT or SE30) since the ADT REST API cannot profile programrun executions.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | SAP username (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key limitation (cannot create traces via API) but does not describe output behavior, pagination, or filtering details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant information, front-loaded with the core purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two parameters and no output schema, the description covers purpose and a key constraint. It lacks details about output format but is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already includes descriptions (user defaults to current user, system_id example DEV). The description adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists ABAP runtime traces (SAT/SE30) for a user, specifying the verb and resource. It distinguishes itself from siblings like delete_trace or create_trace_config by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that traces must be created via SAP GUI, not with this tool, providing clear when-not-to-use guidance. However, it does not explicitly mention alternative tools or scenarios for using this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_transportsA
List all modifiable transport requests for the current SAP user. Returns TR number, type, status, date, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover all behavioral aspects. It indicates the tool lists modifiable requests (read-only) and returns specific fields, but does not disclose permission requirements, scope limitations (e.g., what 'modifiable' means), or potential side effects (e.g., network calls). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information: action, resource scope, and return fields. It is front-loaded with the verb and resource, 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.
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, no nested objects), the description covers the main aspects: purpose, scope, and return fields. However, it does not define 'modifiable' or explain if there are any limits on the number of transports returned. Still, it is mostly complete for a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its single optional parameter (system_id). The tool description adds no additional meaning beyond the schema's description. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), resource ('modifiable transport requests for the current SAP user'), and specific return fields (TR number, type, status, date, description). It distinguishes itself from sibling tools like 'get_transport' (single transport) and 'create_transport' (create vs list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing user's modifiable transports but does not explicitly state when to use this tool versus siblings like 'get_transport' for a specific transport or 'list_traces' for traces. No guidance on when to avoid or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_service_bindingC
Publish an OData service binding to make it accessible
| Name | Required | Description | Default |
|---|---|---|---|
| binding_name | Yes | Service binding name | |
| binding_version | Yes | Service version (e.g. 0001) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must fully disclose behavior. Only states 'make it accessible', which is vague. Does not mention side effects, authorization needs, or that this modifies the binding state. Minimal transparency beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no waste, but it is under-specified for the tool's complexity. Conciseness is positive, but the lack of essential details makes it merely average.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and complexity of OData publishing in ABAP, description is incomplete. No prerequisites, no explanation of what 'accessible' means, no mention of response or side effects. Siblings like unpublish_service_binding highlight the need for contrast.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions. The tool description adds no extra context about parameters (e.g., format, constraints). Baseline score of 3 is appropriate since schema already describes them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it publishes an OData service binding to make it accessible, which is a specific verb and resource. It distinguishes from siblings like unpublish_service_binding, but could specify the binding must already exist for publishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., unpublish_service_binding). Does not mention prerequisites like the binding must already be created, or systems must be connected. 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.
release_transportB
Release a transport request for import into target systems
| Name | Required | Description | Default |
|---|---|---|---|
| transport_number | Yes | Transport number (e.g. DEVK900123) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and does not disclose behavioral traits beyond the action of releasing. With no annotations, it fails to specify side effects, required permissions, or whether the action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no unnecessary words, which is beneficial for quick parsing. However, it could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotations, the description lacks critical context about expected results, error conditions, and what 'release' entails, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional meaning beyond the schema's parameter descriptions. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'release' on the resource 'transport request', with a specific purpose 'for import into target systems'. This distinguishes it from sibling tools like 'create_transport' or 'delete_transport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when a transport must be released before import or any prerequisites like user authorization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_objectB
Search for ABAP repository objects by name pattern. Supports wildcards (*) for partial matches.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. Z_MY* or CL_ABAP*) | |
| max_results | No | Maximum results to return (default: 100) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses wildcard support but does not state read-only nature, required permissions, or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with key action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a search tool: explains purpose, wildcards, and optional system_id. Lacks output details and result limits behavior beyond max_results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reiterates wildcard support but adds minimal value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Search for ABAP repository objects by name pattern' with wildcard support. Verb and resource are specific, but does not explicitly differentiate from sibling 'get_*' tools that retrieve specific objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives like get_class or get_table. Lacks context on prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_debugger_breakpointB
Set a breakpoint at a specific source location in the debugger
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | Object source URI (e.g. /sap/bc/adt/programs/programs/ztest/source/main) | |
| line | Yes | Line number for breakpoint | |
| user | No | SAP username (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description is minimal. It does not disclose side effects, permissions, or that a debugger must be active. For a state-modifying tool, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no fluff, directly states the action. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema or annotations, the description is too brief. It lacks context about the debugger environment, format of URI, or how breakpoints interact with sessions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a breakpoint at a specific source location, using a specific verb and resource. It distinguishes from sibling tools like delete_debugger_breakpoint and debugger_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 attach_debugger or debugger_step. No prerequisites or context (e.g., need a debugger session) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_debugger_variable_valueC
Set a variable value during debugging
| Name | Required | Description | Default |
|---|---|---|---|
| variable_name | Yes | Variable name to modify | |
| value | Yes | New value to set | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not explain side effects (e.g., whether the change persists, requires a running session, or impacts program flow). Minimal behavioral context for a mutable operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, brief sentence with no redundant words. However, it could incorporate more useful information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits key context: requires an active debugger session, variable must be in scope, and no return value is specified. Without output schema or annotations, the agent lacks crucial operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no additional context beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set a variable value) and context (during debugging), distinguishing it from reading or breakpoint tools. However, it could be more precise about the debugging session context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., get_debugger_variables). No mention of prerequisites like an active debugger session or breakpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_debugger_listenerA
Start an ABAP debugger listener. Opens a stateful session and waits for a debug event. Must call stop_debugger_listener when done.
| Name | Required | Description | Default |
|---|---|---|---|
| terminal_id | No | Terminal identifier (default: MCP_TERMINAL) | |
| ide_id | No | IDE identifier (default: MCP_IDE) | |
| user | No | SAP username to debug (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It reveals that the tool opens a stateful session and waits for a debug event, implying it is blocking or long-running. However, it does not detail side effects, permissions, or exact return behavior, missing some depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no unnecessary words. The key action is front-loaded, and every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, output schema, or additional context, the description lacks completeness for a tool that opens a stateful session. It does not explain blocking behavior, session lifecycle, or how to trigger the debug event, and sibling tools like 'attach_debugger' are not differentiated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 any parameter-specific information beyond the schema's own descriptions, providing no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts an ABAP debugger listener, opens a stateful session, and waits for a debug event. It distinguishes from sibling tools like 'attach_debugger' and 'stop_debugger_listener' by specifying the resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a critical usage guideline: 'Must call stop_debugger_listener when done.' This indicates cleanup requirements. However, it does not explicitly compare with alternative tools or specify when to use this tool over siblings like 'attach_debugger'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_debugger_listenerA
Stop the debugger listener and close the stateful debug session
| Name | Required | Description | Default |
|---|---|---|---|
| terminal_id | No | Terminal identifier (default: MCP_TERMINAL) | |
| ide_id | No | IDE identifier (default: MCP_IDE) | |
| user | No | SAP username (default: current user) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden; it states 'stop' and 'close' but does not disclose prerequisites (e.g., must have an active session) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words; ideal for a straightforward stop action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool, but given lack of annotations and output schema, could mention that parameters are optional and the session must be active.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions (100% coverage); the description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('stop') and resource ('debugger listener'), and clearly distinguishes from sibling tools like 'start_debugger_listener'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool; context is implied by the name and sibling relationship but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_service_bindingB
Unpublish an OData service binding
| Name | Required | Description | Default |
|---|---|---|---|
| binding_name | Yes | Service binding name | |
| binding_version | Yes | Service version (e.g. 0001) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description simply says 'Unpublish' without disclosing side effects (e.g., whether it destroys the binding, affects running services, or if the action is reversible).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and to the point, though it could be slightly expanded with more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a mutation tool with no output schema and no annotations, the description lacks information about return values, success/failure indicators, and side effects, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the parameters; the description adds no extra meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unpublish an OData service binding' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'publish_service_binding' and 'get_binding_details'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (to undo a publishing action), but provides no explicit guidance on when to use vs alternatives or any prerequisites like whether the binding must be published.
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. Dates show when Glama detected each change.
66 tool updates
v1.0.0- First observed
attach_debugger - First observed
change_abap_class - First observed
change_abap_program - First observed
change_cds_view - First observed
change_interface - First observed
create_abap_class - First observed
create_abap_program - First observed
create_cds_view - First observed
create_interface - First observed
create_trace_config - First observed
create_transport - First observed
debugger_goto_stack - First observed
debugger_step - First observed
delete_debugger_breakpoint - First observed
delete_trace - First observed
delete_trace_config - First observed
delete_transport - First observed
disable_cross_trace - First observed
disable_st05_trace - First observed
enable_cross_trace - First observed
enable_st05_trace - First observed
execute_program - First observed
execute_sql - First observed
fetch_st22_dumps - First observed
get_abap_program - First observed
get_binding_details - First observed
get_cds_view - First observed
get_class - First observed
get_cross_trace_activations - First observed
get_cross_trace_records - First observed
get_csrf_token - First observed
get_data_element - First observed
get_debugger_child_variables - First observed
get_debugger_session - First observed
get_debugger_stack - First observed
get_debugger_variables - First observed
get_domain - First observed
get_function_group - First observed
get_function_module - First observed
get_include - First observed
get_interface - First observed
get_package - First observed
get_st05_trace_state - First observed
get_structure - First observed
get_table - First observed
get_trace_db_access - First observed
get_trace_hitlist - First observed
get_trace_statements - First observed
get_transaction - First observed
get_transport - First observed
get_transport_info - First observed
get_watchpoints - First observed
insert_watchpoint - First observed
list_cross_traces - First observed
list_system_users - First observed
list_systems - First observed
list_traces - First observed
list_user_transports - First observed
publish_service_binding - First observed
release_transport - First observed
search_object - First observed
set_debugger_breakpoint - First observed
set_debugger_variable_value - First observed
start_debugger_listener - First observed
stop_debugger_listener - First observed
unpublish_service_binding
TDQS
Each tool targets a specific operation on a distinct resource, with clear boundaries between debugging, development objects, tracing, transports, and system utilities. No overlapping functionality causes ambiguity.
All tool names follow a consistent verb_noun snake_case pattern. Debugger tools use a 'debugger_' prefix or include 'debugger' as a noun, and trace groups follow similar conventions, ensuring predictability.
66 tools is far above the typical range (3-15) for an MCP server. Even considering the broad scope of SAP ADT, this number risks cognitive overload and violates the rubric's threshold of 25+ tools.
The tool set covers core CRUD operations for development objects (create, read, update) but lacks delete for classes, programs, etc. Debugging, tracing, transports, and OData are well-covered, with only minor omissions like object deletion.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ethanhan2014/sap-adt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server