abap2UI5 MCP Setup & Guide
io.github.abap2UI5/mcp-server · v1.0.0
abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system
Copy the install config on this page first, then verify docs and permissions upstream.
Overview
abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system abap2UI5 is a MCP Server listed from MCP Registry. Transports: stdio. This page includes an overview, setup tutorial, install commands, and use cases for Trae, Tongyi Lingma, Cursor, Claude Code, and VS Code.
Use cases
AgentHub Verified AvailabilityTested & Ready
Automated pipeline validated install commands, protocol & client compatibility
Copy by platform
Choose your platform
- Open or create .cursor/mcp.json in your project root
- Click Copy config and paste; merge only this mcpServers entry if others exist
- Replace <placeholders> in env with real secrets (see Environment variables below)
- Save, then Cmd+Shift+P → Reload Window
Pre-fill Environment Variables (Optional)
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Setup tutorial
- Open the abap2UI5 page and confirm this MCP Server (source: MCP Registry).
- Copy the Cursor, Claude Code, or VS Code snippet.
- Merge it into mcpServers and replace env placeholders with real secrets.
- Reload the window, then call the MCP tools from your agent chat.
Install commands
Install commands and setup steps are in the HTML so search engines and no-JS browsers can read them without running client JavaScript.
Claude Code (local)
- Install Claude Code CLI
- Copy the command below, replace <placeholders> with real env values, then run in terminal
- See Environment variables below if listed
claude mcp add mcp-server -- npx -y @abap2ui5/mcp-serverCursor — .cursor/mcp.json (local)
- Open or create .cursor/mcp.json in your project root
- Click Copy config and paste; merge only this mcpServers entry if others exist
- Replace <placeholders> in env with real secrets (see Environment variables below)
- Save, then Cmd+Shift+P → Reload Window
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}VS Code — .vscode/mcp.json (local)
- Install GitHub Copilot in VS Code with MCP support
- Open or create .vscode/mcp.json in your project root
- Click Copy config and paste; merge only this mcpServers entry if others exist
- Replace <placeholders> in env with real secrets
- Save and Developer: Reload Window
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Claude Desktop — claude_desktop_config.json (local)
- Open Claude Desktop claude_desktop_config.json (see remote guide for paths)
- Click Copy config and merge under mcpServers
- Replace <placeholders> in env with real secrets
- Fully quit and restart Claude Desktop
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Trae — .trae/mcp.json (local)
- Trae → Settings → MCP, or edit .trae/mcp.json / global mcp.json
- Click Copy config and merge mcpServers
- Replace <placeholders> in env with real secrets
- Save and reload Trae
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Cherry Studio — MCP settings (local)
- Cherry Studio → Settings → MCP Servers → Add (STDIO)
- Or import JSON: click Copy config and merge mcpServers
- Replace <placeholders> in env; ensure Node.js / uv (npx, uvx) are installed
- Enable the server and check tools load
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Tongyi Lingma — MCP config (local)
- Lingma Settings → MCP → + → STDIO or config file
- Click Copy config and merge mcpServers
- Replace <placeholders> in env; need Node.js 18+ (npx) or uv (uvx)
- Confirm connected before using tools in agent chat
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Windsurf — mcp_config.json (local)
- Edit ~/.codeium/windsurf/mcp_config.json
- Click Copy config and merge mcpServers (stdio same as Cursor)
- Replace <placeholders> in env, save, refresh Cascade
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Cline — MCP Servers (local)
- Cline panel → Settings → MCP Servers
- Click Copy config and merge
- Replace <placeholders> in env, then save
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}WorkBuddy — .workbuddy/mcp.json (local)
- Edit ~/.workbuddy/mcp.json (user) or project .workbuddy/mcp.json
- Or Plugins → MCP Servers → Configure MCP and paste the JSON below
- Replace <placeholders> in env; on Windows prefer absolute paths for command/scripts
- Save, restart WorkBuddy, confirm connector status is green
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@abap2ui5/mcp-server"
]
}
}
}Troubleshooting & Common ErrorsFAQ
Common connection errors and verified fixes for abap2UI5
Getting 'connection closed' or exit code 1 in Cursor / Claude Code for abap2UI5?
Usually caused by missing runtime paths or IDE environment inheritance. Fix steps: 1. Verify Node.js 18+ (npx) or Python 3.10+ (uvx) is installed; 2. Run 'which npx' or 'which uvx' in terminal, and replace 'command' with absolute path; 3. Reload or restart the client window after modifying config.
# Check binary path in terminal: which npx node -v
Getting 'spawn npx ENOENT' or 'command not found'?
The editor background process does not inherit your full terminal PATH. Solution: Globally install the package, or set the absolute binary path (e.g. C:\Program Files\nodejs\npx.cmd on Windows, or /usr/local/bin/npx on macOS).
Missing required environment variable or authentication failure?
abap2UI5 requires environment variables (AI_VIEW_CHECK_HOME、A2UI5_HOME、SAMPLES_CONTROLS_HOME、SAMPLES_HOME、SAMPLES_STACK_HOME、APP_TEMPLATE_HOME、DOCS_HOME、ABAP_CLOUD_GUI_HOME、POPUPS_HOME、OPENUI5_SRC、A2UI5_MCP_WORKSPACE、A2UI5_MCP_BACKEND、A2UI5_MCP_RUNTIME_VERSION、A2UI5_MCP_PORT、A2UI5_MCP_UI、A2UI5_MCP_APP_FORMAT、A2UI5_MCP_OFFLINE、A2UI5_MCP_REMOTE、A2UI5_MCP_REMOTE_DIR、A2UI5_MCP_REMOTE_TTL_MS、A2UI5_MCP_UI5_CACHE_MB、A2UI5_MCP_RENDER_PAGES、A2UI5_MCP_CHROMIUM、A2UI5_MCP_SCREENSHOT_DIR、A2UI5_MCP_PREBUILT_URL、A2UI5_MCP_LINT_WORKER、A2UI5_MCP_LINT_IDLE_MS、A2UI5_MCP_LINT_TIMEOUT_MS、A2UI5_MCP_SCOPE_TIMEOUT_MS、A2UI5_MCP_BUILD_TIMEOUT_MS、A2UI5_MCP_UNIT_TIMEOUT_MS、A2UI5_MCP_SYSTEM_URL、A2UI5_MCP_SYSTEM_USER、A2UI5_MCP_SYSTEM_PASSWORD、A2UI5_MCP_SYSTEM_PASSWORD_CMD、A2UI5_MCP_SYSTEM_INSECURE_TLS、GITHUB_TOKEN). Ensure you have added valid keys under the 'env' object in your config file without trailing whitespace.
// .cursor/mcp.json 或 claude_desktop_config.json
{
"env": {
"API_KEY": "your_actual_key_here"
}
}Tool Mock Playground
Sandboxabap2UI5 Tool Interface Simulation · Preview tool schema & outputs without local runtime
{
"target": "abap2UI5",
"action": "execute",
"options": {
"mode": "standard",
"timeoutMs": 5000
}
}Click 'Run Mock' above
to preview the raw response returned to the LLM
Decision Guide: Why & When to Use
Assess suitability before installing to save trial-and-error time
- PR review
- Changelog generation
- Cross-repo issue search
- Replacing human security audit
- Unauthorized repo access
abap2UI5 + Scenario Prompt → Complete Agent Automation
MCP hands-on: install to visible results
Follow the full lab (expected UI/output + contrast checks). After installing this item, verify with the tutorial prompts.
Related resources
Actual Budget
v0.10.7
io.github.henfrydls/actual-budget-mcp
Spending analysis and safe writes for Actual Budget: every delete previews and asks first.
Fairquery Agent Trust & Data Safety
v1.0.4
io.github.fairquery/fairquery-agent-trust-mcp
PII/secret redaction, email checks, sanctions screening and OSV vulnerability lookups for AI agents.
Cowork
v1.0.0
io.github.slashman413/cowork
Self-hosted MCP task inbox shared by Claude Code, Codex, Gemini CLI and local LLMs.
seo-audit-console
v0.16.0
io.github.houtini-ai/seo-audit-console
Technical SEO in Claude: GSC + crawl + DataForSEO - audit, market sizing, content recon.
Bulk Article Extractor
v0.1.0
io.github.Nero-Engine/bulk-article-extractor
Full text, author, date and image for every news or blog link in a dataset, CSV or Google Sheet.
Faable — Deploy & Auth
v4.16.0
com.faable/mcp
Deploy apps from GitHub, read build/runtime logs, and manage your app's users from your AI agent.
Often paired with
中文公文写作
v2.0.35
io.clawhub.gongyu0918-debug/chinese-official-writing
用于中文公文、事务性材料和新闻稿件的起草、改写、压缩、润色、审校、文种核对、去口语化、降 AI 味及 Word 格式处理,适用于机关、企事业单位、学校和新闻机构。涵盖申请、请示、报告、通知、通告、意见、决定、决议、议案、公报、命令、函、复函、批复、说明、方案、纪要、公告、公示、通报、制度、规定、办法、细则、操作规程、工作要点、总结、调研、讲话、致辞、主持词、述职、可研、审查材料、技术需求、新闻消息、编者按、新闻评论,以及采购、整改、反馈和 AI 算力等场景。
canonry
v7.45.1+c90d226
io.clawhub.arberx/canonry
Navigate Canonry through connected MCP tools or the `cnry` CLI to inspect evidence, diagnose changes, plan measurement, review integrations, and report results. Use this optional host-native skill for CLI workflows and detailed references; connected MCP users can operate through canonry_help without installing a local runtime or skill.
ai-insurance-advisor
v2.0.163
io.clawhub.mnetfairy/ai-insurance-advisor
中国大陆保险顾问。本 skill 仅覆盖 6 项实际实现的能力:保险需求分析(needs_analyzer.py)、产品对比(premium_calculator.py + 本地 products.json)、保费计算(premium_calculator.py)、方案设计(plan_designer.py)、保险知识问答(insurance-knowledge.md)、合规要点提示(compliance.md)。不提供核保预审、理赔代办、朋友圈/营销文案生成、培训话术、代理人展业工具等能力——这些场景请转人工或调用专业服务。
insurance-advisor-china
v2.0.178
io.clawhub.mnetfairy/insurance-advisor-china
中国大陆AI保险顾问。为个人和家庭提供全方位的保险咨询、产品对比、方案设计、投保指导。当用户询问保险配置、保险方案、产品对比、重疾险/医疗险/寿险/意外险/储蓄险推荐、保费计算、保障缺口分析、需求分析、核保合规、理赔等问题时使用。
Keep exploring AgentHub
Most people compare similar tools or check scenario guides before installing—start here.
Listing badge: put AgentHub on your site
Copy either snippet into your project homepage, docs, or GitHub README. The badge is a hotlinked SVG — nothing to host — and it links back to this page so visitors can find the install steps.
<a href="https://myagenthub.cn/p/io.github.abap2UI5/mcp-server" title="Listed on AgentHub: abap2UI5" target="_blank" rel="noopener">
<img src="https://myagenthub.cn/badge/io.github.abap2UI5/mcp-server?lang=en" alt="Listed on AgentHub: abap2UI5" height="20" style="border:0"/>
</a>[](https://myagenthub.cn/p/io.github.abap2UI5/mcp-server)Badges are generated on the fly from /badge/<package-id>, so name and listing changes propagate automatically. Keep the link target unchanged — it is what counts as the referral.
Unified Manifest
{
"id": "io.github.abap2UI5/mcp-server",
"type": "mcp-server",
"version": "1.0.0",
"displayName": "abap2UI5",
"description": "abap2UI5 dev loop for AI agents: validate views, screenshot, deploy and run apps - no SAP system",
"repository": {
"url": "https://github.com/abap2UI5/mcp-server",
"source": "github"
},
"homepage": "https://abap2ui5.github.io/docs/advanced/mcp_server.html",
"distribution": {
"packages": [
{
"registryType": "npm",
"identifier": "@abap2ui5/mcp-server",
"version": "1.0.0",
"runtimeHint": "npx",
"transport": "stdio",
"environmentVariables": [
{
"name": "AI_VIEW_CHECK_HOME",
"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",
"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",
"description": "samples-controls checkout (capabilities, examples, generation_rules, scope_of, UI5 for screenshots). Default: ../samples-controls, else the GitHub mirror."
},
{
"name": "SAMPLES_HOME",
"description": "abap2UI5/samples checkout, one of the catalogues examples searches. Default: ../samples, else the GitHub mirror."
},
{
"name": "SAMPLES_STACK_HOME",
"description": "abap2UI5/samples-stack checkout (OData, RAP, APC, launchpad samples). Default: ../samples-stack, else the GitHub mirror."
},
{
"name": "APP_TEMPLATE_HOME",
"description": "abap2UI5/app-template checkout that scaffold_app serves and add_agent_setup executes. Default: ../app-template, else the GitHub mirror."
},
{
"name": "DOCS_HOME",
"description": "abap2UI5/docs checkout that docs_search reads. Default: ../docs, else the GitHub mirror."
},
{
"name": "ABAP_CLOUD_GUI_HOME",
"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",
"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",
"description": "OpenUI5 source checkout scope_of reads the JSDoc from (via samples-controls). Default: ../fork-openui5 next to samples-controls."
},
{
"name": "A2UI5_MCP_WORKSPACE",
"description": "Where the npm backend installs, the dev sandbox lives and a framework clone lands. Default: ~/.abap2ui5-mcp."
},
{
"name": "A2UI5_MCP_BACKEND",
"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",
"description": "Pin the @abap2ui5/node-runtime release (X.Y.Z) the npm backend installs. Default: the registry's latest."
},
{
"name": "A2UI5_MCP_PORT",
"description": "Port of the local backend run_app boots against. Default: 3000."
},
{
"name": "A2UI5_MCP_UI",
"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",
"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",
"description": "Set to 1 for no network: no UI5 CDN fallback, no GitHub mirror, no registry lookup."
},
{
"name": "A2UI5_MCP_REMOTE",
"description": "Set to 0 to switch off the read-only GitHub mirror used when no checkout is found."
},
{
"name": "A2UI5_MCP_REMOTE_DIR",
"description": "Cache directory of the GitHub mirror. Default: <tmp>/abap2ui5-mcp-remote."
},
{
"name": "A2UI5_MCP_REMOTE_TTL_MS",
"description": "How long a mirrored copy is used before it is refreshed, in milliseconds. Default: one day."
},
{
"name": "A2UI5_MCP_UI5_CACHE_MB",
"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",
"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",
"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",
"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",
"description": "Where build_backend mode prebuilt downloads the backend from. Default: the framework's release asset."
},
{
"name": "A2UI5_MCP_LINT_WORKER",
"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",
"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",
"description": "Hard timeout of the abaplint run, in milliseconds. Default: 5 minutes."
},
{
"name": "A2UI5_MCP_SCOPE_TIMEOUT_MS",
"description": "Hard timeout of scope_of, in milliseconds. Default: 5 minutes."
},
{
"name": "A2UI5_MCP_BUILD_TIMEOUT_MS",
"description": "Hard timeout of a build, the prebuilt download and the npm install, in milliseconds. Default: 30 minutes."
},
{
"name": "A2UI5_MCP_UNIT_TIMEOUT_MS",
"description": "Hard timeout of the ABAP Unit runner, in milliseconds. Default: 10 minutes."
},
{
"name": "A2UI5_MCP_SYSTEM_URL",
"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",
"description": "System mode: the SAP user the app tools log on with (Basic authentication)."
},
{
"name": "A2UI5_MCP_SYSTEM_PASSWORD",
"description": "System mode: the password of A2UI5_MCP_SYSTEM_USER. Or A2UI5_MCP_SYSTEM_PASSWORD_CMD, to keep it out of the configuration.",
"isSecret": true
},
{
"name": "A2UI5_MCP_SYSTEM_PASSWORD_CMD",
"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",
"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",
"description": "Optional token sent to api.github.com only, to raise the rate limit of the docs tree listing (GH_TOKEN is read too).",
"isSecret": true
}
]
}
],
"remotes": []
},
"dependencies": [],
"installTargets": [
"claude-code",
"claude-desktop",
"cursor",
"vscode",
"trae",
"cherry-studio",
"lingma",
"windsurf",
"cline",
"workbuddy"
],
"keywords": [],
"provenance": {
"origin": "official-mcp-registry",
"originalId": "io.github.abap2UI5/mcp-server",
"originalUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.abap2UI5%2Fmcp-server/versions/latest",
"isOfficial": true,
"status": "active"
}
}