abap-adt MCP配置与使用教程
io.github.williansaez/abap-adt-mcp · v2.8.0
ABAP development from Claude and other MCP hosts: source, transports, tests, ATC, debugger
建议先在本页复制安装配置,再到上游核对文档与权限。
产品介绍
ABAP development from Claude and other MCP hosts: source, transports, tests, ATC, debugger abap-adt-mcp 是一个MCP Server,收录自 官方 MCP Registry。支持 stdio 传输。本页提供产品介绍、配置教程、安装命令与适用场景,支持 Trae、通义灵码、Cursor、Claude Code、VS Code 等。
适用场景
AgentHub Verified 可用性验证技术测试通过
自动化测试流水线已校验安装命令、传输协议与客户端兼容性
按平台快速复制
选择你的平台查看安装方式
- 打开项目根目录下的 .cursor/mcp.json(没有就新建)
- 点击「复制配置」粘贴进去;若已有其他 MCP,只合并 mcpServers 里的本条目
- 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
- 保存后按 Cmd+Shift+P(Windows:Ctrl+Shift+P)→ 输入 Reload Window 并执行
预填环境变量与密钥(可选)
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}配置教程
- 打开 abap-adt-mcp 详情页,确认这是你需要的 MCP Server(来源 官方 MCP Registry)。
- 按客户端选择 Trae、通义灵码、Cursor、Claude Code 或 VS Code,复制 JSON 配置或 CLI 命令。
- 将配置合并进 mcpServers,并把环境变量占位符替换为真实密钥。
- 重载窗口后,在 Agent 对话中调用该 MCP 提供的工具。
安装命令
以下安装命令与配置步骤已写入页面 HTML,搜索引擎与未启用 JavaScript 的浏览器均可直接读取。
Claude Code(本地)
- 确保已安装 Claude Code CLI
- 复制下方命令,将 <占位符> 替换为真实环境变量值后,在终端执行
- 若下方列出了环境变量,请对照填写
claude mcp add abap-adt-mcp -- npx -y abap-adt-mcpCursor — .cursor/mcp.json(本地)
- 打开项目根目录下的 .cursor/mcp.json(没有就新建)
- 点击「复制配置」粘贴进去;若已有其他 MCP,只合并 mcpServers 里的本条目
- 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
- 保存后按 Cmd+Shift+P(Windows:Ctrl+Shift+P)→ 输入 Reload Window 并执行
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}VS Code — .vscode/mcp.json(本地)
- 确保 VS Code 已安装 GitHub Copilot 扩展并支持 MCP
- 打开项目根目录下的 .vscode/mcp.json(没有就新建)
- 点击「复制配置」粘贴;若已有其他 MCP,只合并 mcpServers 里的本条目
- 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
- 保存后重新加载 VS Code 窗口
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}Claude Desktop — claude_desktop_config.json(本地)
- 打开 Claude Desktop 的 claude_desktop_config.json(路径见远程指引)
- 点击「复制配置」合并到 mcpServers
- 将 env 中的 <占位符> 替换为真实密钥
- 完全退出并重启 Claude Desktop
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}Trae — .trae/mcp.json(本地)
- 打开 Trae → 设置 → MCP,或编辑 .trae/mcp.json / 全局 mcp.json
- 点击「复制配置」粘贴并合并 mcpServers
- 将 env 中的 <占位符> 替换为真实密钥
- 保存后重载 Trae 窗口
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}Cherry Studio — MCP 设置(本地)
- 打开 Cherry Studio → 设置 → MCP 服务器 → 添加(STDIO)
- 也可直接导入下方 JSON:点击「复制配置」合并到 mcpServers
- 将 env 中的 <占位符> 替换为真实密钥,并确保本机已安装 Node.js / uv(npx、uvx)
- 启用服务并查看工具列表是否加载成功
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}通义灵码 — MCP 配置(本地)
- 通义灵码:个人设置 → MCP 服务 → 「+」→ 手工添加(STDIO)或配置文件添加
- 点击「复制配置」合并 mcpServers;命令/参数/环境变量与 JSON 一致
- 将 env 中的 <占位符> 替换为真实密钥;本机需 Node.js 18+(npx)或已安装 uv(uvx)
- 确认服务状态为已连接后再在智能体对话中调用
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}Windsurf — mcp_config.json(本地)
- 编辑 ~/.codeium/windsurf/mcp_config.json
- 点击「复制配置」合并 mcpServers(本地 stdio 与 Cursor 格式相同)
- 将 env 中的 <占位符> 替换为真实密钥后保存并刷新 Cascade
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}Cline — MCP Servers(本地)
- Cline 面板 → 设置 → MCP Servers
- 点击「复制配置」粘贴并合并
- 将 env 中的 <占位符> 替换为真实密钥后保存
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}WorkBuddy — .workbuddy/mcp.json(本地)
- 编辑 ~/.workbuddy/mcp.json(用户级)或项目目录 .workbuddy/mcp.json
- 也可在界面:插件 → MCP 服务器 → 配置 MCP,粘贴下方 JSON
- 将 env 中的 <占位符> 替换为真实密钥;Windows 下 command/脚本路径建议用绝对路径
- 保存并重启 WorkBuddy,确认连接器状态为绿色
{
"mcpServers": {
"abap-adt-mcp": {
"command": "npx",
"args": [
"-y",
"abap-adt-mcp"
]
}
}
}常见报错排查与运行避坑 (Troubleshooting)FAQ
针对 abap-adt-mcp 在 Cursor、Claude Code 中的常见连接错误与解决办法
在 Cursor / Claude Code 中配置 abap-adt-mcp 提示 connection closed 或 exit code 1?
通常由本地运行时环境缺失或命令路径未被 IDE 继承引起。排查步骤: 1. 确认已安装 Node.js 18+(支持 npx)或 Python 3.10+(支持 uvx); 2. 尝试在终端运行 which npx 或 which uvx,把配置文件中的 "command" 字段改为完整绝对路径; 3. 修改 mcp.json 后,必须完全重载或重启客户端窗口。
# 终端测试命令是否存在: which npx node -v
提示 spawn npx ENOENT 或 command not found?
这是因为编辑器后台进程未加载完整的终端环境变量(PATH)。解决方案:在全局安装该包(如 npm install -g 包名),或在配置文件中将 command 设置为系统的实际路径(如 Windows 下的 C:\Program Files\nodejs\npx.cmd,Mac 下的 /usr/local/bin/npx)。
提示 Missing required environment variable 或 API 认证失败?
abap-adt-mcp 依赖环境变量(如 SAP_SYSTEMS_FILE、SAP_SYSTEMS、SAP_DEFAULT_DESTINATION、SAP_AUTH_TYPE、MCP_HTTP_PORT、MCP_HTTP_HOST、MCP_HTTP_TOKEN、MCP_HTTP_MAX_SESSIONS、MCP_HTTP_MAX_BODY_BYTES、MCP_HTTP_SESSION_TTL_MINUTES、MCP_HTTP_ALLOWED_ORIGINS、MCP_HTTP_ALLOWED_HOSTS、MCP_EXPORT_ROOT、MCP_AUDIT_FILE、MCP_ADT_TRACE_FILE、MCP_READ_ONLY、MCP_ALLOW_DATA_PREVIEW、MCP_ALLOW_FREE_SQL、MCP_TOOLSETS、MCP_DISABLED_TOOLSETS、MCP_MAX_RESPONSE_CHARS、SAP_ALLOW_REENTRANCE_TICKET、SAP_URL、SAP_USER、SAP_PASSWORD、SAP_CLIENT、SAP_LANGUAGE、SAP_BROWSER_PATH、SAP_BROWSER_PROFILE_DIR、SAP_SSO2_COMMAND、SAP_SSO2_ARGS、SAP_SSO2_TIMEOUT_MS、SAP_TLS_INSECURE、SAP_OAUTH_TOKEN_URL、SAP_OAUTH_CLIENT_ID、SAP_OAUTH_CLIENT_SECRET、SAP_OAUTH_SCOPE、MCP_PROFILE_GATE、MCP_SOURCE_CACHE_TTL_SECONDS、MCP_CACHE_DIR、MCP_API_CLASSIFICATION_FILES)。请在客户端配置文件的 "env" 对象中填入有效密钥,注意不要包含多余空格或未闭合的双引号。
// .cursor/mcp.json 或 claude_desktop_config.json
{
"env": {
"API_KEY": "your_actual_key_here"
}
}免安装模拟调用 (Playground)
仿真环境abap-adt-mcp 核心接口调用仿真 · 无需配置本地环境,直接预览调用参数与返回格式
{
"target": "abap-adt-mcp",
"action": "execute",
"options": {
"mode": "standard",
"timeoutMs": 5000
}
}点击上方「模拟运行」按钮
查看该工具在 Agent 内部的返回数据格式
选型与决策建议(为什么选它?)
帮助你快速判断该资源是否契合当前项目,避免盲目折腾
- PR 自动审查
- 生成 changelog
- 跨仓库 Issue 检索
- 替代人工安全审计
- 在无授权仓库上操作
abap-adt-mcp + 对应场景 Prompt → 组成标准 Agent 自动化任务
MCP 实战教程:从安装到看见效果
按完整实例走一遍(含期望效果与对比验收)。装完本页资源后,用教程里的提示词核对是否真正生效。
相关资源
Remembra AI 记忆层
v0.17.4
io.github.remembra-ai/remembra
持久化 AI 记忆:实体解析、时序知识图谱,含 11 个 MCP 工具。
万智牌卡组构筑
v0.10.0
io.github.nccurry/mtg-mcp
以证据为先的 .NET MCP 服务器,服务于 Magic: The Gathering 卡组构筑流程。
sdcreceipt
v4.3.2
io.github.SemanticDataCharter/sdcreceipt
Verify and settle VSL Settlement Receipts. Verification needs no network and no account.
NexusWindows for Claude
v3.2.1
io.github.pironjulien/nexus-windows-claude
Windows computer use in the background: UI Automation and Win32 messages, every action read back.
sdcreader
v4.4.1
io.github.SemanticDataCharter/sdcreader
Read published Semantic Data Charter models: catalog search, record structure, codes, pinned schema.
Google News & Trends MCP
v0.2.43
io.github.AKzar1el/mcp-trendpulse
Query Google News RSS feeds and search interest over time via Google Trends.
常搭配使用
中文公文写作
v2.0.41
io.clawhub.gongyu0918-debug/chinese-official-writing
用于中文公文、事务性材料和新闻稿件的起草、改写、压缩、润色、审校、文种核对、去口语化、降 AI 味及 Word 格式处理,适用于机关、企事业单位、学校和新闻机构。涵盖申请、请示、报告、通知、通告、意见、决定、决议、议案、公报、命令、函、复函、批复、说明、方案、纪要、公告、公示、通报、制度、规定、办法、细则、操作规程、工作要点、总结、调研、讲话、致辞、主持词、述职、可研、审查材料、技术需求、新闻消息、编者按、新闻评论,以及采购、整改、反馈和 AI 算力等场景。
基于文件的规划
v3.25.0
io.clawhub.othmanadi/planning-with-files
面向多步 AI Agent 工作的持久化文件规划。将 task_plan.md、findings.md 与 progress.md 保存在磁盘上,生命周期钩子注入所选的项目规划上下文;自动恢复仅读取项目规划文件,显式运行 session-catchup.py --input-file 时读取同项目的本地 Agent……(原文截断)
Canonry
v7.50.1+a36190c
io.clawhub.arberx/canonry
通过已连接的 MCP 工具或 cnry CLI 导航 Canonry,检查证据、诊断变更、规划度量、审查集成并报告结果。这是一个可选的宿主原生技能,适用于 CLI 工作流与详细引用;已接入 MCP 的用户可通过 canonry_help 操作,无需安装本地运行时或技能。
GitLab CLI(glab)指南
v1.13.33
io.clawhub.vince-winkintel/gitlab-cli-skills
面向所有 GitLab 操作的完整 GitLab CLI(glab)命令参考与工作流。在处理合并请求、CI/CD 流水线、issue、发布、仓库、认证、变量、标签、里程碑、代码片段或任何 glab 命令时使用。覆盖 40+ 子命令,包括 glab mr、glab ci、glab issue、glab repo、glab release、glab variable 等。
继续逛 AgentHub
大多数人安装前还会对比同类工具或看场景方案——下面这些能帮你少走弯路。
收录徽章:把 AgentHub 挂到你的官网
复制下面任意一段代码到项目主页、官网或 GitHub README。徽章是 SVG 热链,无需上传文件,链接指向本页,访客可由此直接找到安装方式。
<a href="https://myagenthub.cn/p/io.github.williansaez/abap-adt-mcp" title="AgentHub 已收录:abap-adt-mcp" target="_blank" rel="noopener">
<img src="https://myagenthub.cn/badge/io.github.williansaez/abap-adt-mcp" alt="AgentHub 已收录:abap-adt-mcp" height="20" style="border:0"/>
</a>[](https://myagenthub.cn/p/io.github.williansaez/abap-adt-mcp)徽章由 /badge/<资源ID> 动态生成,名称与收录状态变化后自动更新;请保留链接指向,它是收录来源的判定依据。
统一 Manifest
{
"id": "io.github.williansaez/abap-adt-mcp",
"type": "mcp-server",
"version": "2.8.0",
"displayName": "abap-adt-mcp",
"description": "ABAP development from Claude and other MCP hosts: source, transports, tests, ATC, debugger",
"repository": {
"url": "https://github.com/williansaez/abap-adt-mcp",
"source": "github"
},
"distribution": {
"packages": [
{
"registryType": "npm",
"identifier": "abap-adt-mcp",
"version": "2.8.0",
"transport": "stdio",
"environmentVariables": [
{
"name": "SAP_SYSTEMS_FILE",
"description": "Path to a JSON file mapping destination names to system configs (url, client, authType basic/sso/sso2/oauth, credentials). Recommended; keep the file mode 0600. See systems.example.json"
},
{
"name": "SAP_SYSTEMS",
"description": "Inline JSON map of destinations (same shape as SAP_SYSTEMS_FILE). Contains credentials — prefer SAP_SYSTEMS_FILE",
"isSecret": true
},
{
"name": "SAP_DEFAULT_DESTINATION",
"description": "Destination name used when a tool call omits `destination` (alternatively mark an entry with \"default\": true)"
},
{
"name": "SAP_AUTH_TYPE",
"description": "Default auth type for entries that don't specify one: sso (default), sso2, basic, or oauth"
},
{
"name": "MCP_HTTP_PORT",
"description": "When set (1024-65535), serve Streamable HTTP on http://127.0.0.1:<port>/mcp with bearer-token auth instead of stdio"
},
{
"name": "MCP_HTTP_HOST",
"description": "Bind address for the HTTP transport (default 127.0.0.1). Set 0.0.0.0 only inside containers that publish the port"
},
{
"name": "MCP_HTTP_TOKEN",
"description": "Bearer token for the HTTP transport; auto-generated and written to ~/.abap-adt-mcp/http-token when unset",
"isSecret": true
},
{
"name": "MCP_HTTP_MAX_SESSIONS",
"description": "Maximum concurrent MCP sessions on the HTTP transport (default 16); further initialize requests get 503"
},
{
"name": "MCP_HTTP_MAX_BODY_BYTES",
"description": "Largest request body the HTTP transport accepts, in bytes (default 4194304); larger bodies are refused with HTTP 413"
},
{
"name": "MCP_HTTP_SESSION_TTL_MINUTES",
"description": "Idle minutes after which an HTTP session (and its SAP sessions/locks) is closed (default 30)"
},
{
"name": "MCP_HTTP_ALLOWED_ORIGINS",
"description": "Comma-separated Origin values allowed on the HTTP transport (loopback origins always allowed when bound to loopback; * allows any)"
},
{
"name": "MCP_HTTP_ALLOWED_HOSTS",
"description": "Comma-separated Host header values allowed (DNS-rebinding protection; loopback hosts always allowed when bound to loopback)"
},
{
"name": "MCP_EXPORT_ROOT",
"description": "When set, exportPackageSources may only write inside this directory"
},
{
"name": "MCP_AUDIT_FILE",
"description": "Path of a JSONL audit trail: one record per tool call (tool, destination, duration, outcome ok/error/denied/unavailable, policy gate, redacted argument summary)"
},
{
"name": "MCP_ADT_TRACE_FILE",
"description": "Diagnostics: path of a JSONL trace with one line per ADT request (method, URI, status, headers). Cookie, Set-Cookie, Authorization and CSRF values are reduced to name and length; no response body is kept, error lines carry the first 300 characters of the redacted error text. Off when unset."
},
{
"name": "MCP_READ_ONLY",
"description": "Set to 1 to make every destination read-only (server-side; only read-only annotated tools plus login/logout run). Per-destination policies live in systems.json"
},
{
"name": "MCP_ALLOW_DATA_PREVIEW",
"description": "Set to 1 to let tableContents read table and CDS rows on every destination that does not state policy.allowDataPreview itself (reading table data is off by default)"
},
{
"name": "MCP_ALLOW_FREE_SQL",
"description": "Set to 1 to allow runQuery and tableContents with sqlQuery on every destination that does not state policy.allowFreeSql itself (free SQL is off by default; implies table data)"
},
{
"name": "MCP_TOOLSETS",
"description": "Toolsets to publish: comma list (core,source,objects,transports,analysis,tests,atc,data,discovery,runtime,refactoring,rap,services,git,debugger,traces) or a preset: all (default) or focused"
},
{
"name": "MCP_DISABLED_TOOLSETS",
"description": "Toolsets to hide, comma list (core cannot be disabled)"
},
{
"name": "MCP_MAX_RESPONSE_CHARS",
"description": "Character budget for a single tool response before results are paged/truncated (default 40000, minimum 5000). Raise it if your MCP host accepts larger tool outputs"
},
{
"name": "SAP_ALLOW_REENTRANCE_TICKET",
"description": "Set to 1 to enable the reentranceTicket tool (disabled by default: it returns a live SAP logon credential into the conversation)"
},
{
"name": "SAP_URL",
"description": "Legacy single-system mode: base URL of the SAP system, e.g. https://host:44300"
},
{
"name": "SAP_USER",
"description": "Legacy single-system mode: SAP username"
},
{
"name": "SAP_PASSWORD",
"description": "Legacy single-system mode: SAP password",
"isSecret": true
},
{
"name": "SAP_CLIENT",
"description": "Legacy single-system mode: SAP client number, e.g. 100"
},
{
"name": "SAP_LANGUAGE",
"description": "Legacy single-system mode: logon language, e.g. EN"
},
{
"name": "SAP_BROWSER_PATH",
"description": "SSO destinations: path to a Chromium/Chrome/Edge binary for the browser login (auto-detected when unset)"
},
{
"name": "SAP_BROWSER_PROFILE_DIR",
"description": "SSO destinations: directory of the persistent browser profile that keeps the identity-provider session (default ~/.abap-adt-mcp/sso/<host>)"
},
{
"name": "SAP_SSO2_COMMAND",
"description": "Legacy single-system sso2 mode: absolute path to the trusted local ticket provider"
},
{
"name": "SAP_SSO2_ARGS",
"description": "Legacy single-system sso2 mode: JSON array of provider arguments (never put a ticket here)"
},
{
"name": "SAP_SSO2_TIMEOUT_MS",
"description": "Legacy single-system sso2 mode: provider timeout in milliseconds (default 30000; range 1000-300000)"
},
{
"name": "SAP_TLS_INSECURE",
"description": "Legacy single-system mode: set to 1 to skip TLS certificate verification for that system only (sandboxes with self-signed certificates)"
},
{
"name": "SAP_OAUTH_TOKEN_URL",
"description": "Legacy single-system mode with SAP_AUTH_TYPE=oauth: OAuth2 token endpoint (client_credentials)"
},
{
"name": "SAP_OAUTH_CLIENT_ID",
"description": "Legacy single-system mode with SAP_AUTH_TYPE=oauth: OAuth2 client id"
},
{
"name": "SAP_OAUTH_CLIENT_SECRET",
"description": "Legacy single-system mode with SAP_AUTH_TYPE=oauth: OAuth2 client secret",
"isSecret": true
},
{
"name": "SAP_OAUTH_SCOPE",
"description": "Legacy single-system mode with SAP_AUTH_TYPE=oauth: optional OAuth2 scope"
},
{
"name": "MCP_PROFILE_GATE",
"description": "Platform gate for toolsets the destination does not expose (debugger, traces, abapGit, ...): enforce (default, refuse before calling SAP), warn (log only) or off"
},
{
"name": "MCP_SOURCE_CACHE_TTL_SECONDS",
"description": "Lifetime of the per-session source cache used by grepPackage, cdsViewInfo and syntaxCheckCode (default 300; 0 keeps entries until logout)"
},
{
"name": "MCP_CACHE_DIR",
"description": "Directory for the cached SAP cloudification repository used by apiReleaseState (default ~/.abap-adt-mcp/cache)"
},
{
"name": "MCP_API_CLASSIFICATION_FILES",
"description": "Extra classification files for apiReleaseState, comma list: a path inside SAP's cloudification repository (partner/objectClassifications_ACME.json) or an https URL"
}
]
}
],
"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.williansaez/abap-adt-mcp",
"originalUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.williansaez%2Fabap-adt-mcp/versions/latest",
"isOfficial": true,
"status": "active"
}
}