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
Available components
Last scanned (12 hours ago)
Scores higher than 51% of npm servers
Category Developer Tools
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
Checks we ran (16)
- Malware scan
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
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
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 →
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 →
GetUnitTestResult ~115
[read-only] Reads the result of the ABAP Unit test run named by run_id, for a run still running when its start answered. Waits for it within a bound. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 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). |
| run_id | string | yes | Run id a unit test run answered. |
No output schema declared.
No examples provided.
GetWhereUsed ~881
[read-only] Lists where the object named by object_name and object_type is used — a class, interface, program, include, function group, function module (BAPI included), package, table, structure, domain, data element or CDS DDL source: every object that uses, calls or references it, with its type and package. Takes object_name and object_type (one object: its list) or objects (several objects: one entry per object, in the order given, each its list 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. When enable_all_types is any value but true and enable_only_types is absent and disable_types is absent and objects is absent, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| disable_types | array | – | Remove these ADT object types from the default scope, keeping the rest (e.g. ['CLAS/OC'] to drop class usages). Applied on top of the default scope or of enable_only_types/enable_all_types. |
| enable_all_types | boolean | – | If true, expands the scope to all available object types (Eclipse 'select all' behavior) by flipping every isSelected flag in the scope XML. Default: false (SAP default scope). Note: on large systems… |
| enable_only_types | array | – | Restrict the search to ONLY these ADT object types (e.g. ['TABL/DS','TABL/DT'] for structures, ['DDLS/DF'] for CDS sources). SAP applies the selection server-side, so unwanted types (e.g. hundreds of… |
| object_name | string | – | Name of the ABAP object (with object_type; or give objects). For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name). |
| object_type | string | – | Type of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function… |
| objects | array | – | Several objects, read together (give this or object_name and object_type). The type filters apply to every object. |
| timeout | integer | – | 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.
ListFunctionGroupIncludes ~46
[read-only] List the includes (TOP, custom) of an ABAP function group. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | yes | Function group name. |
No output schema declared.
No examples provided.
ListFunctionModules ~41
[read-only] List the function modules of an ABAP function group. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| function_group_name | string | yes | Function group name. |
No output schema declared.
No examples provided.
ListLeftoverSessions ~155
[read-only] [session] Lists the SAP sessions of this server's destination that an ended server process left open (it was killed before it could log them off), with the locks they may hold: handle, role (built: an instance connection; debugger: a debug session connection), destination, user (absent for a token login) and when it was last recorded. Read from the session records alone, on this machine. Only sessions of ended processes are listed. Log one off by its handle. A server process that starts while exactly one instance session (built) of its destination is left is born on it, before any tool call; with several, all stay here, untaken. Runs outside batch mode.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ListTransports ~362
[read-only] List transport requests for the current or specified user. Returns modifiable and/or released workbench and customizing requests. `user` and modifiable-only are both applied client-side, over every request the server's default search configuration answers; ADT receives the default search alone. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 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). |
| modifiable_only | boolean | – | Only return modifiable (not yet released) transports; applied client-side. Default: true. |
| timeout | integer | – | 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… |
| user | string | – | The user to filter to: an SAP user id (matched in upper case); applied client-side. If not provided, defaults to the current session user, so an unfiltered call already answers only that user's trans… |
No output schema declared.
No examples provided.
LogoffLeftoverSession ~84
[read-only] [session] Logs off a leftover SAP session (any role): the session ends, and every lock it holds is released. Only the logoff is sent, credential-free. The session record is deleted afterwards. Runs outside batch mode.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The handle of a leftover session, as the list of leftover sessions answers it. |
No output schema declared.
No examples provided.
ReadTransportActionLog ~180
[read-only] Reads the action log of the transport request named by transport_number: one entry per lifecycle event — created, object added, object deleted, owner changed. It confirms that an object entry was taken out of the request, since a removal answers by echoing what it was asked. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 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). |
| transport_number | string | yes | Transport REQUEST or TASK number. A request answers its own lifecycle events; a task answers the events of the objects on it. |
No output schema declared.
No examples provided.
ReadTransportObjects ~198
[read-only] Lists the objects the transport request or task named by transport_number holds, each with its `position`, which a removal of the entry names. A task answers its own entries; a request answers every task's entries, each once, with its `task` number and position — the task a removal addresses. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 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). |
| transport_number | string | yes | Transport REQUEST or TASK number. A task answers its own entries; a request answers the entries of each of its tasks, each with its `task` number — the task a removal addresses. |
No output schema declared.
No examples provided.
RuntimeAnalyzeProfilerTrace ~285
[read-only] [runtime] Read profiler trace view and return compact analysis summary (totals + top entries). 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.
| Name | Type | Req | Description |
|---|---|---|---|
| timeout | integer | – | 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… |
| top | number | – | Number of top rows for summary. Default: 10. |
| trace_id_or_uri | string | yes | Profiler trace ID or full trace URI. |
| view | string | – | – |
| with_system_events | boolean | – | Include system events. |
No output schema declared.
No examples provided.
RuntimeCreateProfilerTraceParameters ~208
[read-only] [runtime] Schedule ABAP profiler trace parameters and return profilerId (the request id) for profiled execution. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate | boolean | – | – |
| all_db_events | boolean | – | – |
| all_dynpro_events | boolean | – | – |
| all_internal_table_events | boolean | – | – |
| all_misc_abap_statements | boolean | – | – |
| all_procedural_units | boolean | – | – |
| all_system_kernel_events | boolean | – | – |
| amdp_trace | boolean | – | – |
| description | string | yes | Human-readable trace description. |
| explicit_on_off | boolean | – | – |
| max_size_for_trace_file | number | – | – |
| max_time_for_tracing | number | – | – |
| sql_trace | boolean | – | – |
| with_rfc_tracing | boolean | – | – |
No output schema declared.
No examples provided.
RuntimeGetDumpById ~181
[read-only] [runtime] Read an ABAP runtime dump by its dump_id or URI. Answers a summary — runtime error, exception, terminated program, time, user, and the source position where it terminated — and the parsed dump. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dump_id | string | yes | The dump's id, or its URI as a dumps feed entry carries it. |
| response_mode | string | – | What is returned: "payload" — the parsed dump, "summary" — runtime error, exception, terminated program, time, user and termination position, "both" — summary and payload. |
| view | string | – | Dump view mode: default payload, summary section, or formatted long text. |
No output schema declared.
No examples provided.
RuntimeGetGatewayErrorLog ~201
[read-only] [runtime] List SAP Gateway error log (/IWFND/ERROR_LOG) or get error detail. Returns structured entries with type, shortText, transactionId, dateTime, username. With error_url returns full detail including serviceInfo, errorContext, sourceCode, callStack. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| error_url | string | – | Feed URL of a specific error entry (from a previous list response link field). When provided, returns detailed error info instead of listing. |
| from | string | – | Start of time range in YYYYMMDDHHMMSS format. |
| max_results | number | – | Maximum number of errors to return. |
| to | string | – | End of time range in YYYYMMDDHHMMSS format. |
| user | string | – | Filter errors by SAP username. |
No output schema declared.
No examples provided.
RuntimeGetProfilerTraceData ~330
[read-only] [runtime] Read profiler trace data by trace id/uri: hitlist, statements, or db accesses. Returns parsed JSON payload. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_drill_down_threshold | number | – | Auto drill-down threshold (for statements view). |
| id | number | – | Statement node ID (for statements view). |
| timeout | integer | – | 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… |
| trace_id_or_uri | string | yes | Profiler trace ID or full ADT trace URI. |
| view | string | yes | Trace view to retrieve. |
| with_details | boolean | – | Include statement details (for statements view). |
| with_system_events | boolean | – | Include system events. |
No output schema declared.
No examples provided.
RuntimeListFeeds ~708
[read-only] [runtime] Reads the ADT runtime feed named by feed_type: with feed_type "dumps", the ABAP short dumps (runtime errors) of the program or object named by object_name, of the user named by user, in the time range from–to, filtered also by runtime error, exception, package and application component; with "system_messages" or "gateway_errors", the system messages or SAP Gateway errors of the user and time range; with "descriptors" (the default) or "variants", the feeds and their variants. Entries come newest first; each dump carries its dump_id. When more entries remain, next_to is the `to` that reads on; incomplete_second names a second holding more entries than SAP answers in one request. Takes feed_type (one feed: its answer) or feed_types (several feeds with the same filters: one entry per feed, in the order given, each its answer or { feed_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. When feed_type is one of descriptors, variants (absent reads as descriptors) and feed_types is absent, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| component | string | – | Dumps whose application component contains this text, in any case. |
| exception | string | – | Dumps whose exception class contains this text, in any case. |
| feed_type | string | – | Feed to read. "descriptors" lists available feeds, "variants" lists feed variants, others read that specific feed. Default: descriptors. |
| feed_types | array | – | Several feeds, read together with the same filters (give this or feed_type). |
| from | string | – | Start of time range in YYYYMMDDHHMMSS format. |
| max_results | number | – | Most entries to return, up to 1000; SAP answers at most 100 per request and the pages are read in turn. An answer holds whole seconds, so it may hold a few entries fewer, or a crowded second more, th… |
| object_name | string | – | Dumps whose terminated object name contains this text, in any case. |
| package | string | – | Dumps whose object package contains this text, in any case. |
| runtime_error | string | – | Dumps whose runtime error contains this text, in any case. |
| timeout | integer | – | 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… |
| to | string | – | End of time range in YYYYMMDDHHMMSS format, inclusive; pass a previous next_to here to read on. |
| user | string | – | Entries of this SAP user (exact match). |
No output schema declared.
No examples provided.
RuntimeListProfilerTraceFiles ~86
[read-only] [runtime] List ABAP profiler trace files available in ADT runtime. Returns structured entries with id, recordedAt, user, objectName, state, expiresAt, and sizing/timing fields. 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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
RuntimeListSystemMessages ~135
[read-only] [runtime] List SM02 system messages. Returns structured entries with id, title, text, severity, validity period, and author. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Start of time range in YYYYMMDDHHMMSS format. |
| max_results | number | – | Maximum number of messages to return. |
| to | string | – | End of time range in YYYYMMDDHHMMSS format. |
| user | string | – | Filter by author username. |
No output schema declared.
No examples provided.
RuntimeRunClass ~458
[read-only] [runtime] Runs the ABAP class named by class_name, which implements if_oo_adt_classrun, and returns its console output. Set profile=true to also capture a profiler trace: schedules the trace, runs the class under it, then searches the profiler feed for the id this run produced (bounded by max_trace_attempts/trace_retry_delay_ms). If the trace appears only after that bound, the run still answers success with output and profiler_id, trace_id absent — the trace is then found later in the list of profiler trace files. When profile 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.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate | boolean | – | – |
| all_db_events | boolean | – | – |
| all_dynpro_events | boolean | – | – |
| all_internal_table_events | boolean | – | – |
| all_misc_abap_statements | boolean | – | – |
| all_procedural_units | boolean | – | – |
| all_system_kernel_events | boolean | – | – |
| amdp_trace | boolean | – | – |
| class_name | string | yes | ABAP class name to execute. |
| description | string | – | Profiler trace description (only used when profile=true). |
| explicit_on_off | boolean | – | – |
| max_size_for_trace_file | number | – | – |
| max_time_for_tracing | number | – | – |
| max_trace_attempts | integer | – | Max attempts to poll the profiler feed for the trace this run produced (default 5). Only used when profile=true. |
| profile | boolean | – | When true, run with the profiler and search the profiler feed for the resulting traceId. Default false. |
| sql_trace | boolean | – | – |
| trace_lookup_uris | array | – | Accepted for backward compatibility; no longer affects trace lookup. adt-clients 19 lists the profiler feed as one endpoint, optionally filtered by user — there is nowhere to put a URI. |
| trace_retry_delay_ms | integer | – | Delay in ms between profiler-feed polling attempts (default 2000). Only used when profile=true. |
| with_rfc_tracing | boolean | – | – |
No output schema declared.
No examples provided.
RuntimeRunProgram ~312
[read-only] [runtime] Runs the ABAP program (report) named by program_name and returns its output. Set profile=true to also start a profiler trace; the trace is then found in the list of profiler trace files (program execution is fire-and-forget, so the traceId arrives later, through that list). When profile 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.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate | boolean | – | – |
| all_db_events | boolean | – | – |
| all_dynpro_events | boolean | – | – |
| all_internal_table_events | boolean | – | – |
| all_misc_abap_statements | boolean | – | – |
| all_procedural_units | boolean | – | – |
| all_system_kernel_events | boolean | – | – |
| amdp_trace | boolean | – | – |
| description | string | – | Profiler trace description (only used when profile=true). |
| explicit_on_off | boolean | – | – |
| max_size_for_trace_file | number | – | – |
| max_time_for_tracing | number | – | – |
| profile | boolean | – | When true, run with the profiler. Default false. Trace must be located afterwards via RuntimeListProfilerTraceFiles — program execution does not return traceId synchronously. |
| program_name | string | yes | ABAP program name to execute. |
| sql_trace | boolean | – | – |
| with_rfc_tracing | boolean | – | – |
No output schema declared.
No examples provided.
SearchObject ~424
[read-only] Search ABAP repository by object name or wildcard pattern (e.g. 'Z*'). Answers: "find object X", "does X exist", "list objects matching...", "search for program/class/table by name". Supports all repository object types — optionally filter by type (PROG, CLAS, INTF, DEVC, TABL, DDLS, DTEL, FUGR, SRVD, SRVB, BDEF, DDLX, 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. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 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). |
| maxResults | number | – | [read-only] Maximum number of results to return |
| object_name | string | yes | [read-only] Object name or mask (e.g. 'MARA*') |
| object_type | string | – | [read-only] Optional ABAP object type (e.g. 'TABL', 'CLAS/OC') |
| timeout | integer | – | 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.
SearchSource ~1,082
[read-only] Search ABAP source text inside one or more packages (programs, function groups, classes). `packages` accepts `*` masks (Z*, /NS/Z*) alongside exact names; mask resolution is best-effort and scoped to the ADT repository-search result window — some matching packages may be left unscanned. For certainty, pass concrete package names. When using masks, narrow the mask itself and use `object_types`, `object_filter`, and `max_objects` as scan-target controls that apply after package resolution. Comments are searched by default; set exclude_comments=true to drop col-1 `*` and full-line `"` comments. The `version` parameter affects PROG and CLAS main include reads only — FUGR subinclude reads always go against the active version (the include endpoint reads the active version alone). `truncated.by_object_cap` means at least one object had MORE hits than `max_hits_per_object`, so that object's hits were capped. The object-count limit is `max_objects` (which sets `truncated.by_max_objects`). To avoid `by_object_cap`, raise `max_hits_per_object`. The scan is read in ADT batch envelopes: the searches of the package masks, each level of the package walk, then the sources of the scanned objects in envelopes of at most 300 reads (main sources and function group structures, then function group includes and function modules); `time_budget_ms` is checked before every envelope, and a scan it stops answers whole objects. Run only ONE SearchSource per destination at a time — multiple parallel SearchSource calls against the same SAP system saturate the scan backend and can make all of them time out. Prefer combining terms into a single call over parallel calls. A scan that stops before its last target answers `next_start_at`; pass it as `start_at` to go on. When `next_start_at` equals `start_at`, `time_budget_ms` passed before the first object was answered: raise `time_budget_ms` or lower `max_objects`. The answer carries `total_targets`, the scan targets of the walk; it is ab…
| Name | Type | Req | Description |
|---|---|---|---|
| emit_no_hits | boolean | – | When true, list zero-hit targets in a separate no_hits array. Default false. |
| exclude | array | – | Up to 3 substrings; a line containing any of them is dropped. |
| exclude_comments | boolean | – | Skip col-1 '*' and full-line '"' comment lines. Default false (comments are scanned). |
| include_subpackages | boolean | – | Recurse into subpackages (default true). |
| max_hits_per_object | integer | – | Cap hits per root object across its source units (default 100). When exceeded, truncated.by_object_cap=true is set. Raise this value if you need more hits per object. |
| max_objects | integer | – | Cap the total objects scanned across all packages (default 500). Setting truncated.by_max_objects=true when exceeded. |
| object_filter | string | – | Glob applied to object names within each package (e.g. "Z*"). |
| object_types | array | – | Subset of object families to scan (default: all three). |
| packages | array | yes | Packages to scan. Each entry is either an exact dev-class name or a `*` mask, where `*` stands for any characters and a namespace prefix may lead it. |
| query | string | yes | Primary substring to match (case-insensitive, ABAP CS). |
| query2 | string | – | Optional second substring. When set, both query and query2 must appear on the same line. |
| start_at | integer | – | Index of the first scan target to read, from `next_start_at` of the previous answer; 0 by default. |
| time_budget_ms | integer | – | Internal scan deadline in ms. When exceeded, returns the hits of the objects before `next_start_at` with truncated.by_timeout=true and next_start_at; when next_start_at equals start_at, the deadline… |
| timeout | integer | – | 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… |
| version | string | – | Source version for PROG and CLAS main include reads. Default active. FUGR subincludes always read the active version. |
No output schema declared.
No examples provided.
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
claude mcp add fr0ster-mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-ro
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.
What did VerifyMCP test on the io.github.fr0ster/mcp-abap-adt-ro server?
VerifyMCP ran 16 checks on io.github.fr0ster/mcp-abap-adt-ro, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.