Skip to main content
Glama

SAPDiagnose

Identify ABAP syntax errors, runtime dumps, slow OData calls, and authorization issues. Run checks, traces, and quick fixes to resolve them.

Instructions

ABAP diagnostics and runtime analysis. Actions:

  • "syntax": syntax-check (name+type; optional version; optional source = pre-write dry-run, nothing written).

  • "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": run ATC checks (name+type or objects [{type,name}], max 20; omit variant to bind the system default; unknown variant = error). "atc_variants": list variants + that default (variant = name filter; read-only).

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

  • "cds_testcases": SAP-suggested ABAP Unit test cases for a CDS entity (name; read-only; SAP_BASIS 8.16+).

  • "object_state": compare active vs inactive source versions (name+type; CLAS compares all includes). Returns ETags/hashes/divergence flags.

  • "quickfix": proposals at name+type+source+line (optional column/sourceUri).

  • "apply_quickfix": return proposal text deltas without writing; needs quickfix inputs + proposalUri/proposalUserContent.

  • "dumps": list/read ST22 short dumps (no id = list, newest first, user/from/to/maxResults; id = read; includeFullText, sections).

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

  • "trace_start": arm a profiler trace for the NEXT matching execution, then reproduce and read via "traces" (write scope; defaults: next HTTP request, SQL on).

  • "trace_requests": list armed trace requests. "trace_cancel": cancel one by id (write scope).

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

  • "odata_perf": diagnose why an OData call is slow (url = host-relative path); returns the sap-statistics timing split (DB/ABAP/framework/auth). Read-only; needs allowDataPreview.

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

  • "cds_sql": show the native SQL a CDS view compiles to (name; read-only).

  • "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control. Quickfix workflow: syntax/ATC → quickfix → apply_quickfix → write via SAPWrite. Full action reference: docs_page SAPDiagnose.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoDump or trace ID (for dumps/traces actions); also the trace-request id to cancel (for trace_cancel). Omit to list, provide to get details.
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).
objectsNoATC only, instead of name/type/url. One batch + at most one verification. Returns coverage; unreported objects 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. 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."
  2. 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."
  3. 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."
  4. 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)"
  5. 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."
  6. 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."
  7. 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"
      +}
  8. 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"
  9. Addedv0.9.6
  10. Removedv0.9.3
  11. 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"
      +}
  12. First observedv0.6.4

TDQS

A4/5.0
Behavior4/5

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

The annotations only provide readOnlyHint=false and destructiveHint=false, which are thin. The description compensates by explicitly marking read-only actions (cds_testcases, cds_sql, atc_variants, object_state, quickfix, apply_quickfix), write-scope actions (trace_start, trace_cancel, set_sql_trace_state), and side-effect-free dry-runs (syntax with source: 'nothing written'). It also discloses permission requirements (SAP_ALLOW_DATA_PREVIEW, SAP_ALLOW_WRITES) and failure semantics (unknown variant = error).

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

Conciseness3/5

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

The description is well organized by action names and front-loads the quickfix workflow, but it is quite long (~300 words) and dense, mixing usage notes, permissions, and behavioral caveats. Each sentence carries information, so it is more thorough than verbose, but the length and compressed format make it harder to scan quickly.

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 44-parameter, 23-action dispatcher with no output schema, the description is unusually complete: it covers required inputs, defaults, side effects, permissions, action ordering, and failure semantics. It does not document return structures, but with no output schema and such broad functionality, the description carries most of the context an agent needs. Minor gaps remain (e.g., list pagination details).

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

Parameters3/5

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

Schema coverage is already 95%, and the input schema provides detailed descriptions for nearly every parameter, including defaults, constraints, and action-specific meanings. The tool description adds a few nuances (e.g., absolute URLs rejected, atc_variants variant = name filter), but mostly restates what the schema already covers. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly enumerates 23 distinct actions, each with a specific verb and resource (e.g., 'syntax': syntax-check, 'dumps': list/read ST22 short dumps, 'cds_sql': show the native SQL a CDS view compiles to). Each sub-operation is differentiated from the others, and the tool's overall diagnostic scope is evident, distinguishing it from siblings like SAPRead or SAPLint.

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

Usage Guidelines4/5

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

The description gives detailed per-action usage guidance, including required parameters, defaults, and constraints (e.g., 'atc' max 20 objects, 'odata_perf' URL must be host-relative, 'unittest_ci' empty runs fail). It also explicitly lays out the quickfix workflow order. However, it does not explicitly compare this tool to alternatives like SAPRead or SAPLint or state 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.