项目简介
vsp(Vibing Steampunk)是一个用Go语言编写的Model Context Protocol(MCP)服务器,专门用于将SAP ABAP开发工具(ADT)的功能暴露给支持MCP协议的AI助手(如Claude)。它能让AI直接与SAP系统交互,执行ABAP代码的读取、创建、修改、测试和格式化等操作,极大地提升AI辅助ABAP开发的效率和能力。
主要功能点
- 代码读写与管理: 提供统一工具读取、创建、修改和删除ABAP程序、类、接口、函数模块、函数组、包含文件等对象,并支持对CDS视图和消息类的读取。
- 数据查询: 能够查询ABAP表内容,执行ABAP SQL查询,获取CDS视图的前向依赖关系。
- 开发辅助: 执行ABAP源代码的语法检查、激活开发对象、运行ABAP单元测试,并支持代码的格式化(Pretty Printer)。
- 智能编辑: 提供“外科手术式”的代码片段替换功能,实现精准的局部修改,无需上传下载完整的源代码文件。
- 文件部署: 支持从本地文件系统导入ABAP对象到SAP系统,以及将SAP对象导出到本地文件,有效解决了大型文件传输的Token限制问题。
- 代码智能: 提供查找符号定义、查找引用、代码补全建议、获取类型层级等功能,增强AI对ABAP代码的理解能力。
- 代码搜索(Grep): 支持在单个或多个ABAP对象中,甚至在整个开发包(包括子包)中进行正则表达式搜索,帮助AI快速定位代码模式。
- 工作流自动化: 内置多种复合工具,将复杂的开发任务(如创建并激活程序、创建带测试的类)整合为单一调用,简化AI操作。
- 安全控制: 支持配置只读模式、禁用自由SQL查询、设置允许操作类型白名单/黑名单,以及限制允许操作的开发包,确保与SAP系统的交互安全可控。
安装步骤
下载预编译二进制文件
请从项目的GitHub Releases页面下载适用于您操作系统的最新版本。
从源代码构建(需要Go环境)
- 克隆仓库:
git clone https://github.com/oisee/vibing-steampunk.git - 进入项目目录:
cd vibing-steampunk - 构建可执行文件:
- 构建当前平台版本:
make build - 构建所有平台版本:
make build-all
- 构建当前平台版本:
服务器配置
MCP客户端(如Claude Desktop或Claude Code)需要知道如何启动vsp服务器并传递必要的连接参数。以下是配置vsp服务器的关键信息和参数。通常,您会将这些信息配置在MCP客户端的设置文件(例如 '~/.config/claude/claude_desktop_config.json' 或 '.mcp.json')中。
您需要提供以下连接参数:
- SAP系统URL: 您的SAP系统的完整URL,例如 'https://your-sap-host:44300'。
- SAP用户名: 用于登录SAP的用户名。
- SAP密码: 对应用户名的密码。
- SAP客户端: SAP客户端编号,默认为 '001'。
- SAP语言: SAP会话语言,默认为 'EN'。
- 模式: 可选择 'focused' (推荐,包含19个AI优化工具,为默认模式) 或 'expert' (包含所有45个工具)。
- 可选:跳过TLS验证: 如果SAP系统使用自签名证书,可设置此项为 'true' 以跳过TLS证书验证。
以下是一个MCP客户端配置示例:
请将 'your-username'、'your-password'、'your-sap-host' 和 '/path/to/vsp' 替换为您的实际值。
{ "mcpServers": { "abap-adt": { "command": "/path/to/vsp", "env": { "SAP_URL": "https://your-sap-host:44300", "SAP_USER": "your-username", "SAP_PASSWORD": "your-password", "SAP_CLIENT": "001", "SAP_LANGUAGE": "EN", "SAP_MODE": "focused", "SAP_INSECURE": "false" } } } }
请注意:'command' 指定了vsp可执行文件的路径。'env' 部分通过环境变量的形式向vsp服务器传递配置参数,vsp也支持命令行参数或 '.env' 文件进行配置。
基本使用方法
一旦vsp服务器在MCP客户端中配置并启动,AI助手就可以通过调用vsp提供的工具来与SAP系统进行交互。AI助手会根据您提供的指令和上下文,自动选择并调用这些工具来完成任务。
例如,AI可能会执行以下操作:
- 搜索ABAP对象: AI调用 'SearchObject' 工具来查找匹配特定模式的程序或类。
- 读取代码: AI调用 'GetSource' 工具获取某个ABAP类或程序的源代码,以便理解其逻辑或进行分析。
- 修改代码: AI调用 'EditSource' 工具对代码中的特定字符串进行替换,并通过后续的 'WriteSource' 工具保存并自动激活更改。
- 运行测试: AI调用 'RunUnitTests' 工具执行ABAP单元测试,以验证其生成的或修改的代码是否符合预期。
AI助手通过理解您在对话中提出的需求,将这些需求转化为对vsp服务器中可用工具的调用,从而实现与SAP系统的智能交互和自动化开发。
信息
分类
商业系统