小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
8
最近更新:21天前

一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。

mcp-abap-adt: 通往 ABAP 开发工具 (ADT) 的门户

smithery 徽章

此项目提供了一个服务器,允许您使用模型上下文协议 (MCP) 与 SAP ABAP 系统进行交互。可以将其视为一座桥梁,让像 Cline(VS Code 扩展)这样的工具能够与您的 ABAP 系统通信并检索信息,如源代码、表结构等。就像拥有了一个远程控制,可以操控您的 ABAP 开发环境!

ABAP ADT MCP 服务器

本指南专为初学者设计,我们将一步步地介绍所有内容。我们将涵盖:

  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 运行时,可以让您在浏览器之外运行 JavaScript 代码。npm(Node 包管理器)包含在 Node.js 中,用于安装包(代码库)。

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

2. 安装和设置

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

通过 Smithery 安装

要通过 Smithery 自动安装 MCP ABAP 开发工具服务器,请使用以下命令:

bash 复制代码
npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline

手动安装

  1. 克隆仓库:

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

    bash 复制代码
    npm install

    这可能需要几分钟时间。

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

    bash 复制代码
    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. 运行服务器

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

  • 独立模式: 直接运行服务器,它会将消息输出到终端。服务器将启动并等待客户端连接,因此除非您想查看它是否启动,否则这样做可能没有实际用途。
  • 开发/调试模式: 使用 MCP 检查器运行服务器。您可以在浏览器中打开它输出的 URL 并开始测试。

3.1 独立模式

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

bash 复制代码
npm run start

您应该会在终端中看到指示服务器正在运行的消息。它将监听来自 MCP 客户端的连接。服务器将一直运行,直到您停止它(通常是按 Ctrl+C)。

3.2 开发/调试模式(带检查器)

此模式对于调试非常有用。

  1. 以调试模式启动服务器:
    bash 复制代码
    npm run dev
    这将启动服务器并输出一条消息,如:🔍 MCP 检查器已在 http://localhost:5173 上运行 🚀
    这是您将在浏览器中打开 MCP 检查器的 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 数组中添加一个条目。示例如下:

    json 复制代码
    {
      "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 的根文件夹,在资源管理器中右键点击并选择“在此处打开 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