{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.abap2UI5/mcp-server","description":"abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system","title":"abap2UI5","repository":{"url":"https://github.com/abap2UI5/mcp-server","source":"github"},"version":"1.0.0","websiteUrl":"https://abap2ui5.github.io/docs/advanced/mcp_server.html","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@abap2ui5/mcp-server","version":"1.0.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Checkout or install of @abap2ui5/linter (validate_view, fix_view, screenshot_view). Default: the peer npm installs beside the server. A set value is authoritative.","format":"filepath","name":"AI_VIEW_CHECK_HOME"},{"description":"abap2UI5 framework checkout (app_guide, api_reference, pitfalls; backend when present). Default: ../abap2UI5, else the GitHub mirror and the npm runtime.","format":"filepath","name":"A2UI5_HOME"},{"description":"samples-controls checkout (capabilities, examples, generation_rules, scope_of, UI5 for screenshots). Default: ../samples-controls, else the GitHub mirror.","format":"filepath","name":"SAMPLES_CONTROLS_HOME"},{"description":"abap2UI5/samples checkout, one of the catalogues examples searches. Default: ../samples, else the GitHub mirror.","format":"filepath","name":"SAMPLES_HOME"},{"description":"abap2UI5/samples-stack checkout (OData, RAP, APC, launchpad samples). Default: ../samples-stack, else the GitHub mirror.","format":"filepath","name":"SAMPLES_STACK_HOME"},{"description":"abap2UI5/app-template checkout that scaffold_app serves and add_agent_setup executes. Default: ../app-template, else the GitHub mirror.","format":"filepath","name":"APP_TEMPLATE_HOME"},{"description":"abap2UI5/docs checkout that docs_search reads. Default: ../docs, else the GitHub mirror.","format":"filepath","name":"DOCS_HOME"},{"description":"abap2UI5-addons/abap-cloud-gui checkout (with npm ci done) whose report2cloud converter migrate_report runs. Default: ../abap-cloud-gui; no mirror.","format":"filepath","name":"ABAP_CLOUD_GUI_HOME"},{"description":"abap2UI5-addons/popups checkout whose popups migrate_report with deploy: true writes into the dev sandbox beside the converted class. Default: .deps/popups of the abap-cloud-gui checkout, ../popups beside it, then its build/popups.","format":"filepath","name":"POPUPS_HOME"},{"description":"OpenUI5 source checkout scope_of reads the JSDoc from (via samples-controls). Default: ../fork-openui5 next to samples-controls.","format":"filepath","name":"OPENUI5_SRC"},{"description":"Where the npm backend installs, the dev sandbox lives and a framework clone lands. Default: ~/.abap2ui5-mcp.","format":"filepath","name":"A2UI5_MCP_WORKSPACE"},{"description":"Which backend runs the apps: npm (the @abap2ui5/node-runtime package, even beside a checkout) or clone (clone the framework). Default: decided per call.","format":"string","choices":["npm","clone"],"name":"A2UI5_MCP_BACKEND"},{"description":"Pin the @abap2ui5/node-runtime release (X.Y.Z) the npm backend installs. Default: the registry's latest.","format":"string","name":"A2UI5_MCP_RUNTIME_VERSION"},{"description":"Port of the local backend run_app boots against. Default: 3000.","format":"number","name":"A2UI5_MCP_PORT"},{"description":"Whether app_start/app_describe/app_act declare their MCP Apps screen (ui://abap2ui5/app-screen): auto (default - when the client advertises the io.modelcontextprotocol/ui extension), on, off.","format":"string","name":"A2UI5_MCP_UI"},{"description":"The default answer format of the app tools: snapshot (default) or adaptive-card (the snapshot plus an Adaptive Card 1.5 as an embedded resource, for card-rendering hosts).","format":"string","name":"A2UI5_MCP_APP_FORMAT"},{"description":"Set to 1 for no network: no UI5 CDN fallback, no GitHub mirror, no registry lookup.","format":"string","name":"A2UI5_MCP_OFFLINE"},{"description":"Set to 0 to switch off the read-only GitHub mirror used when no checkout is found.","format":"string","name":"A2UI5_MCP_REMOTE"},{"description":"Cache directory of the GitHub mirror. Default: <tmp>/abap2ui5-mcp-remote.","format":"filepath","name":"A2UI5_MCP_REMOTE_DIR"},{"description":"How long a mirrored copy is used before it is refreshed, in milliseconds. Default: one day.","format":"number","name":"A2UI5_MCP_REMOTE_TTL_MS"},{"description":"How many MB of UI5 answers from the CDN (sdk.openui5.org) run_app and interact_app keep in memory across calls, so a second boot does not download them again. 0 switches the cache off. Default: 64.","format":"number","name":"A2UI5_MCP_UI5_CACHE_MB"},{"description":"Pages (Chromium tabs) of validate_view's warm render gate, which concurrent calls queue on. Default: 2 (1 to 8).","format":"number","name":"A2UI5_MCP_RENDER_PAGES"},{"description":"Chromium binary for run_app and interact_app. Default: CHROMIUM_BIN, Playwright's managed browser, then a system chromium.","format":"filepath","name":"A2UI5_MCP_CHROMIUM"},{"description":"Where run_app and interact_app write their PNGs (the newest 50 are kept) and build_backend its log. Default: <tmp>/abap2ui5-mcp-screenshots.","format":"filepath","name":"A2UI5_MCP_SCREENSHOT_DIR"},{"description":"Where build_backend mode prebuilt downloads the backend from. Default: the framework's release asset.","format":"string","name":"A2UI5_MCP_PREBUILT_URL"},{"description":"Set to 0 to run every lint as a fresh abaplint process. Default: a long-lived worker keeps @abaplint/core with the framework parsed and lints a deploy in milliseconds (the CLI runs whenever the worker cannot stand in for it).","format":"string","name":"A2UI5_MCP_LINT_WORKER"},{"description":"How long the warm lint worker (about 300 MB with the framework parsed) is kept without a request before it exits, in milliseconds; the next lint starts a fresh one. 0 keeps it for the server's life. Default: 10 minutes.","format":"number","name":"A2UI5_MCP_LINT_IDLE_MS"},{"description":"Hard timeout of the abaplint run, in milliseconds. Default: 5 minutes.","format":"number","name":"A2UI5_MCP_LINT_TIMEOUT_MS"},{"description":"Hard timeout of scope_of, in milliseconds. Default: 5 minutes.","format":"number","name":"A2UI5_MCP_SCOPE_TIMEOUT_MS"},{"description":"Hard timeout of a build, the prebuilt download and the npm install, in milliseconds. Default: 30 minutes.","format":"number","name":"A2UI5_MCP_BUILD_TIMEOUT_MS"},{"description":"Hard timeout of the ABAP Unit runner, in milliseconds. Default: 10 minutes.","format":"number","name":"A2UI5_MCP_UNIT_TIMEOUT_MS"},{"description":"Switches on the SYSTEM MODE: the app tools against this real SAP system instead of the sandbox loop. The launch URL, e.g. https://host:44300/sap/bc/z2ui5?app_start={class}&sap-client=100.","format":"string","name":"A2UI5_MCP_SYSTEM_URL"},{"description":"System mode: the SAP user the app tools log on with (Basic authentication).","format":"string","name":"A2UI5_MCP_SYSTEM_USER"},{"description":"System mode: the password of A2UI5_MCP_SYSTEM_USER. Or A2UI5_MCP_SYSTEM_PASSWORD_CMD, to keep it out of the configuration.","format":"string","isSecret":true,"name":"A2UI5_MCP_SYSTEM_PASSWORD"},{"description":"System mode: a shell command that prints the password (a keychain lookup) - instead of A2UI5_MCP_SYSTEM_PASSWORD.","format":"string","name":"A2UI5_MCP_SYSTEM_PASSWORD_CMD"},{"description":"System mode: set to 1 to accept a certificate that cannot be verified. NODE_EXTRA_CA_CERTS with the CA is the better fix.","format":"string","name":"A2UI5_MCP_SYSTEM_INSECURE_TLS"},{"description":"Optional token sent to api.github.com only, to raise the rate limit of the docs tree listing (GH_TOKEN is read too).","format":"string","isSecret":true,"name":"GITHUB_TOKEN"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T07:23:32.854293Z","publishedAt":"2026-10-14T07:23:32.854293Z","updatedAt":"2026-10-14T07:23:32.854293Z","isLatest":true}}}
