SAP GUI自动化服务器

项目简介

SAP GUI自动化服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在通过标准化的MCP协议,为大型语言模型(LLM)提供与SAP GUI系统交互的能力。该服务器允许LLM通过调用预定义的工具,自动化执行SAP事务,从而实现业务流程的自动化。

主要功能点

  • SAP事务管理: 支持启动和结束SAP事务,例如打开采购订单创建界面(VA01)或物料主数据维护界面(MM03)。
  • 图形界面交互: 提供鼠标点击、鼠标移动和键盘输入等工具,使LLM能够像用户一样操作SAP GUI界面。
  • 屏幕内容获取: 每次执行工具后,服务器可以返回SAP GUI界面的屏幕截图,支持多种格式(Base64, 图片文件, MCP ImageContent等),方便LLM进行视觉分析和下一步操作决策。
  • 灵活的截图返回: 可以根据需要配置是否返回截图以及截图的格式,优化性能和数据传输。
  • 安全集成: 通过MCP协议与LLM客户端通信,提供安全可扩展的上下文服务框架。

安装步骤

  1. 克隆仓库: 从GitHub克隆 'mcp-sap-gui' 仓库到本地。

    git clone https://github.com/mario-andreschak/mcp-sap-gui.git
    cd mcp-sap-gui
  2. 运行安装脚本: 在仓库根目录下,根据需要选择运行 'setup.bat' (自动化安装) 或 'build.bat' (手动构建安装)。推荐使用 'setup.bat' 进行自动化安装。

    setup.bat

    build.bat

    自动化安装脚本 'setup.bat' 会引导您完成构建过程,并可以选择集成到 Cline 或 Roo 等 MCP 客户端。

  3. 配置SAP凭据:

    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 编辑 '.env' 文件,填入您的SAP系统连接信息,包括系统号、客户端、用户名和密码。
      SAP_SYSTEM=您的SAP系统号
      SAP_CLIENT=您的SAP客户端
      SAP_USER=您的SAP用户名
      SAP_PASSWORD=您的SAP密码
  4. 测试服务器: 运行 'run.bat debug' 命令启动服务器进行调试测试。

    run.bat debug

服务器配置

要将 'mcp-sap-gui' 服务器配置到 MCP 客户端(如 Cline 或 Roo),您需要在客户端的 MCP 服务器配置文件中添加以下JSON配置。通常,MCP客户端会自动检测并加载符合格式的MCP服务器配置。

以下是 'mcp-sap-gui' 服务器的典型配置信息,请根据您的实际仓库路径进行 'cwd' 字段的调整。

{
  "mcp-sap-gui": {
    "command": "python",
    "args": [
      "-m",
      "sap_gui_server.server"
    ],
    "cwd": "PATH_TO_YOUR_FOLDER/mcp-sap-gui",  //  请替换为您的 mcp-sap-gui 仓库的绝对路径
    "disabled": false,
    "autoApprove": []
  }
}
  • 'server name' (配置项名称): 'mcp-sap-gui' - 服务器的名称,用于在MCP客户端中标识和引用。
  • 'command': 'python' - 启动服务器的命令,这里使用Python解释器。
  • 'args':
    • '-m' - Python的 '-m' 参数,用于运行模块。
    • 'sap_gui_server.server' - 指定要运行的Python模块,即 'sap_gui_server' 包中的 'server.py' 文件。
  • 'cwd': 'PATH_TO_YOUR_FOLDER/mcp-sap-gui' - 重要: 服务器的工作目录,必须设置为您的 'mcp-sap-gui' 仓库的绝对路径。MCP服务器程序将在这个目录下运行。请根据您的实际情况修改 'PATH_TO_YOUR_FOLDER' 部分。
  • 'disabled': 'false' - 设置为 'false' 表示启用该服务器。
  • 'autoApprove': '[]' - 自动批准的工具列表,默认为空,表示所有工具都需要手动批准才能执行。

基本使用方法

  1. 启动 MCP 客户端: 启动您配置的 MCP 客户端 (如 Cline 或 Roo)。客户端会自动连接并加载 'mcp-sap-gui' 服务器。

  2. 在 LLM 中调用工具: 在 LLM 的交互界面中,您可以使用自然语言指令指示 LLM 调用 'mcp-sap-gui' 服务器提供的工具。例如:

    • "启动 SAP 事务 VA01" (对应 'launch_transaction' 工具,参数 'transaction="VA01"')
    • "点击屏幕坐标 (100, 200)" (对应 'sap_click' 工具,参数 'x=100, y=200')
    • "在当前字段输入物料编号 100-100" (对应 'sap_type' 工具,参数 'text="100-100"')
    • "结束当前 SAP 事务" (对应 'end_transaction' 工具,无参数)
  3. 分析响应: LLM 客户端会接收来自 'mcp-sap-gui' 服务器的响应,响应内容可能包括文本信息(如操作状态、错误消息)和屏幕截图(根据工具和参数配置)。LLM 可以根据这些响应进行后续操作。

注意安全

  • SAP系统敏感性: SAP系统是高度敏感的业务系统,不正确的操作可能导致严重后果。请务必谨慎操作,并在不确定时寻求人工协助。
  • 工具使用限制: 'mcp-sap-gui' 服务器提供的工具是基于屏幕坐标和图像识别的,可能不如直接访问SAP API 精确和稳定。请在实际应用中充分测试和验证。

信息

分类

商业系统