{"ref":"artifact:arc-mcp-adt-ls","page":"/artifacts/arc-mcp-adt-ls","json":"/artifacts/arc-mcp-adt-ls.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"arc-mcp-adt-ls","name":"@arc-mcp/adt-ls","artifact_type":"package","ecosystem":"abap","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"A TypeScript SDK over adt-ls, the headless language server SAP ships inside [ABAP Development Tools for VS Code](artifact:sap-adt-vscode), so a program drives it without the discovery, JVM and handshake work.","short":"TypeScript SDK over SAP's headless adt-ls language server","what_it_solves":"SAP's `adt-lsc` runs inside the `sapse.adt-vscode` extension and speaks LSP over a named pipe, and reaching it means discovery, a JVM, the handshake, the reentrance logon and TLS before a single object is read. `createAdtLs()` does that and returns one namespaced client: `repository` for object search and file access, `source` and `lifecycle` for create, update, activate, unit tests and delete, `navigation` for hover, completion, references and pretty-printer formatting, `quality` for ATC and ABAP Unit coverage, `services` and `transport`, and `raw` for any adt-ls call it does not wrap. The credential is a strategy the caller passes: `basic` for an on-premise fixed user, `bearer` for BTP ABAP, an `interactive` sign-in the consumer opens itself, or `clientCert` for X.509 mutual TLS. Its scope section draws the line at adt-ls alone, with no direct ADT HTTP, no MCP server and no Cloud Connector bridge inside the library, which is the layer [arc-1-lsp](artifact:arc-mcp-arc-1-lsp) and `abapify/openadt` keep for themselves; the README names both as the first-party duplication the library was written to end. The runtime is not shipped with it, because adt-ls comes under the SAP Developer License and is not redistributable.","when_not_to_use":"What adt-ls cannot do headless the maintainer puts out of scope, so a consumer that needs an ADT call the language server does not expose is back to speaking ADT itself. The README states the current runtime compatibility as verified on macOS arm64, against adt-ls 1.1.2 as the minimum and `1.1.2.202608131517` as the version tested. An Eclipse installation does not supply that runtime: SAP versions the two separately, so the VS Code extension has to be installed even where nobody opens VS Code."},"links":{"repo":"https://github.com/arc-mcp/adt-ls","npm":"https://www.npmjs.com/package/@arc-mcp/adt-ls","docs":"https://arc-mcp.github.io/adt-ls/"},"identity":{"license":"Apache-2.0"},"source_available":true,"provides":[{"capability":"capability:editor-support","what_it_does":"Wraps SAP's own headless language server as a TypeScript client, so an editor, a CI job or a server outside Eclipse reaches ADT navigation, syntax check, activation, ATC and transports without reimplementing the startup and logon plumbing.","sources":[{"url":"https://raw.githubusercontent.com/arc-mcp/adt-ls/main/README.md","title":"arc-mcp/adt-ls — README","checked":"2026-09-20","quote":"Generic, reusable TypeScript SDK over SAP's headless **adt-ls**"},{"url":"https://raw.githubusercontent.com/arc-mcp/adt-ls/main/README.md","title":"arc-mcp/adt-ls — README","checked":"2026-09-20","quote":"**`quality`** — ATC static analysis + ABAP Unit code coverage."},{"url":"https://raw.githubusercontent.com/arc-mcp/adt-ls/main/README.md","title":"arc-mcp/adt-ls — README","checked":"2026-09-20","quote":"**`navigation`** — document symbols, definition/declaration, references, type hierarchy, hover, completion"}]}],"requires":[{"ref":"artifact:sap-adt-vscode","requirement":"required","for":"the `sapse.adt-vscode` extension, which ships the `adt-lsc` runtime the library discovers and starts; it is licensed to the installer rather than redistributed with the package","sources":[{"url":"https://raw.githubusercontent.com/arc-mcp/adt-ls/main/README.md","title":"arc-mcp/adt-ls — README","checked":"2026-09-20","quote":"You **bring adt-ls** (SAP Developer License — not redistributable): install the `sapse.adt-vscode` extension"},{"url":"https://raw.githubusercontent.com/arc-mcp/adt-ls/main/README.md","title":"arc-mcp/adt-ls — README","checked":"2026-09-20","quote":"language server shipped inside the official `sapse.adt-vscode` extension."}]}],"maintainers":["actor:arc-mcp","actor:marianfoo"],"compat":{"runtimes":["node"]},"type_properties":{"placement":{"value":"own-process","sources":[{"url":"https://github.com/arc-mcp/adt-ls","title":"@arc-mcp/adt-ls — README","checked":"2026-10-18","quote":"Generic, reusable TypeScript SDK over SAP's headless **adt-ls** — the `adt-lsc` language server shipped inside the official `sapse.adt-vscode` extension."}]},"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/arc-mcp/adt-ls","title":"@arc-mcp/adt-ls — README","checked":"2026-10-18","quote":"npm install @arc-mcp/adt-ls"}]}},"provenance":{"discovered_via":[{"source":"source:github","channel":"arc-mcp"}],"first_seen":"2026-09-18"},"drafted_with_ai":true,"contributors":["actor:marianfoo"],"connects":[{"ref":"artifact:btp-abap-environment","kind":"authentication","for":"authenticating headlessly to an SAP BTP ABAP environment (Steampunk) backend with an OAuth bearer token","protocols":["oauth2"],"direction":"outbound","sources":[{"url":"https://github.com/arc-mcp/adt-ls","title":"adt-ls README","checked":"2026-10-18","quote":"headless OAuth bearer (BTP ABAP / Steampunk)."}]},{"ref":"external:sap-s4hana","kind":"data","for":"running the full ABAP authoring lifecycle through createAdtLs() against a real S/4HANA system","direction":"outbound","sources":[{"url":"https://github.com/arc-mcp/adt-ls","title":"adt-ls README","checked":"2026-10-18","quote":"against a real S/4HANA system"}]}]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"1 month since release"},{"label":"Continuity","tier":"good","evidence":"3 contributors, 1 publisher, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"CI green, 2026-10-01"}],"practice":[{"label":"Tests","tier":"good","evidence":"34 test files, npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 89 pages, docs site, README 10 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":52,"unit":"installs/week"},{"value":8,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","latest_version":"0.7.0","majors":{"0.5":{"version":"0.5.0","date":"2026-06-17"},"0.6":{"version":"0.6.1","date":"2026-09-23"},"0.7":{"version":"0.7.0","date":"2026-10-01"}},"license":"Apache-2.0","first_release":"2026-06-17","last_release":"2026-10-01","releases":3,"cadence_days":98,"maintainers":1,"repository":"git+https://github.com/arc-mcp/adt-ls.git","repository_directory":null,"peer_cds":null,"dependencies":1,"node_engine":">=20","test_script":true,"types":true,"downloads_weekly":52,"downloads_monthly":477,"stars":8,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-10-01","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2026-06-08T07:30:31Z","open_prs":0,"tree_truncated":false,"test_files":34,"workflows":3,"other_ci":false,"readme_bytes":10054,"docs_files":89,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-06-08","last_commit":"2026-10-01","commits":66,"contributors":3,"ci_status":"success","ci_run_at":"2026-10-01","ci_workflow":"CI","ci_event":"push","readme_path":"README.md","readme_sha":"725da55086691f8d15a6a8c81d0e586fd62a9607","months_since_release":1,"dormant":false,"repo_read":"2026-10-24"},"release_notes":{"license":"Apache-2.0","quotable":true,"source":{"kind":"repo","path":"CHANGELOG.md","ref":"main","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md"},"format":"conventional","releases":[{"version":"0.7.0","date":"2026-10-01","date_source":"heading","heading":"0.7.0 (2026-10-01)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#070-2026-10-01","sections":[{"kind":"feature","heading":"Features","items":3},{"kind":"fix","heading":"Bug Fixes","items":4}],"hash":"dd8c7ae7d1b20179"},{"version":"0.6.1","date":"2026-09-23","date_source":"heading","heading":"0.6.1 (2026-09-23)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#061-2026-09-23","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"d923097fb8b1999f"},{"version":"0.6.0","date":"2026-09-23","date_source":"heading","heading":"0.6.0 (2026-09-23)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#060-2026-09-23","sections":[{"kind":"feature","heading":"Features","items":1},{"kind":"fix","heading":"Bug Fixes","items":5}],"hash":"58b958fdb4bc9f6e"},{"version":"0.5.0","date":"2026-06-12","date_source":"heading","heading":"0.5.0 (2026-06-12)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#050-2026-06-12","sections":[{"kind":"feature","heading":"Features","items":1}],"hash":"093fe5f35710291b"},{"version":"0.4.2","date":"2026-06-12","date_source":"heading","heading":"0.4.2 (2026-06-12)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#042-2026-06-12","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"bf9b5898be151b63"},{"version":"0.4.1","date":"2026-06-11","date_source":"heading","heading":"0.4.1 (2026-06-11)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#041-2026-06-11","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"8e2f6005153d9db3"},{"version":"0.4.0","date":"2026-06-08","date_source":"heading","heading":"0.4.0 (2026-06-08)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#040-2026-06-08","sections":[{"kind":"feature","heading":"Features","items":3},{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"b910cb53a5c49726"},{"version":"0.3.0","date":"2026-06-08","date_source":"heading","heading":"0.3.0 (2026-06-08)","url":"https://github.com/arc-mcp/adt-ls/blob/main/CHANGELOG.md#030-2026-06-08","sections":[{"kind":"feature","heading":"Features","items":1}],"hash":"2d5d910e7e6ac183"}],"versions":[{"version":"0.7.0","date":"2026-10-01"},{"version":"0.6.1","date":"2026-09-23"},{"version":"0.5.0","date":"2026-06-17"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:arc-mcp","name":"ARC MCP","json":"/actors/arc-mcp.json"},{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"contributors":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}