返回市场
mcp-abap-adt

mcp-abap-adt

作者:mario-andreschak44 星标更新:2025-09-10

项目介绍

mcp-abap-adt: 您通往ABAP开发工具(ADT)的桥梁

smithery徽章

此项目提供了一个服务器,允许您通过模型上下文协议(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>

本指南面向初学者,我们将逐步介绍以下内容:

  1. 准备工作:开始之前需要准备的内容。
  2. 安装和设置:使一切运行起来。
  3. 运行服务器:以不同模式启动服务器。
  4. 与Cline集成:将此服务器连接到Cline VS Code扩展。
  5. 故障排除:常见问题及解决方案。
  6. 可用工具:您可以使用的命令列表。

1. 准备工作

在开始之前,您需要准备以下几项:

  • 一个SAP ABAP系统:此服务器连接到现有的ABAP系统。您需要:

    • 系统的URL(例如,https://my-sap-system.com:8000
    • 该系统的有效用户名和密码。
    • SAP客户端编号(例如,100)。
    • 确保您的SAP系统允许通过ADT(ABAP开发工具)进行连接。这通常涉及确保事务SICF中的必要服务已激活。您的基础管理员可以帮助您完成此操作。具体来说,您需要以下服务处于活动状态:
      • /sap/bc/adt
    • 对于GetTableContents工具,您需要实现自定义服务/z_mcp_abap_adt/z_tablecontent。您可以参考此指南这里
  • Git(或GitHub Desktop):我们将使用Git下载项目代码。您有两个选项:

    • Git:命令行工具。下载Git。选择适合您操作系统的版本(Windows、macOS、Linux)。按照安装说明进行操作。
    • GitHub Desktop:Git的图形用户界面。对于初学者来说更容易!下载GitHub Desktop。按照安装说明进行操作。
  • Node.js和npm:Node.js是一个JavaScript运行时,它允许您在Web浏览器之外运行JavaScript代码。npm(Node包管理器)随Node.js一起提供,用于安装包(代码库)。

    • 下载Node.js选择LTS(长期支持)版本。这是最稳定的版本。按照您操作系统的安装说明进行操作。确保在安装时包括npm(默认情况下通常会包括)。
    • 验证安装:安装Node.js后,在新的终端(Windows上的命令提示符,macOS/Linux上的终端)中键入:
      node -v
      npm -v
      
      您应该看到Node.js和npm的版本号。如果看到错误,可能是Node.js未正确安装,或者它可能不在系统的PATH中。(参见下面的故障排除部分)。

2. 安装和设置

现在,让我们获取项目代码并进行设置:

通过Smithery安装

要通过Smithery自动安装Cline的MCP ABAP开发工具服务器:

npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline

手动安装

  1. 克隆仓库

    • 使用Git(命令行)
      1. 打开终端(命令提示符或终端)。
      2. 导航到您希望存储项目的目录。例如,如果您想将其放在桌面上:
        cd Desktop
        
      3. 克隆仓库:
        git clone https://github.com/mario-andreschak/mcp-abap-adt
        
      4. 切换到项目目录:
        cd mcp-abap-adt  # 或者文件夹的实际名称
        
    • 使用GitHub Desktop
      1. 打开GitHub Desktop。
      2. 点击“文件”->“克隆仓库...”。
      3. 在“URL”标签页中粘贴仓库URL。
      4. 选择本地路径(您希望在计算机上保存项目的路径)。
      5. 点击“克隆”。
  2. 安装依赖项:这将下载项目所需的所有必要库。在终端中,进入根目录,运行:

    npm install
    

    这可能需要几分钟时间。

  3. 构建项目:这将编译代码为可执行格式。

    npm run build
    
  4. 创建.env文件:此文件存储敏感信息,如您的SAP凭据。非常重要的是要确保此文件的安全性。

    1. 在根目录下,创建一个名为.env的新文件(无扩展名)。
    2. 使用文本编辑器(如记事本、VS Code等)打开.env文件。
    3. 添加以下行,并用您的实际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. 运行服务器

公平地说,您通常不会单独“运行”这个服务器。它应该被集成到MCP客户端中,如Cline或Claude Desktop。但您确实可以通过两种主要方式手动运行服务器:

  • 独立模式:直接运行服务器,并在终端中输出消息。服务器将启动并等待客户端连接,因此除了检查是否启动外,可能会显得无用。
  • 开发/调试模式:此模式下,服务器与MCP Inspector一起运行。您可以在浏览器中打开它输出的URL并开始使用。

3.1 独立模式

要在独立模式下运行服务器,请在终端中(从根目录)使用以下命令:

npm run start

您应该会在终端中看到表明服务器正在运行的消息。它将监听来自MCP客户端的连接。除非您停止它(通常使用Ctrl+C),否则服务器将继续运行。

3.2 开发/调试模式(带Inspector)

此模式适用于调试。

  1. 以调试模式启动服务器
    npm run dev
    
    这将启动服务器并输出类似的消息:🔍 MCP Inspector 正在 http://localhost:5173 上运行 🚀。 这就是您将在浏览器中打开MCP Inspector的URL。

4. 与Cline集成

Cline是VS Code的一个扩展,它使用MCP服务器来提供语言支持。以下是将此ABAP服务器连接到Cline的方法:

  1. 安装Cline:如果您尚未安装,请在VS Code中安装"Cline"扩展。

  2. 打开Cline设置

    • 打开VS Code设置(文件 -> 首选项 -> 设置,或Ctrl+,)。
    • 搜索"Cline MCP设置"。
    • 点击"在settings.json中编辑"。这将打开cline_mcp_settings.json文件。完整的路径通常是这样的:C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json(将username替换为您自己的Windows用户名)。
  3. 添加服务器配置:您需要在cline_mcp_settings.json文件的servers数组中添加一个条目。这是一个示例:

    {
      "mcpServers": 
        {
          "mcp-abap-adt": {
            "command": "node",
            "args": [
              "C:/PATH_TO/mcp-abap-adt/dist/index.js"
            ],
            "disabled": true,
            "autoApprove": []
          }
        // ... 其他服务器配置 ...
        }
    }
    
  4. 测试连接

    • Cline应自动连接到服务器。您将在"MCP服务器"面板中看到服务器(在Cline扩展中,您会在顶部找到不同的按钮)。
    • 要求Cline获取程序的源代码,它应该提到MCP服务器并尝试使用相应的工具。

5. 故障排除

  • node -vnpm -v给出错误
    • 确保Node.js已正确安装。尝试重新安装它。
    • 确保Node.js安装目录在系统的PATH环境变量中。在Windows上,您可以通过系统属性(在开始菜单中搜索“环境变量”)编辑环境变量。
  • npm install失败
    • 确保您有互联网连接。
    • 尝试删除node_modules文件夹并再次运行npm install
    • 如果您在代理后面,您可能需要配置npm以使用代理。在线搜索“npm代理设置”。
  • 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。点击左侧的“连接”。
    • 点击顶部的“工具”,然后点击“列出工具”
    • 点击“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数据库表的名称。@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