Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

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

+4 this week 75 Trust /100

Last scanned (6 hours ago)

Scores higher than 50% of npm servers

Category Developer Tools

Trust breakdown (7 categories)

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
Changelog

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
Diagnostics

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 →

MCP tools · 71 exposed · ~16,243 tokens

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 →

Tool Tokens
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.

NameTypeReqDescription
numberinteger–One batch number to read (an integer of at least 1); give this or numbers, not both.
numbersarray–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.

NameTypeReqDescription
objectsarrayyes–
timeoutinteger–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.

NameTypeReqDescription
codestringyesABAP 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.

NameTypeReqDescription
codestringyesABAP 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.

NameTypeReqDescription
codestringyesABAP source code to analyze and resolve symbols for
timeoutinteger–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.

NameTypeReqDescription
detailstring–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_typestring–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.

NameTypeReqDescription
behavior_definition_namestringyesBehaviorDefinition name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
behavior_implementation_namestringyesBehaviorImplementation name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
class_namestringyesClass name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
data_element_namestringyesData element name.
versionstring–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.

NameTypeReqDescription
ddl_namestringyesDDL source name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
domain_namestringyesDomain name.
versionstring–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.

NameTypeReqDescription
enhancement_namestringyes[read-only] Name of the enhancement implementation
enhancement_spotstringyesName 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.

NameTypeReqDescription
object_namestring–Name of the ABAP object (with object_type; or give objects)
object_typestring–[read-only] Type of the ABAP object
objectsarray–[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.

NameTypeReqDescription
enhancement_spotstringyesName 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.

NameTypeReqDescription
function_group_namestringyesFunctionGroup name.
versionstring–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.

NameTypeReqDescription
function_group_namestringyesFunction group containing the include.
include_namestringyesInclude name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
function_group_namestringyesFunction group containing the function module.
function_module_namestringyesFunction module name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
detailstring–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.

NameTypeReqDescription
include_namestringyesName 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.

NameTypeReqDescription
detailedboolean–[read-only] If true, returns structured JSON with metadata and raw XML.
object_namestring–Name of the ABAP program or include (with object_type; or give objects)
object_typestring–[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…
objectsarray–[read-only] Several objects, read together (give this or object_name and object_type)
timeoutinteger–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.

NameTypeReqDescription
interface_namestringyesInterface name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
message_class_namestringyesMessage 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.

NameTypeReqDescription
detailstring–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_namestringyesParent message class name.
msgnostringyesMessage 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.

NameTypeReqDescription
metadata_extension_namestringyesMetadataExtension name.
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
versionstring–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.

NameTypeReqDescription
enrichboolean–[read-only] Whether to add description and package via SearchObject (default true)
include_descriptionsboolean–[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…
maxDepthinteger–[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…
objectsarray–[read-only] Several objects, read together (give this or parent_type and parent_name)
parent_namestring–[read-only] Parent object name
parent_typestring–[read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P); with parent_name, or give objects
timeoutinteger–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.

NameTypeReqDescription
object_namestringyes[read-only] Object name
object_typestringyes[read-only] Object type
tech_namestringyes[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.

NameTypeReqDescription
formatstring–[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_idstringyes[read-only] Node ID
parent_namestringyes[read-only] Parent object name
parent_tech_namestringyes[read-only] Parent technical name
parent_typestringyes[read-only] Parent object type
with_short_descriptionsboolean–[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.

NameTypeReqDescription
objectsarray–[read-only] Several parents, read together (give this or parent_name)
parent_namestring–[read-only] Parent object name (with parent_tech_name and parent_type; or give objects)
parent_tech_namestring–[read-only] Parent technical name
parent_typestring–[read-only] Parent object type (e.g. PROG/P, FUGR)
timeoutinteger–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_descriptionsboolean–[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.

NameTypeReqDescription
detailstring–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).
objectnamestringyesADT object name (e.g. /CBY/ACQ_DDL)
objecttypestringyesADT 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.

NameTypeReqDescription
content_uri_fromstringyesOpaque content_uri of the OLD/base version (from the object's version history).
content_uri_tostringyesOpaque content_uri of the NEW/compare version (from the object's version history).
object_typestringyesObject 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.

NameTypeReqDescription
function_group_namestring–Owning function group name. Required when object_type is function_module.
object_namestringyesObject name.
object_typestringyesObject 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.

NameTypeReqDescription
content_uristringyesOpaque content_uri of a version, from the object's version history.
object_typestringyesObject 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.

NameTypeReqDescription
detailstring–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_namestringyesPackage name.
versionstring–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.

NameTypeReqDescription
include_descriptionsboolean–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_subpackagesboolean–Include contents of subpackages recursively (default: false)
max_depthnumber–Maximum depth for recursive package traversal (default: 5)
package_namestring–Name of the ABAP package (give this or package_names)
package_namesarray–Names of several ABAP packages, read together (give this or package_name)
timeoutinteger–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.

NameTypeReqDescription
debugboolean–Include diagnostic metadata in response (counts, types, hierarchy info). Default: false
include_descriptionsboolean–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_subpackagesboolean–Include subpackages recursively in the tree. If false, subpackages are shown as first-level objects but not recursively expanded. Default: true
max_depthinteger–Maximum depth for recursive package traversal. Default: 5
package_namestring–Package name (give this or package_names)
package_namesarray–Several package names, read together (give this or package_name)
timeoutinteger–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.

NameTypeReqDescription
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
program_namestringyesProgram name.
versionstring–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.

NameTypeReqDescription
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
response_formatstring–Preferred response format. "json" requests JSON from endpoint, "xml" parses XML payload, "plain" returns raw text.
service_binding_namestringyesService 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.

NameTypeReqDescription
clientstring–Client for the sap-client parameter. Omitted, the client the system reports is used; an empty string leaves the parameter out.
entity_setstring–Entity set to open. Omitted, the first one the service definition exposes is used.
languagestring–Logon language for the preview. Omitted, the language the system reports is used.
navigationstring–Association or composition to follow. Omitted, the first one of the exposed root view is used.
service_binding_namestringyesService binding name.
target_entity_setstring–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.

NameTypeReqDescription
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
service_definition_namestringyesServiceDefinition name.
versionstring–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.

NameTypeReqDescription
detailstring–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_numbernumber–[read-only] Maximum number of rows to return
sql_querystringyesSQL query to execute
timeoutinteger–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.

NameTypeReqDescription
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
structure_namestringyesStructure name.
versionstring–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.

NameTypeReqDescription
include_extensionsboolean–[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_namestring–Structure name (or give structure_names).
structure_namesarray–Several structure names, read together (give this or structure_name).
timeoutinteger–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…
versionstring–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.

NameTypeReqDescription
partstring–The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...).
table_namestringyesTable name.
versionstring–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.

NameTypeReqDescription
detailstring–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_rowsnumber–Maximum number of rows to retrieve
table_namestringyesName of the ABAP table
timeoutinteger–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.

NameTypeReqDescription
detailstring–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_namestringyesName 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.

NameTypeReqDescription
include_objectsboolean–Include list of objects in transport (default: true)
include_tasksboolean–Include list of tasks in transport (default: true)
transport_numberstringyesTransport 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.

NameTypeReqDescription
include_structure_fallbackboolean–When true (default), tries DDIC structure lookup only if type lookup returns 404/empty.
type_namestringyesName of the ABAP type

No output schema declared.

No examples provided.

Install

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

# add to Claude Code
claude mcp add fr0ster-mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-ro
Common questions

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.