io.github.fr0ster/mcp-abap-adt-ro
NPM · @MCP-ABAP-ADT/CORE-RO
Read-only MCP server for SAP ABAP ADT over HTTP, RFC or SNC: the readonly, system and search tools
Available components
Last scanned (6 hours ago)
Scores higher than 50% of npm servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 44 of 171 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (AGPL-3.0-only).Pass
- Actively maintained (last published 1 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability59
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 16243 tokens (~228/item across 71 items; 71 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
- Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 85% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 71 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 71 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 0
- Stability: 0.00 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 19.2.0 → 20.0.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/@mcp-abap-adt/core-ro@20.0.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 171 packages
| Packages resolved | 171 |
|---|---|
| Stale | 43 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
BatchAnswers ~133
[read-only] Answers the calls of the last executed batch by number: for each number asked, the tool's answer, built from the call's parts of SAP's response when the number is first read and kept for later reads; the numbers asked are processed in parallel. Takes one number or a list of numbers; an unknown number answers as unknown.
| Name | Type | Req | Description |
|---|---|---|---|
| number | integer | – | One batch number to read (an integer of at least 1); give this or numbers, not both. |
| numbers | array | – | Several batch numbers to read, answered in the order given; give this or number, not both. |
No output schema declared.
No examples provided.
BatchBegin ~82
[read-only] Starts batch mode on this server. In batch mode each call of a tool marked recordable is recorded under the next number, starting at 1, and answers with empty content. Answers the state_handle: over Streamable HTTP send it as the state_handle argument of every call of the batch (or in the x-mcp-state-handle header).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
BatchEnd ~88
[read-only] Sends the recorded calls in one envelope with the credentials in force and ends batch mode. Splits SAP's answer into each call's parts and answers the number of recorded calls, of requests sent and of parts received; when sending fails, the parts received differ from the requests sent or the answer fails to split, answers that error, and every number of the batch then answers it.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
DescribeByList ~268
[read-only] Describes each repository object named in objects, in one call: its type, description and package. Input: objects: Array<{ name: string, type?: string }>. Each object may be of type: PROG/P, FUGR, PROG/I, CLAS/OC, FUGR/FC, INTF/OI, TABLE, STRUCTURE, etc. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| objects | array | yes | – |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetAbapAST ~48
[read-only] Parse ABAP code and return AST (Abstract Syntax Tree) in JSON format. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | ABAP source code to parse |
No output schema declared.
No examples provided.
GetAbapSemanticAnalysis ~51
[read-only] Perform semantic analysis on ABAP code and return symbols, types, scopes, and dependencies. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | ABAP source code to analyze |
No output schema declared.
No examples provided.
GetAbapSystemSymbols ~224
[read-only] Resolve ABAP symbols from semantic analysis with SAP system information including types, scopes, descriptions, and packages. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | ABAP source code to analyze and resolve symbols for |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetAdtTypes ~165
[read-only] Retrieve all valid ADT object types (CLAS, TABL, PROG, DEVC, FUGR, INTF, DDLS, DTEL, DOMA, SRVD, SRVB, BDEF, DDLX, etc.) or validate a specific type name. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| validate_type | string | – | Type name to validate (optional) |
No output schema declared.
No examples provided.
GetBehaviorDefinition ~178
[read-only] Reads the RAP behavior definition named by behavior_definition_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| behavior_definition_name | string | yes | BehaviorDefinition name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetBehaviorImplementation ~184
[read-only] Reads the RAP behavior implementation (its class) named by behavior_implementation_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| behavior_implementation_name | string | yes | BehaviorImplementation name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetClass ~174
[read-only] Reads the ABAP class named by class_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| class_name | string | yes | Class name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetDataElement ~127
[read-only] Reads the ABAP data element named by data_element_name in one request: its ADT metadata document (definition, package, description). Returns it under `metadata`, with `part: "metadata"`. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| data_element_name | string | yes | Data element name. |
| version | string | – | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. |
No output schema declared.
No examples provided.
GetDdl ~184
[read-only] Reads the CDS view (or classic DDL view) named by ddl_name in one request: its DDL source (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| ddl_name | string | yes | DDL source name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetDomain ~122
[read-only] Reads the ABAP domain named by domain_name in one request: its ADT metadata document (definition, package, description). Returns it under `metadata`, with `part: "metadata"`. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_name | string | yes | Domain name. |
| version | string | – | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. |
No output schema declared.
No examples provided.
GetEnhancementImpl ~65
[read-only] Retrieve source code of a specific enhancement implementation by its name and enhancement spot. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| enhancement_name | string | yes | [read-only] Name of the enhancement implementation |
| enhancement_spot | string | yes | Name of the enhancement spot |
No output schema declared.
No examples provided.
GetEnhancements ~227
[read-only] Lists the enhancements (enhancement implementations) of the program, include, function group or class named by object_name and object_type. Takes object_name and object_type (one object: its enhancements) or objects (several objects: one entry per object, in the order given, each its enhancements answer or { object_name, object_type, error }). When object_type is one of CLASS, CLAS, CLAS/OC, FUNCTION_GROUP, FUNCTIONGROUP, FUGR, FUGR/F, PROGRAM, PROG, PROG/P and include_nested is any value but true, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| object_name | string | – | Name of the ABAP object (with object_type; or give objects) |
| object_type | string | – | [read-only] Type of the ABAP object |
| objects | array | – | [read-only] Several objects, read together (give this or object_name and object_type) |
No output schema declared.
No examples provided.
GetEnhancementSpot ~45
[read-only] Retrieve metadata and list of implementations for a specific enhancement spot. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| enhancement_spot | string | yes | Name of the enhancement spot |
No output schema declared.
No examples provided.
GetFunctionGroup ~127
[read-only] Reads the ABAP function group named by function_group_name in one request: its ADT metadata document (package, description, contents). Returns it under `metadata`, with `part: "metadata"`. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | yes | FunctionGroup name. |
| version | string | – | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. |
No output schema declared.
No examples provided.
GetFunctionInclude ~192
[read-only] Reads the include named by include_name of the ABAP function group named by function_group_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata"). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | yes | Function group containing the include. |
| include_name | string | yes | Include name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetFunctionModule ~219
[read-only] Reads the ABAP function module named by function_module_name, BAPI or RFC-enabled ones included, in the function group named by function_group_name, in one request: its source code, which declares the parameter signature (part "source", the default; active or inactive version), or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | yes | Function group containing the function module. |
| function_module_name | string | yes | Function module name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetInactiveObjects ~120
[read-only] Get a list of inactive ABAP objects — modified and pending activation. Shows classes, tables, CDS views, and other objects awaiting activation. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
No output schema declared.
No examples provided.
GetInclude ~93
[read-only] Read ANY single ABAP include source by name, from anywhere in the repository (an include may live outside any single program tree). Reads includes (PROG/I) by name. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| include_name | string | yes | Name of the ABAP Include |
No output schema declared.
No examples provided.
GetIncludesList ~390
[read-only] Recursively discover and list ALL include files within an ABAP program or include. Takes object_name and object_type (one object: its tree) or objects (several objects: one entry per object, in the order given, each { object_name, object_type, tree } or { object_name, object_type, error }). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| detailed | boolean | – | [read-only] If true, returns structured JSON with metadata and raw XML. |
| object_name | string | – | Name of the ABAP program or include (with object_type; or give objects) |
| object_type | string | – | [read-only] ADT object type of the parent. Only these four values are supported: 'PROG/P' (program), 'PROG/I' (include), 'FUGR' (function group), 'CLAS/OC' (class). Any other value is rejected by the… |
| objects | array | – | [read-only] Several objects, read together (give this or object_name and object_type) |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetInterface ~174
[read-only] Reads the ABAP interface named by interface_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| interface_name | string | yes | Interface name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetMessageClass ~110
[read-only] Reads the ABAP message class (MSAG/T100) named by message_class_name in one request: its ADT metadata document (XML: name, description, package, master language, messages). Returns it under `metadata`, with `part: "metadata"`. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| message_class_name | string | yes | Message class name. |
No output schema declared.
No examples provided.
GetMessageClassMessage ~220
[read-only] Reads the message numbered msgno of the ABAP message class (MSAG/T100) named by message_class_name in one request. Answers the one message under `message`: its number (msgno), text (msgtext), self-explanatory flag (selfexplainatory), long-text flag (documented), last changer (lastchangedby), change time (lastmodified), and every other field the system gives the message. A number absent from the class is refused as missing. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| message_class_name | string | yes | Parent message class name. |
| msgno | string | yes | Message number (e.g., "001"). |
No output schema declared.
No examples provided.
GetMetadataExtension ~178
[read-only] Reads the CDS metadata extension named by metadata_extension_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| metadata_extension_name | string | yes | MetadataExtension name. |
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetObjectInfo ~580
[read-only] Returns the object tree of the package (DEVC), class (CLAS), program (PROG), function group (FUGR) or other object named by parent_type and parent_name. Shows root, group nodes, and terminal leaves up to maxDepth. With enrich=true each node also carries its description and package, from a repository search. Takes parent_type and parent_name (one object: its tree) or objects (several objects: one tree per object, in the order given; a failed one as { OBJECT_TYPE, OBJECT_NAME, error }). Read in ADT batch envelopes: per tier the root node structures of its nodes, then their type nodes; with enrich, the search of every node last. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| enrich | boolean | – | [read-only] Whether to add description and package via SearchObject (default true) |
| include_descriptions | boolean | – | [read-only] Include each leaf's description. Where the system serves ADT batch, each description is read from the leaf's metadata: one more read per leaf, which on a large tree takes most of the call… |
| maxDepth | integer | – | [read-only] Maximum tree depth (default depends on type). Every object's own type folders and their contents are always shown (one tier); a higher value only descends further for PACKAGES, expanding… |
| objects | array | – | [read-only] Several objects, read together (give this or parent_type and parent_name) |
| parent_name | string | – | [read-only] Parent object name |
| parent_type | string | – | [read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P); with parent_name, or give objects |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetObjectNodeFromCache ~89
[read-only] Returns a node from the in-memory objects list cache by OBJECT_TYPE, OBJECT_NAME, TECH_NAME, and expands OBJECT_URI if present. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| object_name | string | yes | [read-only] Object name |
| object_type | string | yes | [read-only] Object type |
| tech_name | string | yes | [read-only] Technical name |
No output schema declared.
No examples provided.
GetObjectsByType ~217
[read-only] Lists the objects of one type (classes, tables, programs, interfaces, etc.), the type whose node in the object tree is named by node_id, under the package or composite object named by parent_name, parent_tech_name and parent_type. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | [read-only] Output format: 'parsed' (default). 'raw' is accepted for backward compatibility but answers the same parsed text — see the note on `nodeLevel` below. |
| node_id | string | yes | [read-only] Node ID |
| parent_name | string | yes | [read-only] Parent object name |
| parent_tech_name | string | yes | [read-only] Parent technical name |
| parent_type | string | yes | [read-only] Parent object type |
| with_short_descriptions | boolean | – | [read-only] Include short descriptions |
No output schema declared.
No examples provided.
GetObjectsList ~426
[read-only] Recursively lists every child repository object of the program (PROG), function group (FUGR), class (CLAS), package (DEVC) or other composite object named by parent_name, parent_tech_name and parent_type, nested includes and subcomponents included. Takes parent_name, parent_tech_name and parent_type (one parent: its list) or objects (several parents: one entry per parent, in the order given, each { parent_name, parent_type, total_objects, objects } or { parent_name, parent_type, error }). Each level of the node tree is read in one ADT batch envelope. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| objects | array | – | [read-only] Several parents, read together (give this or parent_name) |
| parent_name | string | – | [read-only] Parent object name (with parent_tech_name and parent_type; or give objects) |
| parent_tech_name | string | – | [read-only] Parent technical name |
| parent_type | string | – | [read-only] Parent object type (e.g. PROG/P, FUGR) |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
| with_short_descriptions | boolean | – | [read-only] Include short descriptions (default: true) |
No output schema declared.
No examples provided.
GetObjectStructure ~158
[read-only] Returns the ADT structure of the repository object named by objecttype and objectname as a compact JSON tree. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| objectname | string | yes | ADT object name (e.g. /CBY/ACQ_DDL) |
| objecttype | string | yes | ADT object type (e.g. DDLS/DF) |
No output schema declared.
No examples provided.
GetObjectVersionDiff ~158
[read-only] Compares the two object versions named by content_uri_from and content_uri_to, entries of an object's version history, for the object type named by object_type: returns the unified diff (jsdiff) of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| content_uri_from | string | yes | Opaque content_uri of the OLD/base version (from the object's version history). |
| content_uri_to | string | yes | Opaque content_uri of the NEW/compare version (from the object's version history). |
| object_type | string | yes | Object type (the same value the version history was read with). |
No output schema declared.
No examples provided.
GetObjectVersions ~162
[read-only] Lists the version history of the class, program, interface, function module, table, structure, CDS view, behavior definition or metadata extension named by object_name and object_type. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | – | Owning function group name. Required when object_type is function_module. |
| object_name | string | yes | Object name. |
| object_type | string | yes | Object type. |
No output schema declared.
No examples provided.
GetObjectVersionSource ~116
[read-only] Reads the source code of the object version named by content_uri, an entry of an object's version history, for the object type named by object_type. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| content_uri | string | yes | Opaque content_uri of a version, from the object's version history. |
| object_type | string | yes | Object type (the same value the version history was read with). |
No output schema declared.
No examples provided.
GetPackage ~197
[read-only] Reads the ABAP package named by package_name in one request: its ADT metadata document (description, super-package, sub-packages, ...), active or inactive version. Returns it under `metadata`, with `part: "metadata"`: a summary, the details or the document as SAP sent it, per `detail`. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| package_name | string | yes | Package name. |
| version | string | – | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. |
No output schema declared.
No examples provided.
GetPackageContents ~411
[read-only] Retrieve objects inside an ABAP package as a flat list. Supports recursive traversal of subpackages. Takes package_name (one package: its list) or package_names (several packages: one entry per package, in the order given, each { package_name, objects } or { package_name, error }). Each level of the walk is read in one ADT batch envelope: the root node structures of its packages, then their type nodes; with include_descriptions, as single requests, several at a time. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| include_descriptions | boolean | – | Include each object's description in the response. The walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes (default: false) |
| include_subpackages | boolean | – | Include contents of subpackages recursively (default: false) |
| max_depth | number | – | Maximum depth for recursive package traversal (default: 5) |
| package_name | string | – | Name of the ABAP package (give this or package_names) |
| package_names | array | – | Names of several ABAP packages, read together (give this or package_name) |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetPackageTree ~459
[read-only] Returns the complete tree of the ABAP package named by package_name: its subpackages and objects. Returns hierarchical tree with object names, types, and descriptions. Takes package_name (one package: its tree) or package_names (several packages: one entry per package, in the order given, each { package_name, tree, metadata } or { package_name, error }). Read in ADT batch envelopes: the package metadata with the root node structure, then each level of the walk; with include_descriptions, as single requests, several at a time. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| debug | boolean | – | Include diagnostic metadata in response (counts, types, hierarchy info). Default: false |
| include_descriptions | boolean | – | Include each object's description in the response. The package metadata and the walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes. Default: false |
| include_subpackages | boolean | – | Include subpackages recursively in the tree. If false, subpackages are shown as first-level objects but not recursively expanded. Default: true |
| max_depth | integer | – | Maximum depth for recursive package traversal. Default: 5 |
| package_name | string | – | Package name (give this or package_names) |
| package_names | array | – | Several package names, read together (give this or package_name) |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetProgram ~177
[read-only] Reads the ABAP program (report) named by program_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| program_name | string | yes | Program name. |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetServiceBinding ~186
[read-only] Reads the OData service binding named by service_binding_name in one request: its binding document (part "source", the default) or its ADT metadata document (part "metadata": package, responsible, description), each in the response_format given. Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| response_format | string | – | Preferred response format. "json" requests JSON from endpoint, "xml" parses XML payload, "plain" returns raw text. |
| service_binding_name | string | yes | Service binding name. Case-insensitive. |
No output schema declared.
No examples provided.
GetServiceBindingPreviewUrl ~258
[read-only] Build the browser URL that previews a published service binding, and the service and $metadata URLs beside it. Answers: "open the service in a browser", "preview this service binding", "what is the OData URL of this binding". Reads the binding for the service, version and protocol, and the service definition for the entity sets; the preview URL needs an entity set, and the answer names what is missing. A Web API binding answers the service URLs alone. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| client | string | – | Client for the sap-client parameter. Omitted, the client the system reports is used; an empty string leaves the parameter out. |
| entity_set | string | – | Entity set to open. Omitted, the first one the service definition exposes is used. |
| language | string | – | Logon language for the preview. Omitted, the language the system reports is used. |
| navigation | string | – | Association or composition to follow. Omitted, the first one of the exposed root view is used. |
| service_binding_name | string | yes | Service binding name. |
| target_entity_set | string | – | Entity set the navigation reaches. Omitted, the second exposed entity set is used. |
No output schema declared.
No examples provided.
GetServiceDefinition ~177
[read-only] Reads the service definition named by service_definition_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| service_definition_name | string | yes | ServiceDefinition name. |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetSqlQuery ~323
[read-only] Execute ABAP SQL SELECT queries on database tables and CDS views via SAP ADT Data Preview API. Use for ad-hoc data retrieval, row counts, and filtered queries. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| row_number | number | – | [read-only] Maximum number of rows to return |
| sql_query | string | yes | SQL query to execute |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetStructure ~180
[read-only] Reads the ABAP structure named by structure_name in one request: its definition with its fields, as source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| structure_name | string | yes | Structure name. |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetStructuresList ~393
[read-only] Recursively list the structures embedded in an ABAP structure (.INCLUDE / append), as a tree. Takes structure_name (one structure: its tree) or structure_names (several structures: one entry per structure, in the order given, each its tree answer or { structure_name, error }). Works on BASIS 7.50 and later, where the DDIC structure/table endpoints it reads exist; legacy systems (BASIS < 7.50) refuse it (issue #207). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| include_extensions | boolean | – | [read-only] Also find extension (append) structures via where-used (objects that `extend type <this> with …`). Default true. Set false to skip the (slower) where-used lookups and return includes only. |
| structure_name | string | – | Structure name (or give structure_names). |
| structure_names | array | – | Several structure names, read together (give this or structure_name). |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
| version | string | – | Version to read: "active" (default) or "inactive". |
No output schema declared.
No examples provided.
GetTable ~181
[read-only] Reads the ABAP database table named by table_name in one request: its definition with its fields, as source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| part | string | – | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). |
| table_name | string | yes | Table name. |
| version | string | – | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. |
No output schema declared.
No examples provided.
GetTableContents ~358
[read-only] Reads the contents (data preview, like SE16/SE16N) of the ABAP database table or CDS view named by table_name: every column, up to max_rows rows (default 100). Answers sql_query, row_number (the max_rows asked), execution_time, total_rows (the rows the table or view holds), columns and rows. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| max_rows | number | – | Maximum number of rows to retrieve |
| table_name | string | yes | Name of the ABAP table |
| timeout | integer | – | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the ca… |
No output schema declared.
No examples provided.
GetTransaction ~166
[read-only] Reads the properties of the ABAP transaction (t-code) named by transaction_name in one request. Answers the transaction under `object` (name, text, type, package) and its facets under `properties`, in the order the system gives them — the application component chain, the package chain, type, owner, language, creation and the others the system names — each entry with its facet, name, displayName and text. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). |
| transaction_name | string | yes | Name of the ABAP transaction |
No output schema declared.
No examples provided.
GetTransport ~112
[read-only] Retrieve ABAP transport request information including metadata, included objects, and status from SAP system. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Type | Req | Description |
|---|---|---|---|
| include_objects | boolean | – | Include list of objects in transport (default: true) |
| include_tasks | boolean | – | Include list of tasks in transport (default: true) |
| transport_number | string | yes | Transport request number, not a task |
No output schema declared.
No examples provided.
GetTypeInfo ~99
[read-only] Retrieve ABAP type information for domains (DOMA), data elements (DTEL), table types, and structures. Returns field definitions, value ranges, fixed values, and DDIC metadata. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| include_structure_fallback | boolean | – | When true (default), tries DDIC structure lookup only if type lookup returns 404/empty. |
| type_name | string | yes | Name of the ABAP type |
No output schema declared.
No examples provided.
How do I install the io.github.fr0ster/mcp-abap-adt-ro server?
io.github.fr0ster/mcp-abap-adt-ro runs locally as an npm package, launched with npx -y @mcp-abap-adt/core-ro. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @mcp-abap-adt/core-ro
claude mcp add fr0ster-mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-ro
What is the io.github.fr0ster/mcp-abap-adt-ro server?
io.github.fr0ster/mcp-abap-adt-ro is listed in the public MCP registry as io.github.fr0ster/mcp-abap-adt-ro. Read-only MCP server for SAP ABAP ADT over HTTP, RFC or SNC: the readonly, system and search tools. This page covers its npm package (@mcp-abap-adt/core-ro).
Is the io.github.fr0ster/mcp-abap-adt-ro server safe to use?
io.github.fr0ster/mcp-abap-adt-ro scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.fr0ster/mcp-abap-adt-ro server expose?
io.github.fr0ster/mcp-abap-adt-ro exposes 71 tools: GetTableContents, GetPackageContents, GetInclude, GetIncludesList, GetEnhancements, and 66 more. Their descriptions and schemas cost roughly 16,243 tokens of context every time the server is loaded.
Is the io.github.fr0ster/mcp-abap-adt-ro server still maintained?
io.github.fr0ster/mcp-abap-adt-ro is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.fr0ster/mcp-abap-adt-ro server under?
io.github.fr0ster/mcp-abap-adt-ro declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.