Skip to main content
Glama

SAPDiagnose

Run ABAP diagnostics—syntax checks, unit tests, ATC, dumps, traces, and quickfixes—to identify and resolve code and runtime issues in SAP systems.

Instructions

ABAP diagnostics:

  • "syntax": check objects[] (CLAS/INTF/PROG/DDLS; version active/inactive). Single: prefer SAPRead SYNTAX.

  • "unittest": harmless ABAP Unit for CLAS/PROG/FUGR or DEVC (exact; includeSubpackages recurses).

  • "unittest_ci": harmless package tests with source reconciliation; empty/incomplete runs fail.

  • "atc": ATC (name+type or objects [{type,name}], max 20). Omit variant for system default; unknown variant errors. "atc_variants": read variants/default, optional variant name filter.

  • "atc_ci": package ATC CI; requires available API and verified selection.

  • "cds_testcases": read suggested CDS Unit tests (name; SAP_BASIS 8.16+).

  • "object_state": active/inactive ETags/hashes/divergence (name+type; CLAS includes). No server-driven types.

  • "quickfix": proposals: name+type+source+line; optional column/sourceUri.

  • "apply_quickfix": text deltas, no save; quickfix inputs + proposalUri/proposalUserContent.

  • "dumps": ST22, newest: user/from/to/maxResults/filters; id=detail.

  • "feed_schema": optional dump filters; action only.

  • "traces": list profiler traces; id+analysis analyzes one.

  • "trace_start": arm NEXT matching execution (write; defaults HTTP, SQL on); reproduce, then read "traces".

  • "trace_requests": list armed traces. "trace_cancel": cancel by id (write).

  • "system_messages": list SM02 messages. "gateway_errors": list /IWFND/ERROR_LOG (on-prem; detailUrl or id+errorType for detail).

  • "odata_perf": read OData timing (url: host-relative; DB/ABAP/framework/auth); needs allowDataPreview.

  • "authorization_trace": read STUSERTRACE/SUAUTHVALTRC (on-prem; needs SAP_ALLOW_DATA_PREVIEW).

  • "cds_sql": read CDS native SQL (name).

  • "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control. Quickfix: syntax/ATC → quickfix → apply_quickfix → SAPWrite.

Input Schema

NameRequiredDescriptionDefault
idNodumps/traces: omit to list, supply for detail. trace_cancel: request ID.
toNoInclusive upper time bound for dumps/system_messages/gateway_errors; ISO or YYYYMMDDHHMMSS.
urlNoodata_perf: host-relative OData path from the app network request (e.g. /sap/opu/odata4/sap/.../Entity?$filter=…). Absolute URLs rejected.
fromNoInclusive lower time bound for dumps/system_messages/gateway_errors; ISO or YYYYMMDDHHMMSS.
lineNoRequired quickfix/apply_quickfix source line.
nameNosyntax/unittest/atc/object_state object name; cds_testcases/cds_sql CDS entity or DDLS name.
typeNoObject type; unittest accepts CLAS, PROG, FUGR, or DEVC.
userNoSAP-user filter for dumps, feeds, or authorization_trace.
sqlOnNoset_sql_trace_state: true arms ST05 SQL trace, false disarms; user filters the SAP user.
actionYes
columnNoQuickfix source column (default 0).
sourceNoCurrent source code (required for quickfix/apply_quickfix).
filtersNoAND ≤8 incl. user: [{attribute:"runtimeError",operator:"equals",values:["MESSAGE_TYPE_X"]}].
objectsNoATC/syntax list instead of name/type/url. ATC may verify once. Missing reports stay incomplete. No packages.
variantNoatc/atc_ci variant; atc_variants name filter (*=all)
versionNosyntax source version (default active); inactive checks pending changes.
analysisNotraces with id: hitlist=hot spots, statements=call tree, dbAccesses=DB access stats.
coverageNounittest only: collect statement/branch/procedure coverage and methodsBelowFull. Unavailable measurements do not discard test results. Default false.
packagesNoCI exact packages; 1–50 total with packageTrees.
sectionsNodumps detail chapter IDs, e.g. ["kap0","kap3","kap8"]; omit for focused defaults.
sqlTraceNotrace_start SQL capture (default true; required for analysis="dbAccesses").
aggregateNotrace_start aggregation (default true).
detailUrlNoDetail path: canonical /sap/bc/adt/gw/errorlog/...; no absolute URLs.
errorTypeNogateway_errors: required with id instead of detailUrl, e.g. "Frontend Error".
sourceUriNoquickfix/apply_quickfix source URI; default type/name main source. Set for includes, e.g. /includes/definitions.
traceUserNotrace_start/trace_requests SAP user (default connected user).
authObjectNoAuthorization object filter, e.g. S_TCODE.
maxResultsNoResult limit (default 50; authorization_trace 100). Caps: dumps 500, system_messages/gateway_errors 200, authorization_trace 10000.
objectTypeNotrace_start match type; defaults: http→url, dialog→transaction, batch→report, rfc→functionModule.
descriptionNotrace_start label.
processTypeNotrace_start work process (default http/OData): dialog=SAP GUI, batch=background job, rfc=RFC.
proposalUriNoQuickfix proposal URI from quickfix action (required for apply_quickfix).
expiresHoursNotrace_start expiry in hours (default 24).
onlyFailuresNoauthorization_trace: only denied checks (RC<>0), like SU53.
packageTreesNoCI packages including subpackages.
resultFormatNounittest: legacy|structured|junit; atc: legacy|structured; other actions reject it.
configurationNoatc_ci: optional configuration.
maxExecutionsNotrace_start executions to capture (default 1).
failOnSeverityNoatc_ci failure threshold (default error).
timeoutSecondsNoTimeout 1–3600s: unittest/atc default 300; CI overall default 600.
includeFullTextNodumps detail: include full formattedText (default false).
includeReportXmlNoCI XML reports (default false; 256 KiB total cap).
includeSubpackagesNo
proposalUserContentNoOpaque userContent from quickfix action (required for apply_quickfix). May be an empty string; pass through exactly.
proposalAffectedObjectsNoquickfix affectedObjects; provide current content for each source unit when applying multi-object fixes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.9.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "unittest_ci",
      -  "atc",
      -  "atc_ci",
      -  "atc_variants",
      -  "cds_testcases",
      -  "dumps",
      -  "traces",
      -  "trace_start",
      -  "trace_requests",
      -  "trace_cancel",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix",
      -  "odata_perf",
      -  "cds_sql",
      -  "sql_trace_state",
      -  "set_sql_trace_state",
      -  "sql_trace_directory",
      -  "authorization_trace"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "unittest_ci",
      +  "atc",
      +  "atc_ci",
      +  "atc_variants",
      +  "cds_testcases",
      +  "dumps",
      +  "feed_schema",
      +  "traces",
      +  "trace_start",
      +  "trace_requests",
      +  "trace_cancel",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix",
      +  "odata_perf",
      +  "cds_sql",
      +  "sql_trace_state",
      +  "set_sql_trace_state",
      +  "sql_trace_directory",
      +  "authorization_trace"
      +]
    • addedInput schema / properties / filters
      Added value: +{
      +  "description": "AND ≤8 incl. user: [{attribute:\"runtimeError\",operator:\"equals\",values:[\"MESSAGE_TYPE_X\"]}].",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "attribute": {
      +        "maxLength": 40,
      +        "type": "string"
      +      },
      +      "operator": {
      +        "maxLength": 40,
      +        "type": "string"
      +      },
      +      "values": {
      +        "items": {
      +          "maxLength": 128,
      +          "type": "string"
      +        },
      +        "maxItems": 2,
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "attribute",
      +      "operator",
      +      "values"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / id / description
      Previous value: -"Dump or trace ID (for dumps/traces actions); also the trace-request id to cancel (for trace_cancel). Omit to list, provide to get details."New value: +"dumps/traces: omit to list, supply for detail. trace_cancel: request ID."
    • changedInput schema / properties / objects / description
      Previous value: -"ATC only, instead of name/type/url. One batch + at most one verification. Returns coverage; unreported objects stay incomplete. No packages."New value: +"ATC/syntax list instead of name/type/url. ATC may verify once. Missing reports stay incomplete. No packages."
  2. Changed3 schema fields changedv1.4.0
    • changedInput schema / properties / from / description
      Previous value: -"system_messages/gateway_errors lower time bound."New value: +"Inclusive lower time bound for dumps/system_messages/gateway_errors; ISO or YYYYMMDDHHMMSS."
    • changedInput schema / properties / maxResults / description
      Previous value: -"Result limit: dumps/system_messages/gateway_errors default 50; authorization_trace 100. Capped."New value: +"Result limit (default 50; authorization_trace 100). Caps: dumps 500, system_messages/gateway_errors 200, authorization_trace 10000."
    • changedInput schema / properties / to / description
      Previous value: -"system_messages/gateway_errors upper time bound."New value: +"Inclusive upper time bound for dumps/system_messages/gateway_errors; ISO or YYYYMMDDHHMMSS."
  3. Changed34 schema fields changedv1.3.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "atc_variants",
      -  "cds_testcases",
      -  "dumps",
      -  "traces",
      -  "trace_start",
      -  "trace_requests",
      -  "trace_cancel",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix",
      -  "odata_perf",
      -  "cds_sql",
      -  "sql_trace_state",
      -  "set_sql_trace_state",
      -  "sql_trace_directory",
      -  "authorization_trace"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "unittest_ci",
      +  "atc",
      +  "atc_ci",
      +  "atc_variants",
      +  "cds_testcases",
      +  "dumps",
      +  "traces",
      +  "trace_start",
      +  "trace_requests",
      +  "trace_cancel",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix",
      +  "odata_perf",
      +  "cds_sql",
      +  "sql_trace_state",
      +  "set_sql_trace_state",
      +  "sql_trace_directory",
      +  "authorization_trace"
      +]
    • changedInput schema / properties / aggregate / description
      Previous value: -"For trace_start: aggregate the trace (default true)."New value: +"trace_start aggregation (default true)."
    • changedInput schema / properties / analysis / description
      Previous value: -"Trace analysis type (for traces action with id). hitlist = execution hot spots, statements = call tree, dbAccesses = database access stats."New value: +"traces with id: hitlist=hot spots, statements=call tree, dbAccesses=DB access stats."
    • changedInput schema / properties / column / description
      Previous value: -"Source column number for quickfix evaluation (default 0 for quickfix actions)."New value: +"Quickfix source column (default 0)."
    • addedInput schema / properties / configuration
      Added value: +{
      +  "description": "atc_ci: optional configuration.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / description / description
      Previous value: -"For trace_start: optional label for the trace request."New value: +"trace_start label."
    • changedInput schema / properties / detailUrl / description
      Previous value: -"Canonical host-relative /sap/bc/adt/gw/errorlog/... path for detail mode; absolute URLs are rejected."New value: +"Detail path: canonical /sap/bc/adt/gw/errorlog/...; no absolute URLs."
    • changedInput schema / properties / errorType / description
      Previous value: -"Gateway error type for gateway_errors detail by id (for example \"Frontend Error\"). Required when using id without detailUrl."New value: +"gateway_errors: required with id instead of detailUrl, e.g. \"Frontend Error\"."
    • changedInput schema / properties / expiresHours / description
      Previous value: -"For trace_start: hours until the armed request auto-expires (default 24)."New value: +"trace_start expiry in hours (default 24)."
    • addedInput schema / properties / failOnSeverity
      Added value: +{
      +  "description": "atc_ci failure threshold (default error).",
      +  "enum": [
      +    "error",
      +    "warning",
      +    "info"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / from / description
      Previous value: -"Optional lower time boundary for feed-based diagnostics actions (system_messages/gateway_errors)."New value: +"system_messages/gateway_errors lower time bound."
    • changedInput schema / properties / includeFullText / description
      Previous value: -"For dumps detail mode only: include full formattedText blob. Default false to reduce token usage."New value: +"dumps detail: include full formattedText (default false)."
    • addedInput schema / properties / includeReportXml
      Added value: +{
      +  "description": "CI XML reports (default false; 256 KiB total cap).",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / line / description
      Previous value: -"Source line number for quickfix evaluation (required for quickfix/apply_quickfix)."New value: +"Required quickfix/apply_quickfix source line."
    • changedInput schema / properties / maxExecutions / description
      Previous value: -"For trace_start: how many matching executions to capture before the request is consumed (default 1)."New value: +"trace_start executions to capture (default 1)."
    • changedInput schema / properties / maxResults / description
      Previous value: -"Maximum results for dumps/system_messages/gateway_errors (default 50) or authorization_trace (default 100); bounded to a safe cap."New value: +"Result limit: dumps/system_messages/gateway_errors default 50; authorization_trace 100. Capped."
    • changedInput schema / properties / name / description
      Previous value: -"Object name (for syntax/unittest/atc/object_state); the CDS entity / DDLS source name for cds_testcases and cds_sql"New value: +"syntax/unittest/atc/object_state object name; cds_testcases/cds_sql CDS entity or DDLS name."
    • changedInput schema / properties / objectType / description
      Previous value: -"For trace_start: what to match within the process. Defaults to the valid type for the process type (http→url, dialog→transaction, batch→report, rfc→functionModule)."New value: +"trace_start match type; defaults: http→url, dialog→transaction, batch→report, rfc→functionModule."
    • addedInput schema / properties / objects
      Added value: +{
      +  "description": "ATC only, instead of name/type/url. One batch + at most one verification. Returns coverage; unreported objects stay incomplete. No packages.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "maxLength": 40,
      +        "minLength": 1,
      +        "pattern": "^(?:/[A-Za-z0-9_]+/)?[A-Za-z0-9_]+$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "CLAS",
      +          "INTF",
      +          "PROG",
      +          "FUGR",
      +          "DDLS",
      +          "DCLS",
      +          "BDEF",
      +          "DDLX",
      +          "SRVD",
      +          "SRVB",
      +          "TABL",
      +          "DTEL",
      +          "DOMA"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / onlyFailures / description
      Previous value: -"For authorization_trace: return only denied checks (RC<>0), similar to the SU53 failure view."New value: +"authorization_trace: only denied checks (RC<>0), like SU53."
    • addedInput schema / properties / packageTrees
      Added value: +{
      +  "description": "CI packages including subpackages.",
      +  "items": {
      +    "maxLength": 40,
      +    "minLength": 1,
      +    "pattern": "^[A-Za-z0-9_/$]+$",
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • addedInput schema / properties / packages
      Added value: +{
      +  "description": "CI exact packages; 1–50 total with packageTrees.",
      +  "items": {
      +    "maxLength": 40,
      +    "minLength": 1,
      +    "pattern": "^[A-Za-z0-9_/$]+$",
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • changedInput schema / properties / processType / description
      Previous value: -"For trace_start: the kind of work process to capture. Default \"http\" (OData/Gateway). dialog = SAP GUI transaction, batch = background job, rfc = RFC call."New value: +"trace_start work process (default http/OData): dialog=SAP GUI, batch=background job, rfc=RFC."
    • changedInput schema / properties / proposalAffectedObjects / description
      Previous value: -"Optional affectedObjects array from quickfix action. Include content for each affected source unit when applying multi-object quickfixes."New value: +"quickfix affectedObjects; provide current content for each source unit when applying multi-object fixes."
    • changedInput schema / properties / sections / description
      Previous value: -"Dump chapter IDs to include for dumps detail mode (for example [\"kap0\",\"kap3\",\"kap8\"]). Omit to use focused defaults."New value: +"dumps detail chapter IDs, e.g. [\"kap0\",\"kap3\",\"kap8\"]; omit for focused defaults."
    • changedInput schema / properties / sourceUri / description
      Previous value: -"Exact ADT source URI for quickfix/apply_quickfix. Defaults to the type/name main source; use this for class includes such as /includes/definitions."New value: +"quickfix/apply_quickfix source URI; default type/name main source. Set for includes, e.g. /includes/definitions."
    • changedInput schema / properties / sqlOn / description
      Previous value: -"For action=\"set_sql_trace_state\": true to arm the ST05 SQL trace, false to disarm. Combine with user to filter the trace to one SAP user."New value: +"set_sql_trace_state: true arms ST05 SQL trace, false disarms; user filters the SAP user."
    • changedInput schema / properties / sqlTrace / description
      Previous value: -"For trace_start: capture SQL/DB accesses (default true — required for analysis=\"dbAccesses\")."New value: +"trace_start SQL capture (default true; required for analysis=\"dbAccesses\")."
    • changedInput schema / properties / timeoutSeconds / description
      Previous value: -"unittest/atc timeout: 1-3600s; default 300."New value: +"Timeout 1–3600s: unittest/atc default 300; CI overall default 600."
    • changedInput schema / properties / to / description
      Previous value: -"Optional upper time boundary for feed-based diagnostics actions (system_messages/gateway_errors)."New value: +"system_messages/gateway_errors upper time bound."
    • changedInput schema / properties / traceUser / description
      Previous value: -"For trace_start/trace_requests: the SAP user whose matching execution is traced/listed. Defaults to the connected user."New value: +"trace_start/trace_requests SAP user (default connected user)."
    • changedInput schema / properties / url / description
      Previous value: -"For odata_perf: the host-relative OData path to probe, from the Fiori app's Network tab (e.g. \"/sap/opu/odata4/sap/.../Entity?$filter=…\"). Must be a path on the connected system — absolute URLs are rejected."New value: +"odata_perf: host-relative OData path from the app network request (e.g. /sap/opu/odata4/sap/.../Entity?$filter=…). Absolute URLs rejected."
    • changedInput schema / properties / variant / description
      Previous value: -"atc: check variant; atc_variants: name filter (*=all)"New value: +"atc/atc_ci variant; atc_variants name filter (*=all)"
    • changedInput schema / properties / version / description
      Previous value: -"Source version for syntax check (default \"active\"). Use \"inactive\" to validate pending changes."New value: +"syntax source version (default active); inactive checks pending changes."
  4. Changed7 schema fields changedv1.1.0
    • removedInput schema / properties / action / description
      Removed value: -"Diagnostic action"
    • changedInput schema / properties / coverage / description
      Previous value: -"For action=\"unittest\": also return statement/branch/procedure coverage for the object, plus methodsBelowFull — the methods below 100% statement coverage, worst first (what to test next) — in one extra round-trip. If the coverage endpoint or measurement is unavailable, returns the tests without coverage. Default false."New value: +"unittest only: collect statement/branch/procedure coverage and methodsBelowFull. Unavailable measurements do not discard test results. Default false."
    • changedInput schema / properties / detailUrl / description
      Previous value: -"ADT detail URL for gateway_errors detail mode (preferred over id+errorType). Accepts absolute or /sap/bc/adt/... path."New value: +"Canonical host-relative /sap/bc/adt/gw/errorlog/... path for detail mode; absolute URLs are rejected."
    • addedInput schema / properties / includeSubpackages
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / resultFormat
      Added value: +{
      +  "description": "unittest: legacy|structured|junit; atc: legacy|structured; other actions reject it.",
      +  "enum": [
      +    "legacy",
      +    "structured",
      +    "junit"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / timeoutSeconds
      Added value: +{
      +  "description": "unittest/atc timeout: 1-3600s; default 300.",
      +  "type": "number"
      +}
    • changedInput schema / properties / type / description
      Previous value: -"Object type (PROG, CLAS, etc.) (for syntax/unittest/atc/object_state)"New value: +"Object type; unittest accepts CLAS, PROG, FUGR, or DEVC."
  5. Changed3 schema fields changedv1.0.2
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "cds_testcases",
      -  "dumps",
      -  "traces",
      -  "trace_start",
      -  "trace_requests",
      -  "trace_cancel",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix",
      -  "odata_perf",
      -  "cds_sql",
      -  "sql_trace_state",
      -  "set_sql_trace_state",
      -  "sql_trace_directory",
      -  "authorization_trace"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "atc",
      +  "atc_variants",
      +  "cds_testcases",
      +  "dumps",
      +  "traces",
      +  "trace_start",
      +  "trace_requests",
      +  "trace_cancel",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix",
      +  "odata_perf",
      +  "cds_sql",
      +  "sql_trace_state",
      +  "set_sql_trace_state",
      +  "sql_trace_directory",
      +  "authorization_trace"
      +]
    • changedInput schema / properties / variant / description
      Previous value: -"ATC check variant (for atc action)"New value: +"atc: check variant; atc_variants: name filter (*=all)"
  6. Changed5 schema fields changedv0.9.27
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "cds_testcases",
      -  "dumps",
      -  "traces",
      -  "trace_start",
      -  "trace_requests",
      -  "trace_cancel",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix",
      -  "odata_perf",
      -  "cds_sql",
      -  "sql_trace_state",
      -  "set_sql_trace_state",
      -  "sql_trace_directory"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "atc",
      +  "cds_testcases",
      +  "dumps",
      +  "traces",
      +  "trace_start",
      +  "trace_requests",
      +  "trace_cancel",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix",
      +  "odata_perf",
      +  "cds_sql",
      +  "sql_trace_state",
      +  "set_sql_trace_state",
      +  "sql_trace_directory",
      +  "authorization_trace"
      +]
    • addedInput schema / properties / authObject
      Added value: +{
      +  "description": "Authorization object filter, e.g. S_TCODE.",
      +  "type": "string"
      +}
    • changedInput schema / properties / maxResults / description
      Previous value: -"Maximum results to return for dumps/system_messages/gateway_errors (default 50, bounded to a safe cap)."New value: +"Maximum results for dumps/system_messages/gateway_errors (default 50) or authorization_trace (default 100); bounded to a safe cap."
    • addedInput schema / properties / onlyFailures
      Added value: +{
      +  "description": "For authorization_trace: return only denied checks (RC<>0), similar to the SU53 failure view.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / user / description
      Previous value: -"Filter dumps by SAP user (for dumps action)"New value: +"SAP-user filter for dumps, feeds, or authorization_trace."
  7. Changed1 schema field changedv0.9.23
    • changedInput schema / properties / url / description
      Previous value: -"For action=\"odata_perf\": the host-relative OData path to probe, copied from the Fiori app's Network tab (e.g. \"/sap/opu/odata4/sap/.../Entity?$filter=...\" or \"/sap/opu/odata/sap/<SRV>/<EntitySet>?$top=20\"). Must be a path on the SAP system ARC-1 connects to — absolute URLs are rejected."New value: +"For odata_perf: the host-relative OData path to probe, from the Fiori app's Network tab (e.g. \"/sap/opu/odata4/sap/.../Entity?$filter=…\"). Must be a path on the connected system — absolute URLs are rejected."
  8. Changed14 schema fields changedv0.9.21
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "cds_testcases",
      -  "dumps",
      -  "traces",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "atc",
      +  "cds_testcases",
      +  "dumps",
      +  "traces",
      +  "trace_start",
      +  "trace_requests",
      +  "trace_cancel",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix",
      +  "odata_perf",
      +  "cds_sql",
      +  "sql_trace_state",
      +  "set_sql_trace_state",
      +  "sql_trace_directory"
      +]
    • addedInput schema / properties / aggregate
      Added value: +{
      +  "description": "For trace_start: aggregate the trace (default true).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / coverage
      Added value: +{
      +  "description": "For action=\"unittest\": also return statement/branch/procedure coverage for the object, plus methodsBelowFull — the methods below 100% statement coverage, worst first (what to test next) — in one extra round-trip. If the coverage endpoint or measurement is unavailable, returns the tests without coverage. Default false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "For trace_start: optional label for the trace request.",
      +  "type": "string"
      +}
    • addedInput schema / properties / expiresHours
      Added value: +{
      +  "description": "For trace_start: hours until the armed request auto-expires (default 24).",
      +  "type": "number"
      +}
    • changedInput schema / properties / id / description
      Previous value: -"Dump or trace ID (for dumps/traces actions). Omit to list, provide to get details."New value: +"Dump or trace ID (for dumps/traces actions); also the trace-request id to cancel (for trace_cancel). Omit to list, provide to get details."
    • addedInput schema / properties / maxExecutions
      Added value: +{
      +  "description": "For trace_start: how many matching executions to capture before the request is consumed (default 1).",
      +  "type": "number"
      +}
    • changedInput schema / properties / name / description
      Previous value: -"Object name (for syntax/unittest/atc/object_state); the CDS entity / DDLS source name for cds_testcases"New value: +"Object name (for syntax/unittest/atc/object_state); the CDS entity / DDLS source name for cds_testcases and cds_sql"
    • addedInput schema / properties / objectType
      Added value: +{
      +  "description": "For trace_start: what to match within the process. Defaults to the valid type for the process type (http→url, dialog→transaction, batch→report, rfc→functionModule).",
      +  "enum": [
      +    "any",
      +    "url",
      +    "transaction",
      +    "report",
      +    "functionModule"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / processType
      Added value: +{
      +  "description": "For trace_start: the kind of work process to capture. Default \"http\" (OData/Gateway). dialog = SAP GUI transaction, batch = background job, rfc = RFC call.",
      +  "enum": [
      +    "any",
      +    "http",
      +    "dialog",
      +    "batch",
      +    "rfc"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / sqlOn
      Added value: +{
      +  "description": "For action=\"set_sql_trace_state\": true to arm the ST05 SQL trace, false to disarm. Combine with user to filter the trace to one SAP user.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sqlTrace
      Added value: +{
      +  "description": "For trace_start: capture SQL/DB accesses (default true — required for analysis=\"dbAccesses\").",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / traceUser
      Added value: +{
      +  "description": "For trace_start/trace_requests: the SAP user whose matching execution is traced/listed. Defaults to the connected user.",
      +  "type": "string"
      +}
    • addedInput schema / properties / url
      Added value: +{
      +  "description": "For action=\"odata_perf\": the host-relative OData path to probe, copied from the Fiori app's Network tab (e.g. \"/sap/opu/odata4/sap/.../Entity?$filter=...\" or \"/sap/opu/odata/sap/<SRV>/<EntitySet>?$top=20\"). Must be a path on the SAP system ARC-1 connects to — absolute URLs are rejected.",
      +  "type": "string"
      +}
  9. Changed2 schema fields changedv0.9.13
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "dumps",
      -  "traces",
      -  "system_messages",
      -  "gateway_errors",
      -  "object_state",
      -  "quickfix",
      -  "apply_quickfix"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "atc",
      +  "cds_testcases",
      +  "dumps",
      +  "traces",
      +  "system_messages",
      +  "gateway_errors",
      +  "object_state",
      +  "quickfix",
      +  "apply_quickfix"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Object name (for syntax/unittest/atc/object_state)"New value: +"Object name (for syntax/unittest/atc/object_state); the CDS entity / DDLS source name for cds_testcases"
  10. Addedv0.9.6
  11. Removedv0.9.3
  12. Changed14 schema fields changedv0.7.2
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "syntax",
      -  "unittest",
      -  "atc",
      -  "dumps",
      -  "traces"
      -]New value: +[
      +  "syntax",
      +  "unittest",
      +  "atc",
      +  "dumps",
      +  "traces",
      +  "system_messages",
      +  "gateway_errors",
      +  "quickfix",
      +  "apply_quickfix"
      +]
    • addedInput schema / properties / column
      Added value: +{
      +  "description": "Source column number for quickfix evaluation (default 0 for quickfix actions).",
      +  "type": "number"
      +}
    • addedInput schema / properties / detailUrl
      Added value: +{
      +  "description": "ADT detail URL for gateway_errors detail mode (preferred over id+errorType). Accepts absolute or /sap/bc/adt/... path.",
      +  "type": "string"
      +}
    • addedInput schema / properties / errorType
      Added value: +{
      +  "description": "Gateway error type for gateway_errors detail by id (for example \"Frontend Error\"). Required when using id without detailUrl.",
      +  "type": "string"
      +}
    • addedInput schema / properties / from
      Added value: +{
      +  "description": "Optional lower time boundary for feed-based diagnostics actions (system_messages/gateway_errors).",
      +  "type": "string"
      +}
    • addedInput schema / properties / includeFullText
      Added value: +{
      +  "description": "For dumps detail mode only: include full formattedText blob. Default false to reduce token usage.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / line
      Added value: +{
      +  "description": "Source line number for quickfix evaluation (required for quickfix/apply_quickfix).",
      +  "type": "number"
      +}
    • changedInput schema / properties / maxResults / description
      Previous value: -"Maximum results to return (for dumps action, default 50)"New value: +"Maximum results to return for dumps/system_messages/gateway_errors (default 50, bounded to a safe cap)."
    • addedInput schema / properties / proposalUri
      Added value: +{
      +  "description": "Quickfix proposal URI from quickfix action (required for apply_quickfix).",
      +  "type": "string"
      +}
    • addedInput schema / properties / proposalUserContent
      Added value: +{
      +  "description": "Opaque userContent from quickfix action (required for apply_quickfix).",
      +  "type": "string"
      +}
    • addedInput schema / properties / sections
      Added value: +{
      +  "description": "Dump chapter IDs to include for dumps detail mode (for example [\"kap0\",\"kap3\",\"kap8\"]). Omit to use focused defaults.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / source
      Added value: +{
      +  "description": "Current source code (required for quickfix/apply_quickfix).",
      +  "type": "string"
      +}
    • addedInput schema / properties / to
      Added value: +{
      +  "description": "Optional upper time boundary for feed-based diagnostics actions (system_messages/gateway_errors).",
      +  "type": "string"
      +}
    • addedInput schema / properties / version
      Added value: +{
      +  "description": "Source version for syntax check (default \"active\"). Use \"inactive\" to validate pending changes.",
      +  "enum": [
      +    "active",
      +    "inactive"
      +  ],
      +  "type": "string"
      +}
  13. First observedv0.6.4

TDQS

A4/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false and destructiveHint=false; the description goes further by marking specific mutating actions as (write) (trace_start, trace_cancel), stating apply_quickfix produces 'text deltas, no save', naming the permission gates (SAP_ALLOW_WRITES, SAP_ALLOW_DATA_PREVIEW), and disclosing failure semantics ('empty/incomplete runs fail', 'ATC may verify once. Missing reports stay incomplete'). It doesn't uniformly flag writes across all actions (e.g. tc_ci, set_sql_trace_state is covered only via the permission note), so it is strong but not exhaustive.

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

Conciseness4/5

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

Front-loaded by action name with a terse 'key: params' notation, no filler sentences, and the quickfix workflow distilled into one closing line. The extreme density and unexplained abbreviations (ST22, SM02, SU53) cost it a perfect score, since a reader must already know SAP transaction codes to parse some entries.

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

Completeness4/5

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

For a 24-action, 45-parameter tool with no output schema, the description covers every action's purpose, key inputs, permission requirements, and write/no-save behavior, which is enough to select and invoke correctly. The remaining gap is that return shapes (e.g. what 'dumps' detail or 'object_state' divergence actually yields) are neither described nor backed by an output schema.

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

Parameters4/5

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

Schema coverage is 96%, so the schema carries most definitions; the description's real contribution is the action→parameter mapping ('quickfix: name+type+source+line; optional column/sourceUri', 'dumps: user/from/to/maxResults/filters; id=detail', 'atc: name+type or objects [...], max 20'), which tells an agent which of 45 fields are legal per action. It also adds constraints not in the schema text ("No server-driven types" for object_state).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the category (ABAP diagnostics) and then defines each of the 24 actions with a specific verb+resource ("syntax": check objects, "dumps": ST22 newest, "trace_start": arm NEXT matching execution). This makes the multiplexed tool legible and separates it from siblings with an explicit pointer ("Single: prefer SAPRead SYNTAX"). The one weakness is that the tool as a whole has no single-sentence purpose statement, only a per-action enumeration.

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

Usage Guidelines4/5

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

It gives concrete routing and prerequisites: prefer SAPRead for single-object syntax checks, requires SAP_ALLOW_WRITES for set_sql_trace_state, needs allowDataPreview for odata_perf, requires 'available API and verified selection' for atc_ci, and sketches a workflow 'syntax/ATC → quickfix → apply_quickfix → SAPWrite'. What's missing is any general statement of when not to use the tool or how to choose between near-duplicates like unittest vs unittest_ci beyond the 'harmless'/'reconciled' hints.

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