MCP ABAP ADT
一个服务器,它将模型上下文协议 (MCP) 与 SAP ABAP 系统桥接起来,从而允许像 Cline 这样的工具检索 ABAP 源代码、表结构和其他开发工件。
Tools
GetStructure
Retrieve ABAP Structure
GetTable
Retrieve ABAP table structure
GetTableContents
Retrieve contents of an ABAP table
GetPackage
Retrieve ABAP package details
GetTypeInfo
Retrieve ABAP type information
GetInclude
Retrieve ABAP Include Source Code
SearchObject
Search for ABAP objects using quick search
GetTransaction
Retrieve ABAP transaction details
GetInterface
Retrieve ABAP interface source code
GetProgram
Retrieve ABAP program source code
GetClass
Retrieve ABAP class source code
GetFunctionGroup
Retrieve ABAP Function Group source code
GetFunction
Retrieve ABAP Function Module source code
README
mcp-abap-adt: 连接 ABAP 开发工具 (ADT) 的桥梁
本项目提供了一个服务器,允许您使用模型上下文协议 (MCP) 与 SAP ABAP 系统进行交互。可以将其视为一个桥梁,让 Cline (一个 VS Code 扩展) 等工具与您的 ABAP 系统通信,并检索源代码、表结构等信息。它就像您 ABAP 开发环境的遥控器!
<a href="https://glama.ai/mcp/servers/gwkh12xlu7"> <img width="380" height="200" src="https://glama.ai/mcp/servers/gwkh12xlu7/badge" alt="ABAP ADT MCP server" /> </a>
本指南专为初学者设计,我们将逐步介绍所有内容。我们将涵盖:
- 先决条件: 开始之前需要准备什么。
- 安装和设置: 启动并运行所有内容。
- 运行服务器: 以不同模式启动服务器。
- 与 Cline 集成: 将此服务器连接到 Cline VS Code 扩展。
- 故障排除: 常见问题和解决方案。
- 可用工具: 您可以使用的命令列表。
1. 先决条件
在开始之前,您需要准备以下几项:
-
SAP ABAP 系统: 此服务器连接到现有的 ABAP 系统。您需要:
- 系统的 URL (例如,
https://my-sap-system.com:8000) - 该系统的有效用户名和密码。
- SAP 客户端编号 (例如,
100)。 - 确保您的 SAP 系统允许通过 ADT (ABAP 开发工具) 进行连接。这通常涉及确保在事务
SICF中激活必要的服务。您的 Basis 管理员可以提供帮助。具体来说,您需要激活以下服务:/sap/bc/adt
- 对于
GetTableContents工具,您需要实现自定义服务/z_mcp_abap_adt/z_tablecontent。您可以参考 此指南
- 系统的 URL (例如,
-
Git (或 GitHub Desktop): 我们将使用 Git 下载项目代码。您有两个选择:
- Git: 命令行工具。 下载 Git。 选择适合您操作系统的版本 (Windows, macOS, Linux)。 按照安装说明进行操作。
- GitHub Desktop: Git 的图形用户界面。 对初学者来说更容易! 下载 GitHub Desktop。 按照安装说明进行操作。
-
Node.js 和 npm: Node.js 是一个 JavaScript 运行时,允许您在 Web 浏览器之外运行 JavaScript 代码。 npm (Node Package Manager) 包含在 Node.js 中,用于安装软件包(代码库)。
- 下载 Node.js。 选择 LTS (长期支持) 版本。 这是最稳定的版本。 按照您操作系统的安装说明进行操作。 确保在安装中包含 npm(通常默认包含)。
- 验证安装: 安装 Node.js 后,打开一个新的终端(Windows 上的命令提示符,macOS/Linux 上的终端)并输入:
您应该看到 Node.js 和 npm 的版本号。 如果您看到错误,则 Node.js 可能未正确安装,或者它可能不在您的系统 PATH 中。 (请参阅下面的故障排除)。node -v npm -v
2. 安装和设置
现在,让我们获取项目代码并进行设置:
通过 Smithery 安装
要通过 Smithery 自动安装用于 Cline 的 MCP ABAP 开发工具服务器:
npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline
手动安装
-
克隆存储库:
- 使用 Git (命令行):
- 打开终端(命令提示符或终端)。
- 导航到要存储项目的目录。 例如,将其放在桌面上:
cd Desktop - 克隆存储库:
git clone https://github.com/mario-andreschak/mcp-abap-adt - 进入项目目录:
cd mcp-abap-adt # 或者任何文件夹名称
- 使用 GitHub Desktop:
- 打开 GitHub Desktop。
- 单击“文件”->“克隆存储库...”。
- 在“URL”选项卡中,粘贴存储库 URL。
- 选择本地路径(您要将项目保存在计算机上的位置)。
- 单击“克隆”。
- 使用 Git (命令行):
-
安装依赖项: 这会下载项目所需的所有必要库。 在终端中,在根目录下,运行:
npm install这可能需要几分钟。
-
构建项目: 这会将代码编译为可执行格式。
npm run build -
创建一个
.env文件: 此文件存储敏感信息,例如您的 SAP 凭据。 保持此文件安全非常重要。- 在根目录中,创建一个名为
.env的新文件(无扩展名)。 - 在文本编辑器(如记事本、VS Code 等)中打开
.env文件。 - 添加以下行,将占位符替换为您的实际 SAP 系统信息:
重要提示:如果您的密码包含“#”字符,请务必将您的密码用引号引起来!
重要提示: 永远不要与任何人分享您的SAP_URL=https://your-sap-system.com:8000 # 您的 SAP 系统 URL SAP_USERNAME=your_username # 您的 SAP 用户名 SAP_PASSWORD=your_password # 您的 SAP 密码 SAP_CLIENT=100 # 您的 SAP 客户端.env文件,也永远不要将其提交到 Git 存储库!
- 在根目录中,创建一个名为
3. 运行服务器
公平地说,您通常不会单独“运行”此服务器。 它应该集成到像 Cline 或 Claude Desktop 这样的 MCP 客户端中。 但是您可以手动以两种主要方式运行服务器:
- 独立模式: 这将直接运行服务器,并将消息输出到终端。 服务器将启动并等待客户端连接,因此可能会使其无用,除非查看它是否启动。
- 开发/调试模式: 这将使用 MCP Inspector 运行服务器。 您可以在浏览器中打开它输出的 URL 并开始尝试。
3.1 独立模式
要在独立模式下运行服务器,请在终端中使用以下命令(从根目录):
npm run start
您应该在终端中看到消息,指示服务器正在运行。 它将侦听来自 MCP 客户端的连接。 服务器将继续运行,直到您停止它(通常使用 Ctrl+C)。
3.2 开发/调试模式(使用 Inspector)
此模式对于调试很有用。
- 在调试模式下启动服务器:
这将启动服务器并输出一条消息,例如:npm run dev🔍 MCP Inspector is up and running at http://localhost:5173 🚀。 这是您将在浏览器中打开 MCP inspector 的 URL。
4. 与 Cline 集成
Cline 是一个 VS Code 扩展,它使用 MCP 服务器来提供语言支持。 以下是如何将此 ABAP 服务器连接到 Cline:
-
安装 Cline: 如果您尚未安装,请在 VS Code 中安装“Cline”扩展。
-
打开 Cline 设置:
- 打开 VS Code 设置(文件 -> 首选项 -> 设置,或 Ctrl+,)。
- 搜索“Cline MCP Settings”。
- 单击“在 settings.json 中编辑”。 这将打开
cline_mcp_settings.json文件。 完整路径通常类似于:C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json(将username替换为您的 Windows 用户名)。
-
添加服务器配置: 您需要在
cline_mcp_settings.json文件中的servers数组中添加一个条目。 这是一个例子:{ "mcpServers": { "mcp-abap-adt": { "command": "node", "args": [ "C:/PATH_TO/mcp-abap-adt/dist/index.js" ], "disabled": true, "autoApprove": [] } // ... 其他服务器配置 ... } } -
测试连接:
- Cline 应该会自动连接到服务器。 您将在“MCP Servers”面板中看到服务器出现(在 Cline 扩展中,您会在顶部找到不同的按钮。)
- 要求 Cline 获取程序的源代码,它应该提及 MCP 服务器,并应尝试使用相应的工具
5. 故障排除
node -v或npm -v给出错误:- 确保 Node.js 已正确安装。 尝试重新安装它。
- 确保 Node.js 安装目录位于您的系统 PATH 环境变量中。 在 Windows 上,您可以通过系统属性编辑环境变量(在开始菜单中搜索“环境变量”)。
npm install失败:- 确保您有互联网连接。
- 尝试删除
node_modules文件夹并再次运行npm install。 - 如果您位于代理后面,您可能需要配置 npm 以使用代理。 在网上搜索“npm proxy settings”。
- Cline 未连接到服务器:
- 仔细检查
cline_mcp_settings.json中的设置。 它必须是root-server目录的正确绝对路径,并在 Windows 上使用双反斜杠。 - 确保服务器正在运行(使用
npm run start检查)。 - 重启 VS Code。
- 或者:
- 在资源管理器中导航到 mcp-abap-adt 的根文件夹,按住 Shift 键并右键单击,然后选择“在此处打开 Powershell”。 (或者打开一个 Powershell 并使用
cd C:/PATH_TO/mcp-abap-adt/导航到该文件夹) - 运行 "npm install"
- 运行 "npm run build"
- 运行 "npx @modelcontextprotocol/inspector node dist/index.js"
- 在浏览器中打开它输出的 URL。 单击左侧的“connect”。
- 单击顶部的“Tools”,然后单击“List Tools”
- 单击 GetProgram 并在右侧输入“SAPMV45A”或任何其他报表名称作为程序名称
- 测试并查看输出是什么
- 仔细检查
- SAP 连接错误:
- 验证
.env文件中的 SAP 凭据。 - 确保 SAP 系统正在运行并且可以从您的网络访问。
- 确保您的 SAP 用户具有访问 ADT 服务所需的授权。
- 检查是否在事务
SICF中激活了所需的 ADT 服务。 - 如果您使用的是自签名证书或您的 SAP 系统 http 配置存在问题,请确保如上所述设置 TLS_REJECT_UNAUTHORIZED!
- 验证
6. 可用工具
此服务器提供以下工具,可以通过 Cline(或任何其他 MCP 客户端)使用:
| 工具名称 | 描述 | 输入参数 | 示例用法 (在 Cline 中) |
|---|---|---|---|
GetProgram |
检索 ABAP 程序源代码。 | program_name (字符串): ABAP 程序的名称。 |
@tool GetProgram program_name=ZMY_PROGRAM |
GetClass |
检索 ABAP 类源代码。 | class_name (字符串): ABAP 类的名称。 |
@tool GetClass class_name=ZCL_MY_CLASS |
GetFunctionGroup |
检索 ABAP 函数组源代码。 | function_group (字符串): 函数组的名称。 |
@tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP |
GetFunction |
检索 ABAP 函数模块源代码。 | function_name (字符串), function_group (字符串) |
@tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG |
GetStructure |
检索 ABAP 结构。 | structure_name (字符串): DDIC 结构的名称。 |
@tool GetStructure structure_name=ZMY_STRUCT |
GetTable |
检索 ABAP 表结构。 | table_name (字符串): ABAP DB 表的名称。 |
@tool GetTable table_name=ZMY_TABLE |
GetTableContents |
检索 ABAP 表的内容。 | table_name (字符串), max_rows (数字, 可选, 默认 100) |
@tool GetTableContents table_name=ZMY_TABLE max_rows=50 |
GetPackage |
检索 ABAP 包详细信息。 | package_name (字符串): ABAP 包的名称。 |
@tool GetPackage package_name=ZMY_PACKAGE |
GetTypeInfo |
检索 ABAP 类型信息。 | type_name (字符串): ABAP 类型的名称。 |
@tool GetTypeInfo type_name=ZMY_TYPE |
GetInclude |
检索 ABAP 包含源代码 | include_name (字符串): ABAP 包含的名称 |
@tool GetInclude include_name=ZMY_INCLUDE |
SearchObject |
使用快速搜索搜索 ABAP 对象。 | query (字符串), maxResults (数字, 可选, 默认 100) |
@tool SearchObject query=ZMY* maxResults=20 |
GetInterface |
检索 ABAP 接口源代码。 | interface_name (字符串): ABAP 接口的名称。 |
@tool GetInterface interface_name=ZIF_MY_INTERFACE |
GetTransaction |
检索 ABAP 事务详细信息。 | transaction_name (字符串): ABAP 事务的名称。 |
@tool GetTransaction transaction_name=ZMY_TRANSACTION |
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。