ABAP语法检查器MCP服务器
一个模型上下文协议(MCP)服务器,为Claude Code和Kiro等IDE提供ABAP REPORT程序语法检查功能。
概述
此MCP服务器通过RFC协议连接到SAP ERP系统,以执行本地ABAP语法检查。它使AI助手能够验证ABAP代码,而无需直接访问SAP GUI。
特性
- ✅ ABAP REPORT程序语法验证
- ✅ 带有行号和描述的详细错误报告
- ✅ 基于RFC的与SAP ERP系统的通信
- ✅ 标准MCP协议实施
- ✅ 全面的日志记录和错误处理
先决条件
- Python 3.9或更高版本
- SAP NetWeaver RFC SDK
- 使用适当的凭据访问SAP ERP系统
pyrfc库(需要SAP NW RFC SDK)
快速开始
- 安装SAP NetWeaver RFC SDK (详见安装章节)
- 克隆此存储库:
git clone https://github.com/leocaogit/ABAP_CHECK_MCP.git
cd ABAP_CHECK_MCP- 安装Python依赖项:
pip install -r requirements.txt- 配置SAP连接:
cp config/config.example.json config.json
# Edit config.json with your SAP credentials- 部署ABAP功能模块 (参见
abap/DEPLOYMENT_GUIDE.md) - 测试服务器:
python -m src.main --config config.json安装
1.安装SAP NetWeaver RFC SDK
这 pyrfc 库要求在您的系统上安装SAP NetWeaver RFC SDK。
下载:
- 访问SAP支持门户:https://support.sap.com/en/product/connectors/nwrfcsdk.html
- 下载适用于您的操作系统的适当版本(需要SAP S-user)
安装:
macOS:
# Extract the SDK
unzip nwrfc750P_8-70002752.zip -d /usr/local/sap
# Set environment variables (add to ~/.zshrc or ~/.bash_profile)
export SAPNWRFC_HOME=/usr/local/sap/nwrfcsdk
export DYLD_LIBRARY_PATH=$SAPNWRFC_HOME/lib:$DYLD_LIBRARY_PATHLinux:
# Extract the SDK
unzip nwrfc750P_8-70002752.zip -d /usr/local/sap
# Set environment variables (add to ~/.bashrc)
export SAPNWRFC_HOME=/usr/local/sap/nwrfcsdk
export LD_LIBRARY_PATH=$SAPNWRFC_HOME/lib:$LD_LIBRARY_PATH窗户:
# Extract the SDK to C:\nwrfcsdk
# Add C:\nwrfcsdk\lib to your PATH environment variable2.安装Python依赖项
pip install -r requirements.txt验证安装:
python -c "from pyrfc import Connection; print('pyrfc installed successfully')"配置
服务器可以使用环境变量或JSON配置文件进行配置。
选项1:环境变量
复制示例环境文件并使用您的SAP凭据进行编辑:
cp config/.env.example .env编辑 .env:
# SAP RFC Connection Configuration
SAP_HOST=your-sap-host.example.com
SAP_SYSNR=00
SAP_CLIENT=100
SAP_USER=your-username
SAP_PASSWORD=your-password
# Logging Configuration (optional)
LOG_LEVEL=INFO选项2:配置文件
复制示例配置文件,并使用您的SAP凭据进行编辑:
cp config/config.example.json config.json编辑 config.json:
{
"rfc": {
"host": "your-sap-host.example.com",
"sysnr": "00",
"client": "100",
"user": "your-username",
"password": "your-password"
},
"log_level": "INFO"
}安全说明: 切勿将包含真实凭据的文件提交到版本控制。
用法
启动MCP服务器
使用配置文件:
python -m src.main --config config.json使用自定义日志级别:
python -m src.main --config config.json --log-level DEBUGMCP客户端配置
适用于克劳德桌面
编辑您的Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %APPDATA%\Claude\claude_desktop_config.json\ Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"abap-syntax-checker": {
"command": "python",
"args": ["-m", "src.main", "--config", "config.json"],
"cwd": "/absolute/path/to/ABAP_CHECK_MCP"
}
}
}献给基洛
创建或编辑 .kiro/settings/mcp.json 在您的工作空间中:
{
"mcpServers": {
"abap-syntax-checker": {
"command": "python",
"args": ["-m", "src.main", "--config", "config.json"],
"cwd": "/absolute/path/to/ABAP_CHECK_MCP",
"disabled": false,
"autoApprove": ["check_abap_syntax"]
}
}
}使用工具
配置后 check_abap_syntax 该工具将在您的IDE中可用。
示例用法:
Check this ABAP code for syntax errors:
REPORT ztest.
DATA: lv_test TYPE string.
lv_undefined = 'test'.
WRITE: / lv_test.答复:
{
"success": true,
"has_errors": true,
"errors": [
{
"line": 3,
"type": "E",
"message": "Field \"LV_UNDEFINED\" is unknown."
}
],
"message": "Syntax check completed with errors"
}SAP后端设置
MCP服务器需要在SAP ERP系统中部署ABAP功能模块。
快速部署摘要:
- 创建结构
ZSYNTAX_ERROR在SE11 - 创建功能组
ZSYNTAX_CHECKSE80 - 创建功能模块
Z_CHECK_ABAP_SYNTAXSE37 - 复制实现代码并激活
有关详细的分步说明,请参阅:
- 部署指南:
abap/DEPLOYMENT_GUIDE.md - ABAP自述文件:
abap/README.md
项目结构
.
├── src/ # Source code
│ ├── __init__.py
│ ├── main.py # Entry point
│ ├── server.py # MCP server implementation
│ ├── rfc_client.py # RFC client wrapper
│ ├── config.py # Configuration management
│ ├── models.py # Data models
│ ├── tool_handler.py # MCP tool handler
│ └── logger.py # Logging configuration
├── tests/ # Test files
│ ├── __init__.py
│ └── test_tool_handler.py
├── abap/ # ABAP artifacts
│ ├── function_module/
│ ├── function_group/
│ ├── types/
│ ├── DEPLOYMENT_GUIDE.md
│ └── README.md
├── config/ # Configuration files
│ ├── .env.example
│ └── config.example.json
├── pyproject.toml # Project configuration
├── requirements.txt # Dependencies
└── README.md # This file发展
运行测试
pytest代码格式化
black src/ tests/故障排除
RFC连接问题
问题: Error: Cannot connect to SAP system
解决:
- 验证SAP系统是否可以从您的网络访问
- 检查凭据和客户号是否正确
- 确保SAP NetWeaver RFC SDK已正确安装
- 检查RFC端口的防火墙设置
语法检查错误
问题: Function module Z_CHECK_ABAP_SYNTAX not found
解决:
- 验证ABAP功能模块是否已部署(请参阅
abap/DEPLOYMENT_GUIDE.md) - 检查功能模块名称是否准确
Z_CHECK_ABAP_SYNTAX - 确保SE37中的功能模块已激活
许可证
MIT许可证
贡献
欢迎投稿!请随时提交问题或拉取请求。
支持
有关问题和疑问,请在GitHub存储库上打开问题。
