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客户端通信,提供安全可扩展的上下文服务框架。
安装步骤
-
克隆仓库: 从GitHub克隆 'mcp-sap-gui' 仓库到本地。
git clone https://github.com/mario-andreschak/mcp-sap-gui.git cd mcp-sap-gui -
运行安装脚本: 在仓库根目录下,根据需要选择运行 'setup.bat' (自动化安装) 或 'build.bat' (手动构建安装)。推荐使用 'setup.bat' 进行自动化安装。
setup.bat或
build.bat自动化安装脚本 'setup.bat' 会引导您完成构建过程,并可以选择集成到 Cline 或 Roo 等 MCP 客户端。
-
配置SAP凭据:
- 复制 '.env.example' 文件并重命名为 '.env'。
- 编辑 '.env' 文件,填入您的SAP系统连接信息,包括系统号、客户端、用户名和密码。
SAP_SYSTEM=您的SAP系统号 SAP_CLIENT=您的SAP客户端 SAP_USER=您的SAP用户名 SAP_PASSWORD=您的SAP密码
-
测试服务器: 运行 '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': '[]' - 自动批准的工具列表,默认为空,表示所有工具都需要手动批准才能执行。
基本使用方法
-
启动 MCP 客户端: 启动您配置的 MCP 客户端 (如 Cline 或 Roo)。客户端会自动连接并加载 'mcp-sap-gui' 服务器。
-
在 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' 工具,无参数)
-
分析响应: LLM 客户端会接收来自 'mcp-sap-gui' 服务器的响应,响应内容可能包括文本信息(如操作状态、错误消息)和屏幕截图(根据工具和参数配置)。LLM 可以根据这些响应进行后续操作。
注意安全
- SAP系统敏感性: SAP系统是高度敏感的业务系统,不正确的操作可能导致严重后果。请务必谨慎操作,并在不确定时寻求人工协助。
- 工具使用限制: 'mcp-sap-gui' 服务器提供的工具是基于屏幕坐标和图像识别的,可能不如直接访问SAP API 精确和稳定。请在实际应用中充分测试和验证。
信息
分类
商业系统