abap-adt-mcp

MCPattested
v1.0.1Willian SaezMITUpdated 3d agonpmGitHub

ABAP development from Claude and other MCP hosts: read and write source, transports, unit tests, ATC, dumps, debugger. Multi-system, with server-side guard rails.

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
342Downloads/wk
2GitHub stars
1Forks
3d agoLast update
Reads these credentials
  • SAP_SYSTEMSAPI keyoptional

    Inline JSON map of destinations (same shape as SAP_SYSTEMS_FILE). Contains credentials — prefer SAP_SYSTEMS_FILE

  • MCP_HTTP_TOKENAPI keyoptional

    Bearer token for the HTTP transport; auto-generated and written to ~/.abap-adt-mcp/http-token when unset

  • SAP_PASSWORDAPI keyoptional

    Legacy single-system mode: SAP password

  • SAP_OAUTH_CLIENT_SECRETOAuth appoptional

    Legacy single-system mode with SAP_AUTH_TYPE=oauth: OAuth2 client secret

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorWillian Saez
LicenseMIT
Version1.0.1
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
Listed in Forge index+10/10
Identity verified · attested build+20/20
Ed25519 publish signature+0/5
Included automatically when the publisher runs `forge publish`
Domain verification+0/5
Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
npm Trusted Publishing (Sigstore)+5/5
npm maintainer match+0/5
Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
CVE scan · clean+30/30
Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain
Provenance✓ Sigstore-verified · de9c009
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · none privileged
Security scan✓ Cleanv1.0.1 · todayHow well does this scan work?
EvalsNone
IndexedSep 7, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · none privileged
Statically extracted from the published packagev1.0.1 · 2h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

atcCustomizingRetrieves ATC customizing information.

Retrieves ATC customizing information.

No input schema was published for this tool.

atcQuickfixProposalsList 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.

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.

No input schema was published for this tool.

atcApplyQuickfixApply 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 r…

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 r…

No input schema was published for this tool.

atcCheckVariantRetrieves information about an ATC check variant.

Retrieves information about an ATC check variant.

No input schema was published for this tool.

atcSummaryAggregated 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/zfi…

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/zfi…

No input schema was published for this tool.

createAtcRunCreates 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.

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.

No input schema was published for this tool.

atcWorklistsRetrieves 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.

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.

No input schema was published for this tool.

atcUsersRetrieves a list of ATC users.

Retrieves a list of ATC users.

No input schema was published for this tool.

atcExemptProposalRetrieves an ATC exemption proposal.

Retrieves an ATC exemption proposal.

No input schema was published for this tool.

atcRequestExemptionRequests an ATC exemption.

Requests an ATC exemption.

No input schema was published for this tool.

isProposalMessageChecks if a given object is a proposal message.

Checks if a given object is a proposal message.

No input schema was published for this tool.

atcContactUriRetrieves the contact URI for an ATC finding.

Retrieves the contact URI for an ATC finding.

No input schema was published for this tool.

atcChangeContactChanges the contact for an ATC finding.

Changes the contact for an ATC finding.

No input schema was published for this tool.

atcDocumentationRead 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).

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).

No input schema was published for this tool.

loginAuthenticate with ABAP system

Authenticate with ABAP system

No input schema was published for this tool.

logoutTerminate ABAP session

Terminate ABAP session

No input schema was published for this tool.

dropSessionClear local session cache

Clear local session cache

No input schema was published for this tool.

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

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

No input schema was published for this tool.

classComponentsList 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.

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.

No input schema was published for this tool.

apiReleaseStateRelease 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 recallin…

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 recallin…

No input schema was published for this tool.

syntaxCheckCodeABAP 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 t…

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 t…

No input schema was published for this tool.

syntaxCheckCdsUrlPerform ABAP syntax check with CDS URL

Perform ABAP syntax check with CDS URL

No input schema was published for this tool.

codeCompletionGet code completion suggestions

Get code completion suggestions

No input schema was published for this tool.

findDefinitionFind symbol definition

Find symbol definition

No input schema was published for this tool.

usageReferencesFind 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.

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.

No input schema was published for this tool.

syntaxCheckTypesRetrieves syntax check types.

Retrieves syntax check types.

No input schema was published for this tool.

codeCompletionFullPerforms full code completion.

Performs full code completion.

No input schema was published for this tool.

runClassRuns a class.

Runs a class.

No input schema was published for this tool.

codeCompletionElementRetrieves code completion element information.

Retrieves code completion element information.

No input schema was published for this tool.

usageReferenceSnippetsRetrieves 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.

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.

No input schema was published for this tool.

fixProposalsRetrieves fix proposals.

Retrieves fix proposals.

No input schema was published for this tool.

fixEditsApplies fix edits.

Applies fix edits.

No input schema was published for this tool.

fragmentMappingsRetrieves fragment mappings.

Retrieves fragment mappings.

No input schema was published for this tool.

abapDocumentationABAP 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),…

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),…

No input schema was published for this tool.

annotationDefinitionsRetrieves 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.

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.

No input schema was published for this tool.

ddicElementRetrieves 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.

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.

No input schema was published for this tool.

ddicRepositoryAccessAccesses 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.

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.

No input schema was published for this tool.

packageSearchHelpPerforms a package search help.

Performs a package search help.

No input schema was published for this tool.

getDomainPropertiesRead 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.

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.

No input schema was published for this tool.

setDomainPropertiesWrite 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.

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.

No input schema was published for this tool.

40 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

ABAP development from Claude and other MCP hosts: read and write source, transports, unit tests, ATC, dumps, debugger. Multi-system, with server-side guard rails.

Keywords
abapsapadtabap-adt-apimcpmodel-context-protocol
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-09-07 — observed resolution, not a publisher declaration.

60 packages resolved · 6 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

67 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+55 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies, optionalDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.