Mmcp.market

Abap Adt MCP server

by williansaez·io.github.williansaez/abap-adt-mcp·v2.0.0

ABAP development from Claude and other MCP hosts: source, transports, tests, ATC, debugger

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
Growing

9 stars305 downloads/wk

Reviews

Write one

Nobody has reviewed Abap Adt yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Abap Adt tools (100, 10 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • abapDocumentation

    ABAP keyword documentation (the F1 help) as plain text. Two ways to ask: (a) keyword: a statement or addition such as "SELECT SINGLE", "WITH PRIVILEGED ACCESS", "LOOP AT GROUP BY" (the server builds the context for you); (b) cursor: objectUri, body (the source; fetched from objectUri when omitted), line and column of the element to explain. Long documents are paged with startLine/maxLines.

  • activateByName

    Activate a single ABAP object by name and URL. Run after setObjectSource (and unLock); after activation run unitTestRun to verify behavior.

  • activateObjects

    Activate ABAP objects using object references. Run after setObjectSource; the entries returned by inactiveObjects can be passed here directly. For a single object, activateByName is simpler.

  • activatePackage

    Activate every inactive object of a package (and its sub-packages) in one activation request, the way RAP stacks (CDS, behavior definition, service definition, classes) must be activated together. Returns the activation messages and what is still inactive afterwards.

  • adtCompatibilityGraph

    Retrieves the ADT compatibility graph.

  • adtCoreDiscovery

    Performs ADT core discovery. Returns a list of core discovery collections. For large systems, use startIndex/maxItems to page through the list instead of retrieving it all at once.

  • adtDiscovery

    Performs ADT discovery. Returns a list of discovery collections. For large systems, use startIndex/maxItems to page through the list instead of retrieving it all at once.

  • annotationDefinitions

    Retrieves the CDS annotation catalog for the system. This can be large; use startIndex/maxItems to page through it instead of retrieving it all at once.

  • apiReleaseState

    Release state of SAP objects for ABAP Cloud / Clean Core, from SAP's official cloudification repository (released, deprecated with successors, classicAPI, noAPI) plus, when objectUrl is given, the backend's own /sap/bc/adt/apireleases answer. Check APIs before writing cloud code instead of recalling from memory. Pass names as "CL_X", "TABL:MARA", "FUGR:BAPI_..." (comma-separated) or a source to sc

  • atcApplyQuickfix

    Apply a deterministic quickfix at an ATC finding location: recomputes the proposals (see atcQuickfixProposals), applies the chosen one to the source and writes it back with setObjectSource. Requires the object to be locked (lock returns the lockHandle). Activate afterwards with activateByName and re-run ATC to confirm the finding is gone.

  • atcChangeContact

    Changes the contact for an ATC finding.

  • atcCheckVariant

    Retrieves information about an ATC check variant.

  • atcContactUri

    Retrieves the contact URI for an ATC finding.

  • atcCustomizing

    Retrieves ATC customizing information.

  • atcDocumentation

    Read the documentation of an ATC check/finding (what the check tests, why it matters, how to fix). Pass the documentation URI found in an ATC finding (atcWorklists → findings[].link / docUri).

  • atcExemptProposal

    Retrieves an ATC exemption proposal.

  • atcQuickfixProposals

    List the quickfix proposals available at an ATC finding location. Pass the source URL and position from an atcWorklists finding. Apply a proposal with atcApplyQuickfix. Read-only.

  • atcRequestExemption

    Requests an ATC exemption.

  • atcSummary

    Aggregated view of an ATC result: totals by priority, by check and by object, top findings with location and quickfix availability. Pass runResultId from createAtcRun, or mainUrl (+ variant) to run ATC and summarize in one call. mainUrl accepts an object URL, a package URL (/sap/bc/adt/packages/zfin) or a transport URL (/sap/bc/adt/cts/transportrequests/DEVK900123).

  • atcUsers

    Retrieves a list of ATC users.

  • atcWorklists

    Retrieves ATC worklists. For runs covering many objects, use startIndex/maxItems to page through the findings-per-object list instead of retrieving it all at once.

  • cdsViewInfo

    CDS entity by name in one call: element info (fields with types, associations, extension views, secondary objects) and optionally the DDL source. Pass the entity name (ZI_PRODUCT), not a URL.

  • checkRepo

    Checks a Git repository.

  • classComponents

    List class components (methods, attributes, types). For large classes, use startIndex/maxComponents to page through the top-level component list instead of retrieving it all at once.

  • classIncludes

    URLs of the includes of a class (main, definitions, implementations, testclasses, macros) to use with getObjectSource/editObjectSource as they are (no /source/main suffix).

  • codeCompletion

    Get code completion suggestions

  • codeCompletionElement

    Retrieves code completion element information.

  • codeCompletionFull

    Performs full code completion.

  • collectionFeatureDetails

    Retrieves details for a given collection feature.

  • creatableTypeDetails

    List the object types createObject supports, with per-type required fields, label and max name length (SAP-style get_object_type_details). Filter with typeId. For the system-reported creatable catalog see loadTypes.

  • createAtcRunwrite action

    Creates an ATC run. Flow: atcCustomizing (system check variant name) -> atcCheckVariant (returns a worklistId) -> createAtcRun -> atcWorklists (findings). Passing a check variant NAME here also works: it is resolved to a worklistId via atcCheckVariant automatically.

  • ddicElement

    Retrieves information about a DDIC element. For complex objects the child element list (fields/associations/secondary objects) can be large; use startIndex/maxItems to page through it instead of retrieving it all at once.

  • ddicRepositoryAccess

    Accesses the DDIC repository. This can return a large list of object references; use startIndex/maxItems to page through it instead of retrieving it all at once.

  • debuggerAttach

    Attaches the debugger.

  • debuggerChildVariables

    Retrieves child variables of a debugger variable. If the parent is a large structure/table, use startIndex/maxItems to page through the returned child rows instead of retrieving them all at once.

  • debuggerDeleteBreakpointswrite action

    Deletes breakpoints.

  • debuggerDeleteListenerwrite action

    Stops a debug listener.

  • debuggerGoToStack

    Navigates to a specific stack entry in the debugger.

  • debuggerListen

    Listens for debugging events.

  • debuggerListeners

    Retrieves a list of debugger listeners.

  • debuggerSaveSettings

    Saves debugger settings.

  • debuggerSetBreakpoints

    Sets breakpoints.

  • debuggerSetVariableValue

    Sets the value of a debugger variable.

  • debuggerStackTrace

    Retrieves the debugger stack trace.

  • debuggerStep

    Performs a debugger step.

  • debuggerVariables

    Retrieves debugger variables. If an inspected parent is a large internal table, use startIndex/maxItems to page through the returned variable list instead of retrieving it all at once.

  • deleteObjectwrite action

    Deletes an ABAP object from the system

  • dropSessionwrite action

    Clear local session cache

  • dumpDetails

    Full formatted analysis of one ABAP short dump as plain text (header, what happened, error analysis, where terminated, source extract, variables, call stack). Pass the dumpId from dumps (or the full self link). Page long dumps with startLine/maxLines.

  • dumps

    List recent ABAP short dumps (runtime errors). By default returns a compact summary per dump (runtime error, exception, program, user, time, where it terminated with source URL and line, top of the call stack) instead of the raw HTML. Filter with from/to (timestamps), user, or a substring in program/runtime error. Use dumpDetails(dumpId) for the full analysis of one dump. This is the root-cause pa

  • exportPackageSourceswrite action

    Write the sources of a package (and sub-packages) to a local directory in abapGit file layout (zcl_x.clas.abap, zcl_x.clas.testclasses.abap, zi_x.ddls.asddls, zrep.prog.abap …) so local tools (grep, editors, code review, documentation pipelines) can work on them. Read-only on SAP; writes only to the given directory (must be absolute; restricted to MCP_EXPORT_ROOT when set). Classes, interfaces, pr

  • featureDetails

    Retrieves details for a given feature.

  • feeds

    Retrieves a list of feeds.

  • findCollectionByUrl

    Finds a collection by its URL.

  • findDefinition

    Find symbol definition

  • findObjectPath

    Find path for an object

  • fixEdits

    Applies fix edits.

  • fixProposals

    Retrieves fix proposals.

  • forceUnlock

    Release every lock this server holds on the destination (or one objectUrl). With dropSession=true also drops the SAP session afterwards, which frees locks whose handles are already invalid. Use after failed writes left objects locked.

  • fragmentMappings

    Retrieves fragment mappings.

  • getDataElementProperties

    Read a DDIC data element: type (domain or built-in), length, field labels (short/medium/long/heading), search help and flags. Pass the data element URL (/sap/bc/adt/ddic/dataelements/zde).

  • getDomainProperties

    Read a DDIC domain: data type, length, decimals, output settings and fixed values / value table. Pass the domain URL (/sap/bc/adt/ddic/domains/zdom) and optionally version=inactive.

  • gitCreateRepowrite action

    Creates a new Git repository.

  • gitExternalRepoInfo

    Retrieves information about an external Git repository.

  • gitPullRepo

    Pulls changes from a Git repository. For repos with many changed objects, use startIndex/maxItems to page through the list of imported/changed objects returned in the response instead of retrieving it all at once.

  • gitRepos

    Retrieves a list of Git repositories.

  • gitUnlinkRepo

    Unlinks a Git repository.

  • inactiveObjects

    Get list of inactive objects. For systems with many inactive objects across users, use startIndex/maxItems to page through the list instead of retrieving it all at once.

  • isProposalMessage

    Checks if a given object is a proposal message.

  • listLocks

    List the ADT locks this server currently holds on the destination (object, lockHandle, when, whether acquired automatically). Use it when a write fails with a lock/lockHandle error or before forceUnlock.

  • loadTypes

    List the ABAP object types creatable on this system (version-aware). Use BEFORE createObject to pick a valid objtype value such as CLAS/OC. For the raw ADT type catalog see objectTypes.

  • lock

    Lock an ABAP object for editing and keep the lock across calls. Returns the lockHandle; the server also records it, so setObjectSource/editObjectSource/deleteObject/createTestInclude/atcApplyQuickfix on the same object may omit lockHandle while it is held. Not needed for a single write: those tools lock and unlock by themselves when no lock is held. Always unLock when done.

  • login

    Authenticate with ABAP system

  • logout

    Terminate ABAP session

  • mainPrograms

    Retrieves the main programs for a given include.

  • nodeContents

    Retrieves the contents of a node in the ABAP repository tree. For large packages/namespaces, use startIndex/maxItems to page through the node list instead of retrieving it all at once.

  • objectEnhancements

    Enhancement implementations (implicit/explicit enhancement points, BAdI-free source enhancements) active on an ABAP source object, with optional source of each implementation. Use before editing standard-adjacent code to see what customer enhancements already hook in.

  • objectRegistrationInfo

    Get registration information for an ABAP object

  • objectStructure

    Get object structure details. For large/complex objects (e.g. classes with many includes), use startIndex/maxItems to page through the structure's top-level array instead of retrieving it all at once.

  • objectStructureElements

    Flat list of the members (methods, attributes, events, types, fields…) of an object with name, type, visibility and flags, cheaper than objectStructure/classComponents when you only need an outline. version=inactive reads the inactive version.

  • objectTypes

    Retrieve the ADT object type catalog reported by the system. For picking an objtype to pass to createObject, prefer loadTypes (creatable types).

  • packageSearchHelp

    Performs a package search help.

  • packageTree

    Package hierarchy with its objects in one call: sub-packages (to maxDepth) and, per package, the objects with name, type, URL and description. Cheaper than repeated nodeContents calls; use objectTypes to keep only e.g. CLAS/OC,DDLS/DF.

  • pushRepo

    Pushes changes to a Git repository.

  • reentranceTicket

    Retrieves an SAP reentrance ticket. WARNING: the ticket is a live logon credential and will appear in the conversation/host logs. Disabled unless the server is started with SAP_ALLOW_REENTRANCE_TICKET=1.

  • remoteRepoInfo

    Retrieves information about a remote Git repository.

  • runClasswrite action

    Runs a class.

  • searchObject

    Search for objects

  • setDataElementPropertieswrite action

    Write a DDIC data element (type, field labels, search help…). Read it first with getDataElementProperties, modify the returned properties/metaData objects and pass them back as JSON. Requires lock (lockHandle) and a transport for transportable packages; activate afterwards with activateByName.

  • setDomainPropertieswrite action

    Write a DDIC domain (type, length, fixed values, value table…). Read it first with getDomainProperties, modify the returned properties/metaData objects and pass them back as JSON. Requires lock (lockHandle) and a transport for transportable packages; activate afterwards with activateByName.

  • stageRepo

    Stages changes in a Git repository. For a large initial package push, use startIndex/maxItems to page through the staged/unstaged/ignored object lists instead of retrieving them all at once.

  • switchRepoBranch

    Switches the branch of a Git repository.

  • syntaxCheckCdsUrl

    Perform ABAP syntax check with CDS URL

  • syntaxCheckCode

    ABAP syntax check of a source against the context of an existing object: url is the source URL of that object (…/source/main), required because the check resolves types and includes in its context; it is not a standalone check of free text. Provide the source in "code" (alias: source), or omit it to reuse the source last read/written for "url" this session. Returns line, offset, severity and text

  • syntaxCheckTypes

    Retrieves syntax check types.

  • typeHierarchy

    Type hierarchy (subtypes or supertypes) of the class/interface at a given source position. Pass the source URL (…/source/main) and the 1-based line/column of the type name; the current source is re-read from SAP unless you pass it in "source". superTypes=true lists the inheritance chain upwards, false (default) lists implementers/subclasses.

  • unLock

    Unlock an ABAP object previously locked with lock (requires its lockHandle).

  • usageReferenceSnippets

    Retrieves usage reference snippets (source excerpts) for a list of usage references, e.g. from usageReferences. For large input lists the returned snippets can be large; use startIndex/maxItems to page through the result instead of retrieving it all at once.

  • usageReferences

    Find symbol references (system-wide "where used"). For widely-used symbols this can return hundreds/thousands of hits; use startIndex/maxItems to page through the result instead of retrieving it all at once.

  • whereUsed

    Where-used list by object name: resolves the name with searchObject and returns the usage references (using object, its URL, kind of usage). No URL or source position needed.

Public scan report

scanner v0.1.9 · 2026-09-19 · same rubric, same numbers if you re-run it

1 medium
  • Code scan63 source files scanned20/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 4 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/lib/browserLogin.js: …n = browserLogin; const dynamicImport = new Function('specifier', 'return import(specifier)')…
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

Runs npx -y abap-adt-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add abap-adt-mcp -- npx -y abap-adt-mcp
Add to Cursor

Abap Adt: common questions

Is Abap Adt MCP server safe?
Mostly: it is graded B (75/100). Read the Abap Adt safety report
How do I install Abap Adt?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Abap Adt need an API key?
Yes. The registry entry asks for SAP_SYSTEMS, MCP_HTTP_TOKEN, SAP_PASSWORD, SAP_OAUTH_CLIENT_SECRET.
Is Abap Adt maintained?
The last commit was 5 days ago (2026-09-16). The latest release is v2.0.0.
What can I use instead of Abap Adt?
Servers from other publishers that do the same job: MCP Appium - Mobile Development and Automation Server MCP server.

Alternatives to Abap Adt

Same job from other publishers: the closest match first, then the best rated.

More from williansaez