Skip to content
Agentmart
Submit a tool

abap2UI5

abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system

Connector by abap2UI5 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 1
Write a review

Chalk Labs

Need help deploying abap2UI5?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/abap2ui5-mcp-server

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
13 read · 9 write · 1 delete · 8 not yet classified
Secrets
3 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 31

Read from the source code; the running server may list different tools.

Read 13 · Look things up without changing anything.

  • app_describe
  • app_guide
  • app_list
  • capabilities
  • docs_search
  • examples
  • read_app
  • read_example
  • screenshot_view
  • setup_status
  • system_status
  • validate_view
Show 1 more tools
  • verify_app

Write 9 · Create, change, send or run things.

  • add_agent_setup
  • app_start
  • backend
  • build_backend
  • build_log
  • deploy_app
  • migrate_report
  • run_app
  • run_unit_tests

Delete 1 · Delete, drop, revoke or wipe things.

  • remove_app

Not yet classified 8 · We could not tell from the name and description.

  • api_reference
  • app_act
  • fix_view
  • generation_rules
  • interact_app
  • pitfalls
  • scaffold_app
  • scope_of

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • A2UI5_MCP_SYSTEM_PASSWORD
  • A2UI5_MCP_SYSTEM_PASSWORD_CMD
  • GITHUB_TOKEN

Other settings (environment variables or headers).

  • A2UI5_HOME
  • A2UI5_MCP_APP_FORMAT
  • A2UI5_MCP_BACKEND
  • A2UI5_MCP_BUILD_TIMEOUT_MS
  • A2UI5_MCP_CHROMIUM
  • A2UI5_MCP_LINT_IDLE_MS
  • A2UI5_MCP_LINT_TIMEOUT_MS
  • A2UI5_MCP_LINT_WORKER
  • A2UI5_MCP_OFFLINE
  • A2UI5_MCP_PORT
  • A2UI5_MCP_PREBUILT_URL
  • A2UI5_MCP_REMOTE
Show 22 more settings
  • A2UI5_MCP_REMOTE_DIR
  • A2UI5_MCP_REMOTE_TTL_MS
  • A2UI5_MCP_RENDER_PAGES
  • A2UI5_MCP_RUNTIME_VERSION
  • A2UI5_MCP_SCOPE_TIMEOUT_MS
  • A2UI5_MCP_SCREENSHOT_DIR
  • A2UI5_MCP_SYSTEM_INSECURE_TLS
  • A2UI5_MCP_SYSTEM_URL
  • A2UI5_MCP_SYSTEM_USER
  • A2UI5_MCP_UI
  • A2UI5_MCP_UI5_CACHE_MB
  • A2UI5_MCP_UNIT_TIMEOUT_MS
  • A2UI5_MCP_WORKSPACE
  • ABAP_CLOUD_GUI_HOME
  • AI_VIEW_CHECK_HOME
  • APP_TEMPLATE_HOME
  • DOCS_HOME
  • OPENUI5_SRC
  • POPUPS_HOME
  • SAMPLES_CONTROLS_HOME
  • SAMPLES_HOME
  • SAMPLES_STACK_HOME

Network hosts it talks to 7

  • abap2ui5.github.io · found in code
  • api.github.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • raw.githubusercontent.com · found in code
  • sap.com · found in code
  • sdk.openui5.org · found in code

Files it touches

  • /opt/pw-browsers/chromium
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (31)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_agent_setup

    Set up an EXISTING abap2UI5 project for AI work - what `npm create abap2ui5-app -- --agent-setup` does, executed from abap2UI5/app-template's own template.json (`agentSetup`): adds AGENTS.md (the app-building reference), CLAUDE.md, the agent skills, .mcp.json (this server), the .claude permission allowlist, the two gates (abaplint.jsonc with the framework pinned, abap2ui5lint.jsonc), the CI workflow that runs them and the scripts it calls. WRITES into the project directory, safely: a file the project has is never overwritten (skipped and named); package.json and .gitignore are merged and only …

  • api_reference

    The client API an app calls at runtime — z2ui5_if_client, parsed live from the framework checkout WITH its ABAP-Doc, so a signature is looked up instead of guessed from training data or fished out of the whole z2ui5_if_client source. Without arguments returns the compact surface: every method one line each (obsolete ones marked — they exist only so old apps keep compiling), the cs_* constant groups (cs_event, cs_view, cs_device, cs_nav_mode) and the named types. With `query` the matching entries come back WHOLE: a method with its full documentation and every parameter (type, default, per-param…

  • app_act

    Operate a running app session on the SAP system semantically: fill fields and fire an event, then get the new agent snapshot. `values` { "<field id | model path | name>": value } (table cells as "<table path or id>/<row>/<COLUMN>", e.g. "/T_TAB/2/SELKZ" to select a row) go out as the model delta of the roundtrip; `event` is an action's event name or its id ("a3"); `row` (0-based) fills the row-dependent arguments of a row action; on a SelectDialog/TableSelectDialog the `confirm` action is the pick: `row` selects that row; `args` (positional, null = let the client fill it) supplies arguments th…

  • app_describe

    The current agent snapshot of a running app session (see app_start) - answered from the last response this server kept, no roundtrip, so it sends nothing to the system. Pending edits (values sent without an event) show as the fields' values and are listed under `pending`. Fitted to one answer like app_start's.

  • app_guide

    READ THIS BEFORE WRITING ABAP for an app of your own. The complete guide to BUILDING an abap2UI5 app, live from the framework checkout (abap2UI5 docs/agents/building-apps.md, written to be self-contained so no web access is needed): the app class template and its lifecycle (check_on_init / check_on_event / check_on_navigated), the z2ui5_cl_ui5_view_builder chain, data binding, events, popups, navigation, and the rules that keep an app portable to the oldest supported UI5. Without arguments the whole guide comes back, chapter by chapter — it is meant to be read once at the start of a task. `sec…

  • app_list

    The classes on the SAP system that app_start can start - an ADT class-name search (the system counterpart of the sandbox's app_list). `filter`: the start of the class name, `*` as a wildcard (default "Z"); at most 50 names, with description and package. Names only: whether a class implements z2ui5_if_app is not checked - app_start says so. Needs the ADT services and the user's authorization for them; starts nothing.

  • app_start

    Start an abap2UI5 app class on the SAP system and get its screen as an AGENT SNAPSHOT (v1): the fields you can fill (id, model path, label, kind, current value, editable, choice values), the actions you can fire (the event name and arguments of each button/link/row/value-help wire), the tables (columns, the first rows, selection), the messages (toast, message box, MessageStrip, field value states) and some static text - read from the real abap2UI5 JSON protocol, no browser. Continue with app_act using the snapshot's `session`. Optional `values` are applied as pending edits right after the star…

  • backend

    Manage the local express backend serving the transpiled apps: status | start | stop | restart. run_app starts it automatically; use this for diagnostics or to free the port.

  • build_backend

    Rebuild the transpiled Node backend so run_app and run_unit_tests pick up deployed/edited ABAP. Without an abap2UI5 checkout (the default on a fresh machine) mode auto is npm: the framework comes transpiled in the npm package @abap2ui5/node-runtime, installed once per release into ~/.abap2ui5-mcp (the registry's latest, or the release A2UI5_MCP_RUNTIME_VERSION pins; a minute the first time), and only the deployed apps are transpiled against it - seconds; no clone, no framework devDependencies. With a checkout (A2UI5_HOME or a sibling) auto is incremental when a prior build exists (only the dev…

  • build_log

    Read the full output of the LAST build_backend run — the tool result itself carries only a short tail, so this is how to see the error that tail cut off without paying another build. Returns the requested line slice plus when the build ran, its mode and how it ended (exit code, timeout, cancellation). Without `offset` the last `tail` lines come back; with it, `tail` lines from that line on (`start` and `totalLines` in the answer are the paging cursor; lines that do not fit one answer are left out and `cut` names the call that reads them, and a line longer than 4000 characters is shown shortene…

  • capabilities

    Query what abap2UI5 can express, from the verified capability map (CAPABILITIES.md — every entry names a proving port). Call this BEFORE deciding a UI5 feature cannot be built. Without arguments returns a summary; with `query` and/or `status` returns matching entries (status: direct | workaround | needs-live-test | not-expressible) - paged: an answer stops at about 60,000 characters, and `more` names the `offset` to continue at.

  • deploy_app

    Deploy an abap2UI5 app: writes <class_name>.clas.abap (+ abapGit sidecar) into the dev sandbox - samples-controls' src/zz_dev/, else the abap2UI5 checkout's node/zz_dev/, else (no checkout at all, the default) the npm backend's ~/.abap2ui5-mcp/sandbox - and lints it (the corpus' abaplint config, or app-template's with the framework sources as the dependency: the lint a real project runs; on the npm backend the first lint installs its runtime, once). The class must implement z2ui5_if_app; ANY customer-namespace class name is accepted (zcl_my_app as much as z2ui5_cl_my_app), so an app of your ow…

  • docs_search

    Full-text search over the abap2UI5 documentation site (abap2ui5.github.io/docs), from its markdown sources in the local docs checkout — the cookbook chapters, setup and configuration, the advanced guides. Use it for the prose the other tools do not carry: how a feature is meant to be used, which cookbook chapter walks through it, what the setup for a stack looks like. Each hit names the page, the best-matching heading, a snippet, and the published URL pair — `url` (the rendered page for a human) and `markdown` (the raw page, the one to fetch). Terms are AND-ed; `matches` counts every page that…

  • examples

    Find a WORKING APP that already does what you are about to build, across ALL THREE sample repositories (live-read from their committed catalogues — catalogue.json, or SAMPLES.md on an older checkout): abap2UI5/samples (patterns — value help, navigation, trees, tables), abap2UI5/samples-controls (the UI5 demo kit rebuilt control by control — ask this for "how do I express sap.m.Wizard") and abap2UI5/samples-stack (apps that need an OData service, RAP, APC or the launchpad — only propose one when the user has that). This is the pattern question and it differs from `capabilities`, which answers w…

  • fix_view

    Apply the linter's MECHANICAL fixes to a source and get the corrected source back — nothing is written anywhere, you decide where it goes. Takes abap_source or xml exactly like validate_view (whose findings mark what this can clear with `fixable: true`): runs the property-gate findings, applies the fixes they carry (an obsolete client call renamed, a bare ABAP boolean moved onto the boolean parameter, a missing namespace declared), repeats until nothing more applies, and reports which findings were fixed and which remain — a remaining finding needs a decision a mechanical fix cannot make. The …

Show 16 more tools
  • generation_rules

    The rulebook for PORTING one official UI5 demo-kit sample to abap2UI5 as a z2ui5_cl_smpc_app_<n> class in the samples-controls corpus: what to do with the original Component.js/view.xml/controller, the corpus naming and file conventions, and the 1:1 fidelity rules its gates enforce. Use it when you are porting a named demo-kit sample. If you are building an app of your own, `app_guide` is the one you want — this document assumes an input sample you do not have and a corpus you are not writing into.

  • interact_app

    Boot an app class headless like run_app, then DRIVE it: a short script of actions — click a control (by its builder `id`, a CSS `selector` or its exact visible `text`), fill an input (`value`; the field is committed with Tab so the change event and its roundtrip fire), press a key, wait — performed in order against the running app, then the roundtrips settle and the result is photographed. This is the only tool that reaches the EVENT branch of `main( )` without a system: what a button does, what an input changes, whether a popup opens. Returns run_app's report plus one entry per action (perfor…

  • migrate_report

    Convert a CLASSIC ABAP REPORT (REPORT ... PARAMETERS / SELECT-OPTIONS, event blocks, WRITE list, ALV) into an abap2UI5 app class of the abap-cloud-gui addon (inherits z2ui5_cl_cgui_report: selection_screen( ), start_of_selection( ), write( ), alv( ), message( )) - deterministically, by its converter report2cloud. Answers the generated files (class source, abapGit sidecar, local-class includes), the MIGRATION REPORT (markdown: the TODOs, the unreleased tables and APIs to replace for ABAP Cloud with successor hints, what was not carried over, every mapped construct by line) and the REFUSALS (fil…

  • pitfalls

    The catalogues of defects a green CI does NOT catch, read live from the abap2UI5 checkout: `abap` covers ABAP that has to survive a real SAP system (abapGit round trip and import, activation, extended check, downport/transpiler, runtime), `view` covers the view side (names the 1.71 floor does not have, layout that only works on a newer release, views that fail to load rather than to render, CSP). Every entry is a defect that actually shipped. Read it before finishing a change — validate_view catches what a rule can decide, this is the rest. Paged by section, never cutting one: an answer stops …

  • read_app

    Read back the source of a DEPLOYED dev app exactly as it sits in the dev sandbox — the file run_app's backend was (or will be) built from — plus staleness: `staleInBackend: true` means the file is newer than the built backend, so run_app still boots the OLDER code until the next build_backend. Use it to check what is actually deployed before blaming an edit that never arrived; deploy_app writes, remove_app lists and deletes. A long class comes in pages of whole lines: `lines` says which, `next` names the `from_line` to call again with, and a `from_line` past the end answers the last line with …

  • read_example

    READ the source of a sample the `examples` tool pointed at — the whole class, from the repository the hit named — without leaving the conversation. Pass `class` (the entry's class name, looked up across the three catalogues) or `repo` + `path` (as the entry carries them). Read live from the local checkout when there is one, fetched from GitHub otherwise, so an `examples` hit is always one call away from its code. A sample is a complete, gated app: read it whole, then take the pattern, not the file. A long one comes in pages of whole lines: `page` says which, `nextPage` names the `from_line` to…

  • remove_app

    Remove a previously deployed dev app from the dev sandbox (takes effect in the served backend after the next build_backend). Without class_name lists the deployed dev apps.

  • run_app

    Boot an app class headless in Chromium against the local backend (?app_start=<class>) and LOOK at it: returns booted/ok, real page errors + failed backend calls (benign UI5 noise filtered; a repeated one listed once with its count, at most 20 distinct - `errorsCut` counts the rest; UI5 itself not loading - the CDN out of reach - is an error that says so, a theme or library that did not load a `ui5` note), and a full-page screenshot as an image (a page taller than 4096 px is pictured to that height, `screenshotCut` says so; the PNG is also saved and its path is `screenshot`, or `screenshotNotSa…

  • run_unit_tests

    Run the ABAP Unit tests in the transpiled backend — the local test classes deployed with an app (deploy_app `testclasses`, built by build_backend) — and get ASSERTIONS instead of a picture: which test methods ran, which the framework skips, and the first failure with its error. With `class_name` only that object's test classes run (the generated runner is filtered on it); without it every deployed app's tests run on the npm backend, and on a framework checkout every test of the transpiled tree, the framework's own included, which takes minutes. A test that passes here passes on the system too,…

  • scaffold_app

    The files a NEW abap2UI5 project starts from, named after the app you are writing — served live from abap2UI5/app-template, the repository this ecosystem points people at to begin. Call this when the user wants an app of their own rather than a class to paste somewhere: `app_guide` tells you how to write the CLASS, this hands you everything AROUND it that you cannot invent — the abaplint config with the framework pinned at a release, the abap2ui5lint config the render gate needs, the CI workflow, the abapGit metadata, an AGENTS.md briefing for whoever works on the project next, and one working…

  • scope_of

    Authoritative in/out-of-scope verdict for UI5 control entities (exists since UI5 <= 1.71, not deprecated), read from the OpenUI5 source JSDoc. Needs an OpenUI5 checkout (OPENUI5_SRC or ../fork-openui5).

  • screenshot_view

    LOOK at the view your ABAP builds, in seconds and without a system, a build or a backend. The view is reconstructed from the z2ui5_cl_ui5_view_builder calls (or taken as raw XML), seeded with a model derived from the class's own TYPES/DATA, rendered against the local OpenUI5 runtime and returned as an IMAGE. Use it while writing the view — beside validate_view, which says whether the view is legal; this says what it looks like, which is the half no finding can tell you (a control in the wrong aggregation, a layout that collapses, a table that is empty). Ask for several viewports at once (`size…

  • setup_status

    What this server can do RIGHT NOW, in one read - call it first, or whenever a tool says something is missing: per repository whether a local checkout, the read-only GitHub mirror or nothing resolves (and the env var or clone that fixes it), which dev sandbox deploy_app writes into (the corpus, the framework checkout, or the npm backend's workspace sandbox when there is neither) and what is deployed there, which backend runs the apps (a framework checkout, or the npm package @abap2ui5/node-runtime: its release, where it is installed, its transpiler and abaplint, the open-abap-core commit, what …

  • system_status

    Which SAP system this server is connected to and whether it works: the abap2UI5 endpoint and user from the configuration (never the password), then ONE request to the endpoint that shows whether the host answers, the certificate is accepted, the logon works and what answers is the abap2UI5 start page (a form logon page or another service answers 200 too, and is not taken for a working logon) - each failure as a sentence that says what to change. Call it first, and whenever app_list or app_start says the system did not answer. A rejected logon is sent once and then refused here too, so a wrong …

  • validate_view

    Fast static validation via abap2UI5-linter, BEFORE the build/run loop: reconstructs the view from the z2ui5_cl_ui5_view_builder calls (or takes raw view XML), runs the UI5 property gate (@since floor, deprecation) and renders it headless with a typed mock model. Seconds instead of a build+boot — use it after writing ABAP, then deploy_app once it is clean. Each finding carries severity (error = the app breaks, warning = not necessarily on your target UI5, hint = advisory), a message and the line/column in the source you passed in, listed most severe first (source order within a severity); `coun…

  • verify_app

    The whole loop in ONE call, stopping at the first stage that fails: validate (the linter's gates over the source, seconds), deploy (write the class and its test include into the sandbox, abaplint it), build (build_backend mode auto - incremental after the first time), unit (run_unit_tests for the class, when test classes were given) and boot (run_app: the running app, its errors and a screenshot). Returns every stage's result under `stages`, `ok`, and `stoppedAt` naming the stage that failed (the call is then an error result, isError) - so one call answers "is this app right", and the stage th…

Signals

Stars
1
Forks
0
Open issues
0
Weekly downloads
54
Last commit
Oct 22, 2026 (8 days ago)
Last release
Oct 14, 2026 (16 days ago)
Last package publish
Oct 14, 2026 (16 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.abap2UI5/mcp-server
Version
1.0.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get abap2UI5 running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying abap2UI5?

CallGet help
Cite this page

abap2UI5 MCP server. Agent Mart. https://agentmart.dev/connectors/abap2ui5-mcp-server (last updated 2026-10-25)