ArchitectRavi/azsap-mcp
If you are the rightful owner of azsap-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A simplified Model Context Protocol (MCP) server for SAP HANA built with the Python MCP SDK version 1.2.1.
SAP on Azure MCP Server for Microsoft Partners
Note: This project is currently in active development and supports only a limited set of scenarios.
A comprehensive Model Context Protocol (MCP) server for SAP HANA and Azure operations built with the Python MCP SDK version 1.2.1.
š Quick Start
New to this project?
- Configuration & Setup: See for complete configuration instructions
- Quick Reference: See for configuration overview
- Automated Setup: Run
setup.ps1to copy template files automatically
Overview
This MCP server provides 30+ specialized tools for SAP on Azure administration through a standardized protocol. Built with the official Python MCP SDK 1.2.1, it follows MCP best practices with a focus on simplicity, maintainability, and security. The server can be used by any MCP-compatible client including Claude Desktop, web applications, and custom integrations.
Architecture & Features
MCP Protocol Compliance
- Standard MCP Implementation: Built using official Python MCP SDK 1.2.1
- Multiple Transport Options: Supports both STDIO and HTTP/SSE transports
- Resource & Tool Support: Implements MCP tools with structured error handling
- Health Monitoring: HTTP transport includes health check endpoints
Core Capabilities
- SAP HANA Integration: Direct connectivity with System DB and Tenant DB support
- Azure VM Lifecycle: Complete Azure VM management for SAP workloads
- SAP System Administration: SSH-based SAP system monitoring and control
- Role-Based Access Control: User authentication and permission management
- Security: Comprehensive input validation and security headers
- Containerization: Docker-ready deployment configuration
MCP Tools (30+ Available)
The server implements specialized tools organized by functional area:
SAP HANA Database Tools (7 tools)
- System Monitoring:
get_system_overview,get_disk_usage,get_db_info - Backup Management:
get_backup_catalog,get_failed_backups - Performance Analysis:
get_tablesize_on_disk,get_table_used_memory
Azure VM Management Tools (7 tools)
- VM Lifecycle:
start_vm,stop_vm,restart_vm,resize_vm - VM Information:
list_vms,get_vm_status,get_vm_details
Azure Disk Management Tools (6 tools)
- Disk Operations:
add_disk,extend_disk,remove_disk - Disk Management:
list_disks,prepare_disk,cleanup_disk
SAP System Management Tools (5 tools)
- HANA Operations:
check_hana_status,get_hana_version,manage_hana_system - System Monitoring:
check_disk_space,check_hana_volumes
SAP Quality & Compliance Tools (3 tools)
- Quality Validation:
run_sap_quality_check,get_sap_quality_check_definitions - Compliance Check:
check_sap_vm_compliance
Azure Resource Management Tools (6 tools)
- Resource Discovery:
get_resource_groups,get_sap_inventory_summary - Network Security:
list_nsgs,get_nsg_rules,add_nsg_rule,update_nsg_rule
For detailed tool documentation and usage examples, see the .
Project Structure
āāā 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
Getting Started
Prerequisites
- Python 3.8+
- SAP HANA instance access
- Azure subscription (for Azure tools)
- MCP-compatible client (Claude Desktop, web apps, etc.)
Installation & Configuration
# 1. Clone the repository
git clone <repository-url>
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
š Complete setup instructions:
Running the Server
STDIO Transport (Claude Desktop)
python server.py
HTTP/SSE Transport (Web clients)
python server.py --transport http --host localhost --port 3000
Available options:
--debug: Enable debug logging--host: Hostname to bind (default: localhost)--port: Port to bind (default: 3000)
Docker Deployment
# 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-mcp
MCP Client Integration
Claude Desktop App
Add to your claude_desktop_config.json:
{
"mcpServers": {
"azsap-mcp": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
HTTP/SSE Clients
Connect to: http://localhost:3000/mcp
Health check: http://localhost:3000/health
Testing & Development
Using MCP Inspector
Test the server interactively with the visual MCP Inspector:
# 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
The inspector provides a web UI to test all available tools with parameter validation and result visualization.
Development Notes
- All tools include comprehensive error handling and validation
- SQL queries use parameterized statements for security
- Azure operations support both individual VM operations and SID-based system operations
- SSH connections are managed with proper timeout and error handling
For detailed development information, see .
Troubleshooting
Common Issues
- Connection Failures: Verify
.envconfiguration and network access to HANA/Azure - Authentication Errors: Check Azure credentials and SAP HANA user permissions
- Tool Failures: Enable debug logging with
--debugflag for detailed error information - Client Integration: Ensure MCP client configuration matches server transport mode
Debug Information
# Enable detailed logging
python server.py --debug
# Check specific configuration
python -c "from hana_connection import test_connection; test_connection()"
Getting Help
- Check server logs for detailed error messages
- Review for configuration details
- Use MCP Inspector for interactive testing and debugging
Security & Best Practices
Security Features
- Input Validation: Parameterized SQL queries and command sanitization
- Error Handling: Structured error responses without sensitive information leakage
- Authentication: Role-based access control with user permissions
- HTTP Security: Comprehensive security headers (CSP, HSTS, X-Frame-Options)
- Transport Security: Support for secure HTTPS/WSS connections
Best Practices Implemented
- MCP Compliance: Follows official MCP specification v1.2.1
- Error Consistency: Uniform error format across all tools
- Resource Management: Proper connection pooling and cleanup
- Logging: Comprehensive debug logging for troubleshooting
- Configuration Management: Template-based configuration with validation
Roadmap & Future Enhancements
Short Term
- Enhanced Resources: File sharing and data exchange with LLM clients
- Custom Prompts: Specialized templates for SAP on Azure scenarios
- Extended Tools: Additional HANA administrative operations
Long Term
- Multi-tenant Support: Support for multiple SAP landscapes
- Progress Reporting: Real-time status for long-running operations
- Advanced Analytics: SAP system performance insights and recommendations
- Integration APIs: REST APIs for external tool integration
Contributing
We welcome contributions! Please:
- Read the for development setup
- Follow the existing code patterns and MCP best practices
- Add tests for new tools and functionality
- Submit Pull Requests with clear descriptions
License & Support
This project is in active development. For issues and feature requests, please use the GitHub issue tracker.