MCP-ADT
Provides tools for managing ABAP objects, handling transport requests, performing code analysis, and more via SAP's ADT API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-ADT show transport request TRKQ12345"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DISCLAIMER: This server is still in experimental status, use it with caution!
MCP-ADT
Description
This is a MCP-Server, it's a Model Context Protocol (MCP) server designed to facilitate seamless communication between ABAP systems and MCP clients. It is a wrapper for abap-adt-api and provides a suite of tools and resources for managing ABAP objects, handling transport requests, performing code analysis, and more, enhancing the efficiency and effectiveness of ABAP development workflows.
Related MCP server: SAP BTP ABAP ADT MCP Server
Features
Authentication: Securely authenticate with ABAP systems using the
logintool.Object Management: Create, read, update, and delete ABAP objects seamlessly.
Transport Handling: Manage transport requests with tools like
createTransportandtransportInfo.Code Analysis: Perform syntax checks and retrieve code completion suggestions.
Extensibility: Easily extend the server with additional tools and resources as needed.
Session Management: Handle session caching and termination using
dropSessionandlogout.Multiple Connections: Configure several named SAP systems (e.g. DEV, QAS, PRD) and switch between them at runtime with
listConnectionsandswitchConnection.
Installation
Prerequisites
Node.js: Ensure you have Node.js installed. You can download it from here.
ABAP System Access: Credentials and URL to access the ABAP system.
Steps
Allow commands in terminal if needed
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope ProcessClone the Repository
git clone https://github.com/rafaelssclaudio/MCP.git cd MCPInstall Dependencies
npm installConfigure Environment Variables
An
.env.examplefile is provided in the root directory as a template for the required environment variables. To set up your environment:a. Copy the
.env.examplefile and rename it to.env:cp .env.example .envb. Open the
.envfile and replace the placeholder values with your actual SAP connection details:SAP_URL=https://your-sap-server.com:44300 SAP_USER=YOUR_SAP_USERNAME SAP_PASSWORD=YOUR_SAP_PASSWORD SAP_CLIENT=YOUR_SAP_CLIENT SAP_LANGUAGE=YOUR_SAP_LANGUAGENote: The SAP_CLIENT and SAP_LANGUAGE variables are optional but recommended.
Multiple connections (DEV, QAS, PRD, ...)
The server can hold several SAP connections at once. Declare each one with a name suffix in the format
SAP_<FIELD>_<NAME>:# Default active connection on startup (optional; first declared otherwise) SAP_DEFAULT_CONNECTION=DEV # --- DEV --- SAP_URL_DEV=https://172.16.6.60:44300 SAP_USER_DEV=YOUR_USER SAP_PASSWORD_DEV=YOUR_PASSWORD SAP_CLIENT_DEV=100 SAP_LANGUAGE_DEV=PT # --- QAS --- SAP_URL_QAS=https://172.16.6.60:44300 SAP_USER_QAS=YOUR_USER SAP_PASSWORD_QAS=YOUR_PASSWORD SAP_CLIENT_QAS=110 SAP_LANGUAGE_QAS=PT NODE_TLS_REJECT_UNAUTHORIZED="0"A connection name is any suffix you choose (DEV, QAS, PRD, S4H, ...). The server discovers connections from every
SAP_URL_<NAME>variable found.URL,USERandPASSWORDare required per connection;CLIENTandLANGUAGEare optional.The legacy unsuffixed format (
SAP_URL,SAP_USER, ...) is still supported and is registered under the nameDEFAULT. You can mix both.The active connection defaults to
SAP_DEFAULT_CONNECTIONif set, otherwise the first declared connection (legacyDEFAULTwins if present, then names in alphabetical order).Switch connections at runtime with the
switchConnectiontool and inspect the available ones withlistConnections(see Custom Instruction below).Each connection gets its own session/login; switching does not log the others out.
If you're using self-signed certificates, you can also set:
NODE_TLS_REJECT_UNAUTHORIZED="0"IMPORTANT: Never commit your
.envfile to version control. It's already included in.gitignoreto prevent accidental commits.Build the Project
npm run buildRun the Server
npm run startUsing it with Claude Code
Install Claude-code in terminal
npm install -g @anthropic-ai/claude-codeLet Claude see the MCP ponting to the index.js from the dist where you installed it
claude mcp add abap-adt --scope user -- node "C:\Users\Rafael\MCP\dist\index.js"(or alternatively integrate the MCP Server into VSCode)
Usage
Once the server is running, you can interact with it using MCP clients or tools that support the Model Context Protocol (e.g. Cline). In order to integrate the MCP Server with Cline, use the following MCP Configuration:
"mcp-abap-abap-adt-api": {
"command": "node",
"args": [
"PATH_TO_YOUR/mcp-abap-abap-adt-api/dist/index.js"
],
"disabled": true,
"autoApprove": [
]
},
Custom Instruction fo AI use
Use this Custom Instruction to explain the tool to your LLM model:
## mcp-abap-abap-adt-api Server
This server provides tools for interacting with an SAP system via ADT (ABAP Development Tools) APIs. It allows you to retrieve information about ABAP objects, modify source code, and manage transports.
**Working with Multiple Connections:**
The server can be configured with several SAP connections (e.g. DEV, QAS, PRD). One connection is "active" at a time, and every other tool operates against it.
* **`listConnections`:** Lists all configured connections and shows which one is active.
* No parameters.
* Returns `{ active, connections: [{ name, url, user, client, language, active }] }` (passwords are never returned).
* **`switchConnection`:** Changes the active connection. All subsequent tool calls use it until switched again.
* `connection`: (string, required) The connection name to activate (e.g. `DEV` or `QAS`, as returned by `listConnections`).
* Each connection keeps its own session; you may need to `login` after switching to a connection you haven't used yet.
**Key Tools and Usage:**
* **`searchObject`:** Finds ABAP objects based on a query string (e.g., class name).
* `query`: (string, required) The search term.
* Returns the object's URI. Example: `/sap/bc/adt/oo/classes/zcl_invoice_xml_gen_model`
* **`transportInfo`:** Retrieves transport information for a given object.
* `objSourceUrl`: (string, required) The object's URI (obtained from `searchObject`).
* Returns transport details, including the transport request number (`TRKORR` or `transportInfo.LOCKS.HEADER.TRKORR` in the JSON response).
* **`lock`:** Locks an ABAP object for editing.
* `objectUrl`: (string, required) The object's URI.
* Returns a `lockHandle`, which is required for subsequent modifications.
* **`unLock`:** Unlocks a previously locked ABAP object.
* `objectUrl`: (string, required) The object's URI.
* `lockHandle`: (string, required) The lock handle obtained from the `lock` operation.
* **`setObjectSource`:** Modifies the source code of an ABAP object.
* `objectSourceUrl`: (string, required) The object's URI *with the suffix `/source/main`*. Example: `/sap/bc/adt/oo/classes/zcl_invoice_xml_gen_model/source/main`
* `lockHandle`: (string, required) The lock handle obtained from the `lock` operation.
* `source`: (string, required) The complete, modified ABAP source code.
* `transport`: (string, optional) The transport request number.
* **`syntaxCheckCode`:** Performs a syntax check on a given ABAP source code.
* `code`: (string, required) The ABAP source code to check.
* `url`: (string, optional) The URL of the object.
* `mainUrl`: (string, optional) The main URL.
* `mainProgram`: (string, optional) The main program.
* `version`: (string, optional) The version.
* Returns syntax check results, including any errors.
* **`activate`:** Activates an ABAP object. (See notes below on activation/unlocking.)
* `object`: The object to be activated.
* **`getObjectSource`:** Retrieves the source code of an ABAP object.
* `objectSourceUrl`: (string, required) The object's URI *with the suffix `/source/main`*.
**Workflow for Modifying ABAP Code:**
1. **Find the object URI:** Use `searchObject`.
2. **Read the original source code:** Use `getObjectSource` (with the `/source/main` suffix).
3. **Clone and Modify the source code locally:** (e.g., `write_to_file` for creating a local copy, and using `read_file`, `replace_in_file` for modifying this local copy).
4. **Get transport information:** Use `transportInfo`.
5. **Lock the object:** Use `lock`.
6. **Set the modified source code:** Use `setObjectSource` (with the `/source/main` suffix).
7. **Perform a syntax check:** Use `syntaxCheckCode`.
8. **Activate** the object, Use `activate`..
9. **unLock the object:** Use `unLock`.
**Important Notes:**
* **File Handling:** SAP is completly de-coupled from the local file system. Reading source code will only return the code as tool result - it has no effect on file. Files are not synchronized with SAP but merely a local copy for our reference. FYI: It's not strictly necessary for you to create local copies of source codes, as they have no effect on SAP, but it helps us track changes.
* **File Handling:** The local filenames you will use will not contain any paths, but only a filename! It's preferable to use a pattern like "[ObjectName].[ObjectType].abap". (e.g., SAPMV45A.prog.abap for a ABAP Program SAPMV45A, CL_IXML.clas.abap for a Class CL_IXML)
* **URL Suffix:** Remember to add `/source/main` to the object URI when using `setObjectSource` and `getObjectSource`.
* **Transport Request:** Obtain the transport request number (e.g., from `transportInfo` or from the user) and include it in relevant operations.
* **Lock Handle:** The `lockHandle` obtained from the `lock` operation is crucial for `setObjectSource` and `unLock`. Ensure you are using a valid `lockHandle`. If a lock fails, you may need to re-acquire the lock. Locks can expire or be released by other users.
* **Activation/Unlocking Order:** The exact order of `activate` and `unLock` operations might need clarification. Refer to the tool descriptions or ask the user. It appears `activate` can be used without unlocking first.
* **Error Handling:** The tools return JSON responses. Check for error messages within these responses.
## Efficient Database Access
SAP systems contain vast amounts of data. It's crucial to write ABAP code that accesses the database efficiently to minimize performance impact and network traffic. Avoid selecting entire tables or using broad `WHERE` clauses when you only need specific data.
* **Use `WHERE` clauses:** Always use `WHERE` clauses in your `SELECT` statements to filter the data retrieved from the database. Select only the specific rows you need.
* **`UP TO 1 ROWS`:** If you only need a single record, use the `SELECT SINGLE` statement, if you can guarantee that you can provide ALL the key fields for the `SELECT SINGLE` statement. Otherwise, use the `SELECT` statement with the `UP TO 1 ROWS` addition. This tells the database to stop searching after finding the first matching record, improving performance. Example:
```abap
SELECT vgbel FROM vbrp WHERE vbeln = @me->lv_vbeln INTO @DATA(lv_vgbel) UP TO 1 ROWS.
EXIT. " Exit any loop after this.
ENDSELECT.
```
## Checking Table and Structure Definitions
When working with ABAP objects, you may encounter errors related to unknown field names or incorrect table usage. You can use the following tools to inspect table and structure definitions:
* **`GetTable`:** Use this tool to retrieve the structure of an ABAP Dictionary table, including its field names and data types. This is helpful for verifying the correct fields to use in your `SELECT` statements.
* If you need to inspect an include structure, you may need to use `searchObject` to find the include and then use `GetTypeInfo` or `GetStructure`. You may get a 404 error and try again with `GetStructure`
* **`GetStructure`:** Use this tool to retrieve the structure of an ABAP Dictionary structure, including its field names and data types. This is helpful for verifying the correct fields to use in your `SELECT` statements.
* If you need to inspect an include structure, you may need to use `searchObject` to find the include and then use `GetTypeInfo` or `GetStructure`.
Available Tools
133 toolsabapDocumentationD
Retrieves ABAP documentation.
Inputs: body (required), line (required), column (required), objectUri (required), +2 more.
activateByNameC
Activate an ABAP object using name and URL
Inputs: objectUrl (required), objectName (required), connection, mainInclude, +1 more.
activateObjectsB
Activate ABAP objects using object references
Inputs: objects (required), connection, preauditRequested.
adtCompatibiliyGraphB
Retrieves the ADT compatibility graph.
Inputs: connection.
adtCoreDiscoveryD
Performs ADT core discovery.
Inputs: connection.
adtDiscoveryD
Performs ADT discovery.
Inputs: connection.
annotationDefinitionsC
Retrieves annotation definitions.
Inputs: connection.
atcCentralResultA
Reads a PERSISTED central ATC result by its display id (from SATC_AC_RESULTH / the ATC Result Browser), returned COMPACT (summary + per-object findings). This is the endpoint for CENTRAL runs — atcWorklists only works for transient worklist tokens and returns empty for central display ids. Findings include itemId/index (needed for exemptions), location with line, processor and lastChangedBy.
Inputs: displayId (required), connection, objectName, maxFindings, +1 more.
atcChangeContactB
Changes the contact for an ATC finding.
Inputs: userId (required), itemUri (required), connection.
atcCheckVariantA
STEP 1 of an ATC run. Opens an ATC worklist for the given check variant and RETURNS a worklistId (a token string), NOT informational text. Feed that returned worklistId into createAtcRun. Use the same check variant the SAP GUI uses, or the system default from atcCustomizing.
Inputs: variant (required), connection.
atcContactUriB
Retrieves the contact URI for an ATC finding.
Inputs: findingUri (required), connection.
atcCustomizingC
Retrieves ATC customizing information.
Inputs: connection.
atcExemptProposalC
Retrieves an ATC exemption proposal.
Inputs: markerId (required), connection.
atcRequestExemptionD
Requests an ATC exemption.
Inputs: proposal (required), connection.
atcUsersC
Retrieves a list of ATC users.
Inputs: connection.
atcWorklistsA
STEP 3 of an ATC run. Retrieves the findings of a completed ATC run, returned COMPACT (summary + per-object findings) to avoid huge payloads. For a central/shared worklist use objectName to filter to a single object.
Inputs: runResultId (required), timestamp, connection, objectName, +3 more.
bindingDetailsC
Retrieves details of a service binding.
Inputs: binding (required), index, connection.
checkRepoC
Checks a Git repository.
Inputs: repo (required), user, password, connection.
classComponentsC
List class components
Inputs: url (required), connection.
classIncludesC
Get class includes structure
Inputs: clas (required), connection.
codeCompletionC
Get code completion suggestions
Inputs: line (required), column (required), source (required), sourceUrl (required), +1 more.
codeCompletionElementC
Retrieves code completion element information.
Inputs: line (required), column (required), source (required), sourceUrl (required), +1 more.
codeCompletionFullC
Performs full code completion.
Inputs: line (required), column (required), source (required), sourceUrl (required), +2 more.
collectionFeatureDetailsC
Retrieves details for a given collection feature.
Inputs: url (required), connection.
createAtcRunA
STEP 2 of an ATC run. Runs ATC over an object/package and returns an object whose id is the runResultId for atcWorklists. IMPORTANT: variant here must be the worklistId returned by atcCheckVariant — NOT the check variant name.
Inputs: mainUrl (required), variant (required), connection, maxResults.
createObjectC
Create a new ABAP object
Inputs: name (required), objtype (required), parentName (required), parentPath (required), +4 more.
createTestIncludeC
Creates a test include for a class.
Inputs: clas (required), lockHandle (required), transport, connection.
createTransportC
Create a new transport request
Inputs: DEVCLASS (required), REQUEST_TEXT (required), objSourceUrl (required), connection, +1 more.
createTransportsConfigC
Creates transport configurations.
Inputs: connection.
ddicElementC
Retrieves information about a DDIC element.
Inputs: path (required), connection, getExtensionViews, getSecondaryObjects, +1 more.
ddicRepositoryAccessC
Accesses the DDIC repository.
Inputs: path (required), connection.
debuggerAttachC
Attaches the debugger.
Inputs: user (required), debuggeeId (required), debuggingMode (required), connection, +1 more.
debuggerChildVariablesA
Retrieves child variables of a debugger variable.
Inputs: parent, connection.
debuggerDeleteBreakpointsC
Deletes breakpoints.
Inputs: ideId (required), breakpoint (required), terminalId (required), requestUser (required), +3 more.
debuggerDeleteListenerB
Stops a debug listener.
Inputs: user (required), ideId (required), terminalId (required), debuggingMode (required), +1 more.
debuggerGoToStackB
Navigates to a specific stack entry in the debugger.
Inputs: urlOrPosition (required), connection.
debuggerListenD
Listens for debugging events.
Inputs: user (required), ideId (required), terminalId (required), debuggingMode (required), +3 more.
debuggerListenersC
Retrieves a list of debugger listeners.
Inputs: user (required), ideId (required), terminalId (required), debuggingMode (required), +2 more.
debuggerSaveSettingsC
Saves debugger settings.
Inputs: settings (required), connection.
debuggerSetBreakpointsD
Sets breakpoints.
Inputs: user (required), ideId (required), clientId (required), terminalId (required), +7 more.
debuggerSetVariableValueB
Sets the value of a debugger variable.
Inputs: value (required), variableName (required), connection.
debuggerStackTraceC
Retrieves the debugger stack trace.
Inputs: connection, semanticURIs.
debuggerStepC
Performs a debugger step.
Inputs: steptype (required), url, connection.
debuggerVariablesB
Retrieves debugger variables.
Inputs: parents (required), connection.
deleteObjectB
Deletes an ABAP object from the system
Inputs: objectUrl (required), lockHandle (required), transport, connection.
dropSessionA
Clear local session cache (keeps STATEFUL mode so object locks still work).
Inputs: connection.
dumpsC
Retrieves a list of dumps.
Inputs: query, connection.
editObjectSourceA
Edits a (possibly LARGE) ABAP object by sending ONLY the snippet to change — the server does the whole read-modify-write: lock → get source → apply edits → syntax check → set source → (optional) activate → unlock. Nothing is written if an edit does not match uniquely or if the syntax check finds errors. Provide edits as string replacements ({oldString,newString[,replaceAll]}) and/or line replacements ({startLine,endLine,newText}).
Inputs: objectSourceUrl (required), edits, activate, newString, +7 more.
extractMethodEvaluateC
Evaluates an extract method refactoring.
Inputs: uri (required), range (required), connection.
extractMethodExecuteC
Executes an extract method refactoring.
Inputs: refactoring (required), connection.
extractMethodPreviewC
Previews an extract method refactoring.
Inputs: proposal (required), connection.
featureDetailsC
Retrieves details for a given feature.
Inputs: title (required), connection.
feedsB
Retrieves a list of feeds.
Inputs: connection.
findCollectionByUrlC
Finds a collection by its URL.
Inputs: url (required), connection.
findDefinitionD
Find symbol definition
Inputs: url (required), line (required), endCol (required), source (required), +4 more.
findObjectPathC
Find path for an object
Inputs: objectUrl (required), connection.
fixEditsD
Applies fix edits.
Inputs: source (required), proposal (required), connection.
fixProposalsC
Retrieves fix proposals.
Inputs: url (required), line (required), column (required), source (required), +1 more.
fragmentMappingsD
Retrieves fragment mappings.
Inputs: url (required), name (required), type (required), connection.
getObjectSourceA
Reads ABAP source. For LARGE objects do NOT read it whole: use search (grep with line numbers + context) to locate statements, or startLine/endLine to read a window. Without those, a very large source is truncated (head only) with totalLines and a hint. Line numbers in the output are display-only — do not include the "NNN: " prefix in editObjectSource.oldString.
Inputs: objectSourceUrl (required), search, endLine, options, +5 more.
getTransportConfigurationB
Retrieves a specific transport configuration.
Inputs: url (required), connection.
gitCreateRepoC
Creates a new Git repository.
Inputs: repourl (required), packageName (required), user, branch, +3 more.
gitExternalRepoInfoB
Retrieves information about an external Git repository.
Inputs: repourl (required), user, password, connection.
gitPullRepoC
Pulls changes from a Git repository.
Inputs: repoId (required), user, branch, password, +2 more.
gitReposC
Retrieves a list of Git repositories.
Inputs: connection.
gitUnlinkRepoC
Unlinks a Git repository.
Inputs: repoId (required), connection.
hasTransportConfigC
Check if transport configuration exists
Inputs: connection.
healthcheckB
Check server health and connectivity
Inputs: connection.
inactiveObjectsC
Get list of inactive objects
Inputs: connection.
isProposalMessageC
Checks if a given object is a proposal message.
Inputs: proposal (required), connection.
listConnectionsA
List all configured SAP connections (e.g. DEV, QAS) and indicate which one is currently active.
Inputs: no named parameters.
loadTypesC
Loads object types.
Inputs: connection.
lockC
Lock an object
Inputs: objectUrl (required), accessMode, connection.
loginC
Authenticate with ABAP system
Inputs: connection.
logoutC
Terminate ABAP session
Inputs: connection.
mainProgramsC
Retrieves the main programs for a given include.
Inputs: includeUrl (required), connection.
nodeContentsC
Retrieves the contents of a node in the ABAP repository tree.
Inputs: parent_type (required), user_name, connection, parent_name, +3 more.
objectRegistrationInfoC
Get registration information for an ABAP object
Inputs: objectUrl (required), connection.
objectStructureC
Get object structure details
Inputs: objectUrl (required), version, connection.
objectTypesC
Retrieves object types.
Inputs: connection.
packageSearchHelpC
Performs a package search help.
Inputs: type (required), name, connection.
prettyPrinterB
Formats ABAP code using the pretty printer.
Inputs: source (required), connection.
prettyPrinterSettingB
Retrieves the pretty printer settings.
Inputs: connection.
publishServiceBindingC
Publishes a service binding.
Inputs: name (required), version (required), connection.
pushRepoC
Pushes changes to a Git repository.
Inputs: repo (required), staging (required), user, password, +1 more.
reentranceTicketD
Retrieves a reentrance ticket.
Inputs: connection.
remoteRepoInfoC
Retrieves information about a remote Git repository.
Inputs: repo (required), user, password, connection.
renameEvaluateC
Evaluates a rename refactoring.
Inputs: uri (required), line (required), endColumn (required), startColumn (required), +1 more.
renameExecuteC
Executes a rename refactoring.
Inputs: refactoring (required), connection.
renamePreviewC
Previews a rename refactoring.
Inputs: renameRefactoring (required), transport, connection.
resetSessionA
RECOVER a broken write session: rebuilds a fresh STATEFUL ADT session for the active connection and re-logs in. Use this (NOT logout) when a lock/edit fails with "stale lock" or "stateful lost" — logout permanently disables the client, resetSession restores it and releases the prior session's locks.
Inputs: connection.
revisionsC
Retrieves revisions for an object.
Inputs: objectUrl (required), clsInclude, connection.
runAtcCheckA
One-shot ATC check: runs the FULL flow (check variant → run → read worklist) for one object/package and returns COMPACT findings. PREFER THIS over calling atcCheckVariant/createAtcRun/atcWorklists separately — it removes the worklistId/runId chaining mistakes. NOTE: this is a TRANSIENT run with the system default treatment; numbers may legitimately differ from a central/baseline worklist shown in SAP GUI.
Inputs: mainUrl (required), variant, connection, maxResults, +3 more.
runClassD
Runs a class.
Inputs: className (required), connection.
runQueryC
Runs a SQL query on the target system.
Inputs: sqlQuery (required), decode, rowNumber, connection.
searchObjectD
Search for objects
Inputs: query (required), max, objType, connection.
setObjectSourceA
Overwrites the FULL source of an object (requires the entire new source + lockHandle). For targeted changes on large objects prefer editObjectSource.
Inputs: source (required), lockHandle (required), objectSourceUrl (required), transport, +1 more.
setPrettyPrinterSettingC
Sets the pretty printer settings.
Inputs: style (required), indent (required), connection.
setTransportsConfigC
Sets transport configurations.
Inputs: uri (required), etag (required), config (required), connection.
stageRepoC
Stages changes in a Git repository.
Inputs: repo (required), user, password, connection.
switchConnectionA
Switch the active SAP connection. All subsequent tool calls use the selected connection until switched again.
Inputs: connection (required).
switchRepoBranchB
Switches the branch of a Git repository.
Inputs: repo (required), branch (required), user, create, +2 more.
syntaxCheckCdsUrlC
Perform ABAP syntax check with CDS URL
Inputs: cdsUrl (required), connection.
syntaxCheckCodeC
Perform ABAP syntax check with source code
Inputs: code (required), url, mainUrl, version, +2 more.
syntaxCheckTypesC
Retrieves syntax check types.
Inputs: connection.
systemUsersB
Retrieves a list of system users.
Inputs: connection.
tableContentsC
Retrieves the contents of an ABAP table.
Inputs: ddicEntityName (required), decode, sqlQuery, rowNumber, +1 more.
tracesCreateConfigurationB
Creates a trace configuration.
Inputs: config (required), connection.
tracesDbAccessC
Retrieves database access information for a trace.
Inputs: id (required), connection, withSystemEvents.
tracesDeleteB
Deletes a trace.
Inputs: id (required), connection.
tracesDeleteConfigurationC
Deletes a trace configuration.
Inputs: id (required), connection.
tracesHitListC
Retrieves the hit list for a trace.
Inputs: id (required), connection, withSystemEvents.
tracesListC
Retrieves a list of traces.
Inputs: user, connection.
tracesListRequestsC
Retrieves a list of trace requests.
Inputs: user, connection.
tracesSetParametersC
Sets trace parameters.
Inputs: parameters (required), connection.
tracesStatementsC
Retrieves statements for a trace.
Inputs: id (required), options, connection.
transportAddUserC
Adds a user to a transport.
Inputs: user (required), transportNumber (required), connection.
transportConfigurationsC
Retrieves transport configurations.
Inputs: connection.
transportDeleteC
Deletes a transport.
Inputs: transportNumber (required), connection.
transportInfoC
Get transport information for an object source
Inputs: objSourceUrl (required), devClass, operation, connection.
transportReferenceC
Retrieves a transport reference.
Inputs: pgmid (required), obj_name (required), obj_wbtype (required), tr_number, +1 more.
transportReleaseD
Releases a transport.
Inputs: transportNumber (required), IgnoreATC, connection, ignoreLocks.
transportsByConfigC
Retrieves transports by configuration.
Inputs: configUri (required), targets, connection.
transportSetOwnerC
Sets the owner of a transport.
Inputs: targetuser (required), transportNumber (required), connection.
unitTestEvaluationC
Evaluates unit test results.
Inputs: clas (required), flags, connection.
unitTestOccurrenceMarkersC
Retrieves unit test occurrence markers.
Inputs: url (required), source (required), connection.
unitTestRunC
Runs unit tests.
Inputs: url (required), flags, connection.
unLockC
Unlock an object
Inputs: objectUrl (required), lockHandle (required), connection.
unPublishServiceBindingB
Unpublishes a service binding.
Inputs: name (required), version (required), connection.
usageReferencesC
Find symbol references
Inputs: url (required), line, column, connection.
usageReferenceSnippetsC
Retrieves usage reference snippets.
Inputs: references (required), connection.
userTransportsC
Retrieves transports for a user.
Inputs: user (required), targets, connection.
validateNewObjectC
Validate parameters for a new ABAP object
Inputs: options (required), connection.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 133 tools
Most tools have distinct purposes with clear descriptions, but overlapping exists among similar workflows (e.g., multiple ATC run methods) and some tools could be confused without careful reading.
All names use camelCase, but patterns vary: some start with a verb (activateByName), others with a noun (abapDocumentation). Inconsistent verb usage and typos (compatibiliyGraph) reduce consistency.
133 tools is excessive for a typical MCP server. While ADT covers many facets, this many tools likely causes clutter and cognitive load for agents, far beyond the recommended 3-15 range.
The tool set covers a comprehensive range of ABAP development tasks including ATC, debugging, transport, git, refactoring, and object lifecycle. Minor gaps may exist but are difficult to identify given the breadth.
Maintenance
Related MCP Connectors
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Manage repositories, users, releases, and automate GitHub workflows
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with SAP ABAP systems through ABAP Development Tools (ADT), providing access to repository objects, source code, where-used analysis, and SQL queries with support for both on-premise and BTP systems.3-
- FlicenseNot gradedqualityCmaintenanceEnables SAP ABAP development workflows including ADT login, object search, read, create, update, activate, delete, and OData service publishing.1-
- AlicenseCqualityDmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100197 npmMIT
- AlicenseCqualityDmaintenanceEnables interaction with SAP ABAP systems via ADT APIs, allowing management of ABAP objects, transport requests, and code analysis through MCP clients.100197 npmMIT