Search / io.github.abap2UI5/mcp-server
abap2UI5
L0· runs locallyabap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system
v1.0.0 · active · repository · website · descriptor JSON · versions
Search / io.github.abap2UI5/mcp-server
L0· runs locallyabap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system
v1.0.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"abap2UI5": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/[email protected]"
],
"env": {
"A2UI5_MCP_SYSTEM_PASSWORD": "${A2UI5_MCP_SYSTEM_PASSWORD}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}claude mcp add abap2UI5 -e "A2UI5_MCP_SYSTEM_PASSWORD=${A2UI5_MCP_SYSTEM_PASSWORD}" -e "GITHUB_TOKEN=${GITHUB_TOKEN}" -- npx -y @abap2ui5/[email protected][mcp_servers.abap2UI5]
command = "npx"
args = ["-y", "@abap2ui5/[email protected]"]
env = { "A2UI5_MCP_SYSTEM_PASSWORD" = "${A2UI5_MCP_SYSTEM_PASSWORD}", "GITHUB_TOKEN" = "${GITHUB_TOKEN}" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"abap2UI5": {
"type": "local",
"command": [
"npx",
"-y",
"@abap2ui5/[email protected]"
],
"enabled": true,
"environment": {
"A2UI5_MCP_SYSTEM_PASSWORD": "{env:A2UI5_MCP_SYSTEM_PASSWORD}",
"GITHUB_TOKEN": "{env:GITHUB_TOKEN}"
}
}
}
}{
"mcpServers": {
"abap2UI5": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/[email protected]"
],
"env": {
"A2UI5_MCP_SYSTEM_PASSWORD": "${A2UI5_MCP_SYSTEM_PASSWORD}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=abap2UI5&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBhYmFwMnVpNS9tY3Atc2VydmVyQDEuMC4wIl0sImVudiI6eyJBMlVJNV9NQ1BfU1lTVEVNX1BBU1NXT1JEIjoiJHtBMlVJNV9NQ1BfU1lTVEVNX1BBU1NXT1JEfSIsIkdJVEhVQl9UT0tFTiI6IiR7R0lUSFVCX1RPS0VOfSJ9fQ%3D%3D"
}{
"servers": {
"abap2UI5": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@abap2ui5/[email protected]"
],
"env": {
"A2UI5_MCP_SYSTEM_PASSWORD": "${A2UI5_MCP_SYSTEM_PASSWORD}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}{
"mcpServers": {
"abap2UI5": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/[email protected]"
],
"env": {
"A2UI5_MCP_SYSTEM_PASSWORD": "${A2UI5_MCP_SYSTEM_PASSWORD}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}extensions:
"abap2UI5":
enabled: true
name: "abap2UI5"
type: stdio
cmd: "npx"
args:
- "-y"
- "@abap2ui5/[email protected]"
envs:
"A2UI5_MCP_SYSTEM_PASSWORD": "${A2UI5_MCP_SYSTEM_PASSWORD}"
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${A2UI5_MCP_SYSTEM_PASSWORD}, ${GITHUB_TOKEN}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @abap2ui5/[email protected]No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website ~liveness-unmeasured +updated-5d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@abap2ui5/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@abap2ui5/mcp-server | npm | 1.0.0 | npx | A2UI5_MCP_SYSTEM_PASSWORD, GITHUB_TOKEN |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.abap2UI5/mcp-server",
"title": "abap2UI5",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.0.0",
"packages": [
{
"version": "1.0.0",
"transport": {
"type": "stdio"
},
"identifier": "@abap2ui5/mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "AI_VIEW_CHECK_HOME",
"format": "filepath",
"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."
},
{
"name": "A2UI5_HOME",
"format": "filepath",
"description": "abap2UI5 framework checkout (app_guide, api_reference, pitfalls; backend when present). Default: ../abap2UI5, else the GitHub mirror and the npm runtime."
},
{
"name": "SAMPLES_CONTROLS_HOME",
"format": "filepath",
"description": "samples-controls checkout (capabilities, examples, generation_rules, scope_of, UI5 for screenshots). Default: ../samples-controls, else the GitHub mirror."
},
{
"name": "SAMPLES_HOME",
"format": "filepath",
"description": "abap2UI5/samples checkout, one of the catalogues examples searches. Default: ../samples, else the GitHub mirror."
},
{
"name": "SAMPLES_STACK_HOME",
"format": "filepath",
"description": "abap2UI5/samples-stack checkout (OData, RAP, APC, launchpad samples). Default: ../samples-stack, else the GitHub mirror."
},
{
"name": "APP_TEMPLATE_HOME",
"format": "filepath",
"description": "abap2UI5/app-template checkout that scaffold_app serves and add_agent_setup executes. Default: ../app-template, else the GitHub mirror."
},
{
"name": "DOCS_HOME",
"format": "filepath",
"description": "abap2UI5/docs checkout that docs_search reads. Default: ../docs, else the GitHub mirror."
},
{
"name": "ABAP_CLOUD_GUI_HOME",
"format": "filepath",
"description": "abap2UI5-addons/abap-cloud-gui checkout (with npm ci done) whose report2cloud converter migrate_report runs. Default: ../abap-cloud-gui; no mirror."
},
{
"name": "POPUPS_HOME",
"format": "filepath",
"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."
},
{
"name": "OPENUI5_SRC",
"format": "filepath",
"description": "OpenUI5 source checkout scope_of reads the JSDoc from (via samples-controls). Default: ../fork-openui5 next to samples-controls."
},
{
"name": "A2UI5_MCP_WORKSPACE",
"format": "filepath",
"description": "Where the npm backend installs, the dev sandbox lives and a framework clone lands. Default: ~/.abap2ui5-mcp."
},
{
"name": "A2UI5_MCP_BACKEND",
"format": "string",
"choices": [
"npm",
"clone"
],
"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."
},
{
"name": "A2UI5_MCP_RUNTIME_VERSION",
"format": "string",
"description": "Pin the @abap2ui5/node-runtime release (X.Y.Z) the npm backend installs. Default: the registry's latest."
},
{
"name": "A2UI5_MCP_PORT",
"format": "number",
"description": "Port of the local backend run_app boots against. Default: 3000."
},
{
"name": "A2UI5_MCP_UI",
"format": "string",
"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."
},
{
"name": "A2UI5_MCP_APP_FORMAT",
"format": "string",
"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)."
},
{
"name": "A2UI5_MCP_OFFLINE",
"format": "string",
"description": "Set to 1 for no network: no UI5 CDN fallback, no GitHub mirror, no registry lookup."
},
{
"name": "A2UI5_MCP_REMOTE",
"format": "string",
"description": "Set to 0 to switch off the read-only GitHub mirror used when no checkout is found."
},
{
"name": "A2UI5_MCP_REMOTE_DIR",
"format": "filepath",
"description": "Cache directory of the GitHub mirror. Default: <tmp>/abap2ui5-mcp-remote."
},
{
"name": "A2UI5_MCP_REMOTE_TTL_MS",
"format": "number",
"description": "How long a mirrored copy is used before it is refreshed, in milliseconds. Default: one day."
},
{
"name": "A2UI5_MCP_UI5_CACHE_MB",
"format": "number",
"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."
},
{
"name": "A2UI5_MCP_RENDER_PAGES",
"format": "number",
"description": "Pages (Chromium tabs) of validate_view's warm render gate, which concurrent calls queue on. Default: 2 (1 to 8)."
},
{
"name": "A2UI5_MCP_CHROMIUM",
"format": "filepath",
"description": "Chromium binary for run_app and interact_app. Default: CHROMIUM_BIN, Playwright's managed browser, then a system chromium."
},
{
"name": "A2UI5_MCP_SCREENSHOT_DIR",
"format": "filepath",
"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."
},
{
"name": "A2UI5_MCP_PREBUILT_URL",
"format": "string",
"description": "Where build_backend mode prebuilt downloads the backend from. Default: the framework's release asset."
},
{
"name": "A2UI5_MCP_LINT_WORKER",
"format": "string",
"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)."
},
{
"name": "A2UI5_MCP_LINT_IDLE_MS",
"format": "number",
"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."
},
{
"name": "A2UI5_MCP_LINT_TIMEOUT_MS",
"format": "number",
"description": "Hard timeout of the abaplint run, in milliseconds. Default: 5 minutes."
},
{
"name": "A2UI5_MCP_SCOPE_TIMEOUT_MS",
"format": "number",
"description": "Hard timeout of scope_of, in milliseconds. Default: 5 minutes."
},
{
"name": "A2UI5_MCP_BUILD_TIMEOUT_MS",
"format": "number",
"description": "Hard timeout of a build, the prebuilt download and the npm install, in milliseconds. Default: 30 minutes."
},
{
"name": "A2UI5_MCP_UNIT_TIMEOUT_MS",
"format": "number",
"description": "Hard timeout of the ABAP Unit runner, in milliseconds. Default: 10 minutes."
},
{
"name": "A2UI5_MCP_SYSTEM_URL",
"format": "string",
"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."
},
{
"name": "A2UI5_MCP_SYSTEM_USER",
"format": "string",
"description": "System mode: the SAP user the app tools log on with (Basic authentication)."
},
{
"name": "A2UI5_MCP_SYSTEM_PASSWORD",
"format": "string",
"isSecret": true,
"description": "System mode: the password of A2UI5_MCP_SYSTEM_USER. Or A2UI5_MCP_SYSTEM_PASSWORD_CMD, to keep it out of the configuration."
},
{
"name": "A2UI5_MCP_SYSTEM_PASSWORD_CMD",
"format": "string",
"description": "System mode: a shell command that prints the password (a keychain lookup) - instead of A2UI5_MCP_SYSTEM_PASSWORD."
},
{
"name": "A2UI5_MCP_SYSTEM_INSECURE_TLS",
"format": "string",
"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."
},
{
"name": "GITHUB_TOKEN",
"format": "string",
"isSecret": true,
"description": "Optional token sent to api.github.com only, to raise the rate limit of the docs tree listing (GH_TOKEN is read too)."
}
]
}
],
"repository": {
"url": "https://github.com/abap2UI5/mcp-server",
"source": "github"
},
"websiteUrl": "https://abap2ui5.github.io/docs/advanced/mcp_server.html",
"description": "abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system"
}