此项目提供了一个服务器,允许您通过模型上下文协议(MCP)与SAP ABAP系统进行交互。可以将其视为一个桥梁,让诸如Cline(一个VS Code扩展)这样的工具能够与您的ABAP系统通信并检索源代码、表结构等信息。就像拥有一个远程控制您的ABAP开发环境一样!
<a href="https://glama.ai/mcp/servers/gwkh12xlu7"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=1929062830,1145872649&fm=3081&app=3081&f=PNG?w=760&h=400" alt="ABAP ADT MCP服务器" /> </a>本指南面向初学者,我们将逐步介绍以下内容:
在开始之前,您需要准备以下几项:
一个SAP ABAP系统:此服务器连接到现有的ABAP系统。您需要:
https://my-sap-system.com:8000)100)。SICF中的必要服务已激活。您的基础管理员可以帮助您完成此操作。具体来说,您需要以下服务处于活动状态:
/sap/bc/adtGetTableContents工具,您需要实现自定义服务/z_mcp_abap_adt/z_tablecontent。您可以参考此指南这里Git(或GitHub Desktop):我们将使用Git下载项目代码。您有两个选项:
Node.js和npm:Node.js是一个JavaScript运行时,它允许您在Web浏览器之外运行JavaScript代码。npm(Node包管理器)随Node.js一起提供,用于安装包(代码库)。
node -v
npm -v
您应该看到Node.js和npm的版本号。如果看到错误,可能是Node.js未正确安装,或者它可能不在系统的PATH中。(参见下面的故障排除部分)。现在,让我们获取项目代码并进行设置:
要通过Smithery自动安装Cline的MCP ABAP开发工具服务器:
npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline
克隆仓库:
cd Desktop
git clone https://github.com/mario-andreschak/mcp-abap-adt
cd mcp-abap-adt # 或者文件夹的实际名称
安装依赖项:这将下载项目所需的所有必要库。在终端中,进入根目录,运行:
npm install
这可能需要几分钟时间。
构建项目:这将编译代码为可执行格式。
npm run build
创建.env文件:此文件存储敏感信息,如您的SAP凭据。非常重要的是要确保此文件的安全性。
.env的新文件(无扩展名)。.env文件。#字符,请务必用引号将密码括起来!
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仓库!公平地说,您通常不会单独“运行”这个服务器。它应该被集成到MCP客户端中,如Cline或Claude Desktop。但您确实可以通过两种主要方式手动运行服务器:
要在独立模式下运行服务器,请在终端中(从根目录)使用以下命令:
npm run start
您应该会在终端中看到表明服务器正在运行的消息。它将监听来自MCP客户端的连接。除非您停止它(通常使用Ctrl+C),否则服务器将继续运行。
此模式适用于调试。
npm run dev
这将启动服务器并输出类似的消息:🔍 MCP Inspector 正在 http://localhost:5173 上运行 🚀。
这就是您将在浏览器中打开MCP Inspector的URL。Cline是VS Code的一个扩展,它使用MCP服务器来提供语言支持。以下是将此ABAP服务器连接到Cline的方法:
安装Cline:如果您尚未安装,请在VS Code中安装"Cline"扩展。
打开Cline设置:
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": []
}
// ... 其他服务器配置 ...
}
}
测试连接:
node -v或npm -v给出错误:
npm install失败:
node_modules文件夹并再次运行npm install。cline_mcp_settings.json中的设置。必须是正确的绝对路径到root-server目录,并且在Windows上使用双反斜杠。npm run start检查)。cd C:/PATH_TO/mcp-abap-adt/.env文件中的SAP凭据。SICF中是否启用了必要的ADT服务。此服务器提供了以下工具,可通过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数据库表的名称。 | @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 |