项目简介

ABAP ADT MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的应用后端,旨在作为现代开发工具与 SAP ABAP 系统之间的桥梁。它通过封装 SAP ABAP Development Tools (ADT) 的 REST API,将 SAP ABAP 系统的核心开发信息和功能以标准化的“工具”形式暴露给 LLM(大型语言模型)客户端。这意味着 LLM 可以通过调用这些工具来获取 ABAP 代码、数据字典信息、运行时分析数据,并执行相关操作,从而增强 LLM 在 ABAP 开发场景中的辅助能力,实现更智能的 ABAP 开发工作流。

主要功能点

  • 代码与对象访问:
    • 获取 ABAP 类、程序、函数模块、接口和包含文件的完整源代码和元数据。
    • 查询 ABAP 包(Package)、消息类和事务代码的详细信息。
  • 数据字典集成:
    • 探索 SAP 表、结构、CDS 视图、数据元素和域的定义与字段信息。
    • 进行实时数据预览,查看 DDIC 实体的实际数据。
  • 智能搜索与分析:
    • 提供快速对象搜索功能,通过查询字符串查找任意 ABAP 对象。
    • 执行“用途分析”(Where Used),追踪 ABAP 对象的引用和依赖关系。
    • 获取 ABAP 对象的 API 发布信息。
  • 运行时洞察:
    • 检索 ABAP 运行时错误转储(Runtime Dumps)列表及其详细信息,辅助问题诊断。
    • 获取 ABAP 跟踪(ABAP Traces)记录及其详细数据,用于性能监控和执行分析。
  • 开发友好: 通过标准化的 MCP 协议,无缝集成到支持 MCP 的现代 IDE 和 LLM 应用中,极大地简化了 ABAP 信息的获取和操作。

安装步骤

  1. 前置条件检查:
    • 确保您拥有一个可访问的 SAP ABAP 系统,并已激活相关的 ADT 服务(通常是 '/sap/bc/adt' 路径,可在 'SICF' 事务中检查)。
    • 您需要有效的 SAP 用户名、密码和客户端号。
    • 您的开发环境中已安装 Node.js LTS 版本(包含 npm)和 Git
  2. 获取源代码:
    git clone https://github.com/buettnerjulian/abap-adt-mcp.git
    cd abap-adt-mcp
    或者直接从 GitHub 下载 ZIP 包并解压。
  3. 安装依赖并构建: 进入项目根目录后,运行以下命令安装所需的 Node.js 包并编译 TypeScript 代码:
    npm install
    npm run build

服务器配置

MCP 服务器需要您的 SAP 系统连接信息才能正常工作。请在项目根目录下创建一个名为 '.env' 的文件(如果尚未存在),并按以下格式填写您的 SAP 系统详细信息:

# SAP System Configuration
SAP_URL=https://your-sap-system.com:44300  # 您的 SAP 系统 URL (例如: https://my-sap-system.com:44300)
SAP_USERNAME=your_username                  # 您的 SAP 用户名
SAP_PASSWORD="your_password"                # 您的 SAP 密码 (如果包含特殊字符,请使用双引号)
SAP_CLIENT=100                              # 您的 SAP 客户端号 (例如: 100, 800)

# Optional: Skip TLS verification for development
# NODE_TLS_REJECT_UNAUTHORIZED=0

安全提示: '.env' 文件包含敏感信息,请勿将其提交到版本控制系统。

对于 MCP 客户端,您需要配置与此服务器建立连接的参数。以下是 MCP 客户端配置的核心信息,通常在客户端的配置文件中指定:

  • 服务器名称 (name): 'abap-adt-mcp'
  • 启动命令 (command): 'node'
  • 命令参数 (args): '["dist/index.js"]'

该服务器主要通过 Stdio (标准输入/输出) 协议与 MCP 客户端通信。

基本使用方法

  1. 开发模式启动(推荐用于测试):

    npm run dev

    此命令将启动服务器并在浏览器中打开 MCP Inspector (通常在 'http://localhost:6274')。您可以通过 Inspector 界面交互式地测试各个工具、检查请求和响应,以及调试连接问题。

  2. 生产模式启动:

    npm run start

    此命令将以无头模式启动服务器,使其作为后台服务运行,等待 MCP 客户端的连接。

一旦服务器运行,任何兼容 MCP 的 LLM 客户端都可以连接到它,并通过调用服务器暴露的工具(例如 'GetClass'、'SearchObject'、'DataPreview' 等)来获取 SAP ABAP 系统中的各种信息,或执行特定的操作,从而实现 LLM 辅助的 ABAP 开发和分析。

信息

分类

开发者工具