whm-mcp-server
by hosthobbit
README.md
# WHM Management Control Panel (MCP)
A Node.js server application that connects to a WHM (Web Host Manager) server for account administration and server management. This application implements the Model Context Protocol (MCP) to allow AI assistants like Claude to interact with WHM APIs.
## Features
- Account Management (create, modify, suspend, terminate)
- Server Information and Statistics
- Server Updates and Maintenance
- SSL Certificate Management
- Backup Management
- Email Account Management
- Domain Management
- Security Features
- MCP Protocol Implementation for AI Assistant integration
## Installation
1. Clone the repository
2. Install dependencies:
```
npm install
```
3. Configure the `.env` file with your WHM server details:
```
# WHM Server Configuration
WHM_SERVER=your-server-domain.com
WHM_PORT=2087
WHM_USERNAME=root
WHM_API_TOKEN=your-api-token-here
# MCP Server Configuration
PORT=3000
NODE_ENV=development
LOG_LEVEL=info
# API Authentication
API_KEY=your-secret-api-key-here
```
4. Start the server:
```
npm start
```
For development:
```
npm run dev
```
## MCP Server Configuration
To use this MCP server with AI assistants like Claude in Cursor, you need to add the following configuration to your `mcp.json` file:
```json
{
"mcpServers": {
"whm": {
"url": "http://your-server-address:3000/sse"
}
}
}
```
## MCP Implementation Details
This server implements the Model Context Protocol using HTTP Server-Sent Events (SSE) as the transport mechanism. The implementation follows the standard JSON-RPC 2.0 format for all messages and includes:
- A `/sse` endpoint for establishing persistent connections
- A `/messages` endpoint for receiving and responding to client requests
- Proactive `connection/ready` and `tools/ready` notifications
- Standardized error handling with appropriate error codes
The MCP architecture allows AI assistants to safely interact with WHM functionality through clearly defined tools with specific parameter schemas, creating a secure bridge between language models and server management functions.
## Available MCP Tools
The MCP server exposes the following WHM functionality via tools:
### Account Management
- `whm_list_accounts` - List all WHM accounts
- `whm_create_account` - Create a new cPanel account
- `whm_account_summary` - Get account details
- `whm_suspend_account` - Suspend a cPanel account
- `whm_unsuspend_account` - Unsuspend a cPanel account
- `whm_terminate_account` - Permanently delete an account
### Server Management
- `whm_server_status` - Get server status and system stats
- `whm_server_load` - Get server load statistics
- `whm_service_status` - Get status of server services
- `whm_restart_service` - Restart a specific server service
- `whm_check_updates` - Check for available updates
- `whm_start_update` - Start server update process
### Domain Management
- `whm_list_domains` - List domains for an account
- `whm_add_domain` - Add a domain to an account
- `whm_delete_domain` - Remove a domain from an account
## API Documentation
The API endpoints are organized by resource type:
- `/api/accounts` - Account management operations
- `/api/server` - Server information and operations
- `/api/domains` - Domain management
- `/api/ssl` - SSL certificate management
- `/api/backups` - Backup management operations
- `/api/email` - Email account management
For detailed API documentation, see the `/docs` endpoint after starting the server.
## Security
This application requires WHM API credentials. Never share your `.env` file or expose your API tokens.
### Security Best Practices
When using this MCP server for WHM administration, follow these security recommendations:
1. **API Token Protection**: Keep your WHM API tokens secure and rotate them regularly.
2. **Use TLS/SSL**: Always deploy this server with HTTPS in production environments.
3. **Firewall Rules**: Restrict access to the MCP server by IP address where possible.
4. **Regular Updates**: Keep the WHM server updated with the latest security patches.
5. **Monitoring**: Implement monitoring to detect unusual activity or unauthorized access attempts.
6. **Backup Strategy**: Maintain regular backups of all server configurations and data.
### Root vs. Site Compromises
Be aware of the distinction between site and root compromises:
- A site compromise affects only specific websites, while a root compromise exposes the entire server.
- In case of any compromise, restore from backups and identify the entry point of the attack.
- For WHM security details, refer to the [cPanel Security Best Practices](https://docs.cpanel.net/knowledge-base/security/security-best-practices/).
## Testing
You can test the MCP server using the included example client:
```
npm run example
```
This will run a simple test client that connects to the MCP server, requests the available tools, and executes a sample command.
## License
ISCThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues