面向微软合作伙伴的Azure MCP服务器上的SAP
注意:此项目目前正在积极开发中,仅支持有限的一组场景。
使用Python MCP SDK 1.2.1版本构建的用于SAP HANA和Azure操作的全面模型上下文协议(MCP)服务器。
🚀 快速开始
这个项目的新手?
- 配置和设置:参见 SETUP_GUIDE.md 获取完整的配置说明
- 快速参考:参见 配置请求.md 用于配置概述
- 自动设置:运行
setup.ps1自动复制模板文件
概述
此MCP服务器通过标准化协议为SAP on Azure管理提供了30多种专用工具。它基于官方的Python MCP SDK 1.2.1构建,遵循MCP最佳实践,注重简单性、可维护性和安全性。该服务器可供任何兼容MCP的客户端使用,包括Claude Desktop、web应用程序和自定义集成。
架构和功能
MCP协议合规性
- 标准MCP实施:使用官方Python MCP SDK 1.2.1构建
- 多种运输方式:支持STDIO和HTTP/SSE传输
- 资源和工具支持:实施具有结构化错误处理的MCP工具
- 健康监测:HTTP传输包括健康检查端点
核心能力
- SAP HANA集成:与系统数据库和租户数据库支持直接连接
- Azure虚拟机生命周期:完成针对SAP工作负载的Azure VM管理
- SAP系统管理:基于SSH的SAP系统监控
- 基于角色的访问控制:用户身份验证和权限管理
- 安全:全面的输入验证和安全标头
- 容器化:Docker就绪部署配置
MCP工具(30+可用)
服务器实现了按功能区域组织的专用工具:
SAP HANA数据库工具(7个工具)
- 系统监控:
get_system_overview,get_disk_usage,get_db_info - 备份管理:
get_backup_catalog,get_failed_backups - 性能分析:
get_tablesize_on_disk,get_table_used_memory
Azure虚拟机管理工具(7个工具)
- VM生命周期:
start_vm,stop_vm,restart_vm,resize_vm - VM信息:
list_vms,get_vm_status,get_vm_details
Azure磁盘管理工具(6个工具)
- 磁盘操作:
add_disk,extend_disk,remove_disk - 磁盘管理:
list_disks,prepare_disk,cleanup_disk
SAP系统管理工具(5个工具)
- HANA操作:
check_hana_status,get_hana_version,manage_hana_system - 系统监控:
check_disk_space,check_hana_volumes
SAP质量与合规工具(3个工具)
- 质量验证:
run_sap_quality_check,get_sap_quality_check_definitions - 合规性检查:
check_sap_vm_compliance
Azure资源管理工具(6个工具)
- 资源发现:
get_resource_groups,get_sap_inventory_summary - 网络安全:
list_nsgs,get_nsg_rules,add_nsg_rule,update_nsg_rule
*有关详细的工具文档和使用示例,请参阅 SETUP_GUIDE.md.*
项目结构
├── server.py # Main MCP server implementation
├── hana_connection.py # HANA database connection management
├── requirements.txt # Project dependencies
├── .env # Environment variables (HANA & Azure credentials)
├── Dockerfile # Docker configuration for containerization
├── SETUP_GUIDE.md # Complete configuration setup instructions
├── CONFIG_REQUIREMENTS.md # Quick configuration reference
├── setup.ps1 # PowerShell setup script for templates
├── config/ # Configuration files directory
│ ├── *.template.json # Template configuration files
│ ├── executor_config.json # SAP systems and SSH configuration
│ ├── azure_config.json # Azure subscription and VM mappings
│ └── auth_config.json # User authentication and roles
├── tools/ # MCP tool implementations
│ ├── command_executor.py # SSH command execution for SAP systems
│ ├── azure_tools/ # Azure VM and resource management
│ ├── sap_inventory/ # SAP system discovery and inventory
│ └── *.py # Individual tool implementations
└── auth/ # Authentication and authorization
└── authentication.py # User authentication and RBAC入门指南
先决条件
- Python 3.8+
- SAP HANA实例访问
- Azure订阅(适用于Azure工具)
- MCP兼容客户端(Claude Desktop、web应用程序等)
安装和配置
# 1. Clone the repository
git clone
cd azsap-mcp
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Configure the server (see SETUP_GUIDE.md for details)
# Option A: Use PowerShell script (Windows)
.\setup.ps1
# Option B: Manual configuration
# Copy template files and configure:
# - .env (already exists with samples)
# - config/executor_config.json
# - config/azure_config.json
# - config/auth_config.json📖 完整的设置说明: SETUP_GUIDE.md
运行服务器
STDIO传输(克劳德桌面)
python server.pyHTTP/SSE传输(Web客户端)
python server.py --transport http --host localhost --port 3000可用选项:
--debug:启用调试日志记录--host:要绑定的主机名(默认值:localhost)--port:要绑定的端口(默认值:3000)
Docker部署
# Build image
docker build -t azsap-mcp .
# Run with environment
docker run -p 3000:3000 \
-e HANA_HOST=your-host \
-e HANA_PORT=30215 \
azsap-mcpMCP客户端集成
Claude桌面应用程序
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"azsap-mcp": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}HTTP/SSE客户端
连接到: http://localhost:3000/mcp
健康检查: http://localhost:3000/health
测试与开发
使用MCP检查器
使用可视化MCP检查器交互式测试服务器:
# Start server in HTTP mode
python server.py --transport http --port 3000
# Launch inspector (in another terminal)
npx @modelcontextprotocol/inspector http://localhost:3000
# Open browser to http://localhost:5173检查器提供了一个web UI来测试所有可用的工具,包括参数验证和结果可视化。
开发说明
- 所有工具都包括全面的错误处理和验证
- SQL查询使用参数化语句来保证安全性
- Azure操作支持单个VM操作和基于SID的系统操作
- SSH连接通过适当的超时和错误处理进行管理
有关详细的开发信息,请参阅 SETUP_GUIDE.md.
故障排除
常见问题
- 连接失败:验证
.envHANA/Azure的配置和网络访问 - 身份验证错误:检查Azure凭据和SAP HANA用户权限
- 工具故障:使用启用调试日志记录
--debug详细错误信息标志 - 客户端集成:确保MCP客户端配置与服务器传输模式匹配
调试信息
# Enable detailed logging
python server.py --debug
# Check specific configuration
python -c "from hana_connection import test_connection; test_connection()"获取帮助
- 检查服务器日志以获取详细的错误消息
- 审查 SETUP_GUIDE.md 有关配置详细信息
- 使用MCP检查器进行交互式测试和调试
安全与最佳实践
安全功能
- 输入验证:参数化SQL查询和命令清理
- 错误处理:无敏感信息泄露的结构化错误响应
- 认证:具有用户权限的基于角色的访问控制
- HTTP安全:全面的安全标头(CSP、HSTS、X-Frame-Options)
- 运输安全:支持安全的HTTPS/WSS连接
已实施的最佳实践
- MCP合规性:遵循官方MCP规范v1.2.1
- 错误一致性:所有工具的统一错误格式
- 资源管理:正确的连接池和清理
- 日志记录:用于故障排除的全面调试日志记录
- 配置管理:基于模板的配置和验证
路线图和未来增强功能
短期
- 增强资源:与LLM客户端共享文件和交换数据
- 自定义提示:SAP on Azure场景的专用模板
- 扩展工具:其他HANA管理操作
长期
- 多租户支持:支持多种SAP环境
- 进度报告:长时间运行操作的实时状态
- 高级分析:SAP系统性能见解和建议
- 集成API:用于外部工具集成的REST API
贡献
我们欢迎捐款!拜托:
- 阅读 SETUP_GUIDE.md 用于开发设置
- 遵循现有的代码模式和MCP最佳实践
- 为新工具和功能添加测试
- 提交带有清晰描述的拉取请求
许可证和支持
该项目正在积极开发中。对于问题和功能请求,请使用GitHub问题跟踪器。
